Средства программирования для многопроцессорных вычислительных систем. Немнюгин C.А. - 8 стр.

UptoLike

Составители: 

8
повторных запусках даже без модификации кода и исходных данных. Это является
следствием «гонок за данными» - одновременного и асинхронного доступа разных
процессов или потоков к общим переменным;
необходимость заботиться о масштабируемости программы (масштабируемость
это свойство вычислительной системы, компьютерной сети или процесса/процессов,
которое заключается в сохранении способности эффективно работать при
возрастании их сложности);
необходимость заботиться о сбалансированной загрузке вычислительных узлов.
Модели параллельного программирования
В рамках параллельной модели программирования существуют различные подходы,
ориентированные на разные архитектуры высокопроизводительных вычислительных систем
и различные инструментальные средства. Перечислим некоторые из них.
Модель передачи сообщений
Основные особенности данного подхода:
Программа порождает несколько задач.
Каждой задаче присваивается свой уникальный идентификатор.
Взаимодействие осуществляется посредством отправки и приема сообщений.
Новые задачи могут создаваться во время выполнения параллельной программы,
несколько задач могут выполняться на одном процессоре.
Модель параллелизма данных
Основные особенности данного подхода:
Одна операция применяется к множеству элементов структуры данных. Программа
содержит последовательность таких операций.
"Зернистость" вычислений мала.
Программист должен указать транслятору, как данные следует распределить между
задачами.
Модель общей памяти
В модели общей (разделяемой) памяти задачи обращаются к общей памяти, имея общее
адресное пространство и выполняя операции считывания/записи. Управление доступом к
памяти осуществляется с помощью разных механизмов, таких, например, как семафоры. В
рамках этой модели не требуется описывать обмен данными между задачами в явном виде.
Это упрощает программирование. Вместе с тем особое внимание приходится уделять
соблюдению детерминизма, таким явлениям, как «гонки за данными» и т. д.
Законы Амдала
Законы Амдала составляют теоретическую основу оценок достижимой производительности
параллельных программ. Они сформулированы для некоторой идеализированной модели