Модель общей памяти

Модель передачи сообщений

Основные особенности данного подхода:

· Программа порождает несколько задач.

· Каждой задаче присваивается свой уникальный идентификатор.

· Взаимодействие осуществляется посредством отправки и приема сообщений.

· Новые задачи могут создаваться во время выполнения параллельной программы, несколько задач могут выполняться на одном процессоре.

сновными инструментами программирования являются специализированные библиотеки

(MPI - Message Passing Interface, PVM - Parallel Virtual Machines).

Модель параллелизма данных

Основные особенности данного подхода:

· Одна операция применяется к множеству элементов структуры данных. Программа содержит последовательность таких операций.

· "Зернистость" вычислений мала.

· Программист должен указать транслятору, как данные следует распределить между задачами.

При программировании на основе параллелизма данных часто используются специализированные языки или надстройки над языками. DVM Fortran, HPF (High Perfomance Fortran) и другие.

Модель общей памяти

В модели общей (разделяемой) памяти задачи обращаются к общей памяти, имея общее адресное пространство и выполняя операции считывания/записи. Управление доступом к памяти осуществляется с помощью разных механизмов, таких, например, как семафоры. В рамках этой модели не требуется описывать обмен данными между задачами в явном виде.

Это упрощает программирование. Вместе с тем особое внимание приходится уделять соблюдению детерминизма, таким явлениям, как «гонки за данными» и т. д.

Начиная с версии 2005 в Visual Studio входит поддержка OpenMP. OpenMP – набор директив компилятору (прагм), библиотечных функций и переменных окружения для поддержки парадигмы параллельного программирования для систем с общей памятью.

2. Понятие архитектуры вычислительной системы (ВС). Архитектура как набор компонент и как система уровневых интерфейсов. Основные аппаратные и программные элементы ВС.

R Термин «архитектура системы» часто употребляется как в узком, так и в широком смысле этого слова. В узком смысле под архитектурой понимается архитектура набора команд. В широком смысле архитектура охватывает понятие организации системы, включающее такие высокоуровневые аспекты разработки компьютера (вычислительного устройства) как систему памяти, структуру системной шины (комплексирование устройств), организацию ввода/вывода и т.п.

Применительно к вычислительным системам термин « архитектура » может быть определен как распределение функций, реализуемых системой, между ее уровнями и определение границ между этими уровнями.

R Таким образом, архитектура вычислительной системы предполагает многоуровневую организацию. Архитектура первого уровня определяет, какие функции по обработке данных выполняются системой в целом, а какие возлагаются на внешний мир (пользователей, операторов, администраторов баз данных и т.д.). Система взаимодействует с внешним миром через набор интерфейсов: языки (язык оператора, языки программирования, языки описания и манипулирования базой данных, язык управления заданиями) и системные программы (программы-утилиты, программы редактирования, сортировки, сохранения и восстановления информации).

Интерфейсы следующих уровней могут разграничивать определенные уровни внутри программного обеспечения. Например, уровень управления логическими ресурсами может включать реализацию таких функций, как управление базой данных, файлами, виртуальной памятью, сетевой телеобработкой. К уровню управления физическими ресурсами относятся функции управления внешней и оперативной памятью, управления процессами, выполняющимися в системе.

Следующий уровень отражает основную линию разграничения системы, а именно границу между системным программным обеспечением и аппаратурой. Эту идею можно развить и дальше и говорить о распределении функций между отдельными частями физической системы. Например, некоторый интерфейс определяет, какие функции реализуют центральные процессоры, а какие - процессоры ввода/вывода. Архитектура следующего уровня определяет разграничение функций между процессорами ввода/вывода и контроллерами внешних устройств. В свою очередь можно разграничить функции, реализуемые контроллерами и самими устройствами ввода/вывода (терминалами, модемами, накопителями на магнитных дисках и лентах). Архитектура таких уровней часто называется архитектурой физического ввода/вывода. Схема многоуровневой архитектурной организации сведена в табл.

Таблица. Многоуровневая архитектурная организация

Архитектура вычислительных систем
Уровень Что определяет архитектура уровня? Функции на данном уровне Интерфейсы на данном уровне
1. Система в целом Какие функции выполняются на данном уровне? Управление вычислительным процессом, прием команд от оператора или процесса. Языки: - оператора - программирования - базы данных - управления заданиями Системные программы: - утилиты - редакторы - …
N. Уровень управления логическими ресурсами Управление БД, файлами, виртуальной памятью, сетевой телеобработкой Драйверы доступа к данным и управления ресурсами
N+1. Уровень управления физическими ресурсами Управление внешней и оперативной памятью, процессами Драйверы и микросхемы

R Программные элементы ВС:

1. ОС;

2. Средства настройки и передачи сообщений по линиям связи;

3. Системные диагностические утилиты;

4. Среды и библиотеки времени выполнения поддержки параллельных программ.

5. Системы управления заданиями.

6. Прикладные программы и т.д.

Аппаратные средства ВС:

1. Процессоры, мультипроцессоры.

2. Высокоскоростные линии связи (средства коммутации) (маршрутизаторы, каналы).

3. Средства диагностики и восстановления.

4. Память: общая, локальная, внешняя.

5. Периферийные устройства и т.д.

3. Архитектура системы команд. Микропроцессоры (МП) с полным (CISC) и сокращённых (RISC) набором команд. Основные принципы RISC- архитектуры. Организация RISC МП Alpha 21x64 фирмы DEC.

R Уровень архитектуры команд включает набор машинных команд, которые выполняются микропрограммой-интерпретатором или аппаратным обеспечением.

R Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники, являются архитектуры CISC и RISC.

CISC – Complete Instruction Set Computer (компьютер на микропроцессоре с полным набором команд).

RISC – Reduced Instruction Set Computer (компьютер с сокращенным набором команд).

  CISC RISC
Основоположник, модель IBM, IBM/360 CDC6600 (Крэй)
Лидер, сегодня x86 Alpha, PowerPC, SPARC
Рынок Персональные ЭВМ (благодаря совместимости с программным обеспечением младших моделей, общая стоимость которого - в начале 90-х годов - составила несколько миллиардов долларов США) Высокопроизводительные компьютеры (стоимость ПО не настолько существенна)
Реализация Микропрограммная (интерпретация) Аппаратная
Число регистров общего назначения небольшое большое
Формат команд большое количество форматов команд различной разрядности команды фиксированной длины и фиксированного формата
Адресация большое количество методов адресации, преобладание двухадресного формата команд простые методы адресации, трехадресный формат команд

Число регистров

Большое число регистров позволяет большему объему данных храниться в регистрах на процессорном кристалле большее время и упрощает работу компилятора по распределению регистров под переменные.

Формат команд

Команды должны легко декодироваться. Предел количества вызываемых команд в секунду зависит от процесса декодирования отдельных команд. Декодирование команд осуществляется для того, чтобы определить, какие ресурсы им необходимы и какие действия нужно выполнить. Полезны любые средства, которые способствуют упрощению этого процесса. Например, используются регулярные команды с фиксированной длиной и с небольшим количеством полей. Чем меньше разных форматов команд, тем лучше.

Адресация

Простые методы адресации позволяют резко упростить декодирование команд. Организация регистровой структуры – основное достоинство и основная проблема RISC. Практически любая реализация RISC-архитектуры использует трехместные операции обработки, в которых результат и два операнда имеют самостоятельную адресацию – R1: = R2, R3. Это позволяет без существенных затрат времени выбрать операнды из адресуемых оперативных регистров и записать в регистр результат операции. Кроме того, трехместные операции дают компилятору большую гибкость по сравнению с типовыми двухместными операциями формата "регистр – память" архитектуры CISC. В сочетании с быстродействующей арифметикой RISC-операции типа "регистр – регистр" становятся очень мощным средством повышения производительности процессора.

R Процессор Alpha - настоящий 64-разрядный RISC-процессор. Ориентирован на: масштабируемость, быстрота ответной реакции, трудоемкость, обеспечение надежности.

Процессоры Alpha фирмы Digital Equipment Corporation – DEC имеют названия вида 21x64 ("21"говорит, что Alpha — это архитектура XXI века, x — процессорное поколение: 0, 1, 2, 3 или 4, "64" — разрядность в битах).

4. Развитие архитектур современных МП. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура EPIC МП Intel ITANIUM.

R Конвейеризация (или конвейерная обработка) в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении для каждой из них отдельного блока аппаратуры. Так обработку любой машинной команды можно разделить на несколько этапов (несколько ступеней), организовав передачу данных от одного этапа к следующему. При этом конвейерную обработку можно использовать для совмещения этапов выполнения разных команд.

Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько команд. Конвейерная обработка такого рода широко применяется во всех современных быстродействующих процессорах.

Примеры конвейерной обработки: выполнение циклов команд, арифметика чисел с плавающей точкой, циклы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: