Парадигмы параллельного программирования



Параллелизм данных

·         одна операция применяется сразу к нескольким элементам массива данных. Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины;

·         обработкой данных управляет одна программа;

·         пространство имен является глобальным;

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

    От программиста требуется:

·         задание опций векторной или параллельной оптимизации транслятору;

·         задание директив параллельной компиляции;

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

Параллелизм задач

·         вычислительная задача разбивается на несколько относительно самостоятельных подзадач. Каждая подзадача выполняется на своем процессоре (ориентация на архитектуру MIMD);

·         для каждой подзадачи пишется своя собственная программа на обычном языке программирования (чаще всего это Fortran или С);

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

 


Заключение

 

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

    1) любая задача распараллеливается лишь частично (при полном распараллеливании параллельные части не могут взаимодействовать в процессе счета и представляют собой отдельные задачи меньшего размера, так что использование параллельной системы теряет смысл);

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

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


Список использованной литературы

1. Тимоти Г. Мэттсон - Шаблоны для параллельного программирования[Текст]. - : Издательство «Addison Wesley», 2005.

2. Антонов А.С. Введение в параллельные вычисления, М.: Изд-во МГУ, 2002, 346 с.

.   Уильям Гролл. Использование MPI [Текст]. - : Издательство «MIT Press», 1994.

.   Борисов М. UNIX-кластеры // М.: Открытые системы, 2005 г., 237 с.

.   Вычислительная техника и программирование / Под ред. А.В. Петрова - М.: Высшая школа, 2003, 385 с.


Дата добавления: 2021-03-18; просмотров: 79; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!