- •Оглавление
- •Директивы
- •Примеры
- •Примеры
- •Примеры
- •Примеры
- •Примеры
- •Пример
- •Примеры
- •Примеры
- •Примеры
- •Синхронизация
- •Синхронизация
- •Пример
- •Пример
- •Пример
- •Пример
- •Пример
- •Пример
- •Пирмер
- •Пример условной компиляции
- •Вопросы
- •Пример условной компиляции
- •Терминология
- •Терминология
- •Терминология
- •Терминология
- •Терминология
- •Терминология
- •Терминология
- •Терминология
- •Конец
Пример условной компиляции
Пример использования макроса _OPENMP: voidInfo(void)
{
#ifdef _OPENMP
//Код будет скомпилирован, если поддержка OpenMP включена компилятором
printf("OpenMPRelease:%d\n\n", _OPENMP);
#else
//Код будет скомпилирован, если компилятор не поддерживает OpenMP
printf("OpenMPno support\n\n");
#endif
}; |
220 |
Вопросы
???
221
Пример условной компиляции
Результатомработы функции Info() служит информационная строка в стандартном потоке ввода/вывода. Если в свойствах проекта будет включена поддержка OpenMP, то будет скомпилирован только код между директивами #ifdef и #else,а остальной код отброшен. В противном случае код между
#else и #endif скомпилирован, а остальной отброшен.
222
MPI – технология параллельных
компьютеров с распределенной
памятьюрограммирования
223
ОбзортехнологииMPI
Принципы организациипараллелизма
Первоевремянебылоединогостандарта (API)дляпараллельныхвычисленийи программистамприходилосьписатьдля каждого кластераархитектурноспецифическийкод.Но,какизвестно, программистылюдирациональныеи быстробылорешеноорганизовать стандарты
224
ОбзортехнологииMPI
Принципы организациипараллелизма
Параллельная программадолжна эффективноиспользовать вычислительныемощностии коммуникационнуюсреду.ВMPIвся работапораспределениюнагрузкина узлыисетьложатся напрограммистаи длямаксимальнойпроизводительности необходимознатьособенности конкретного кластера.
225
ОбзортехнологииMPI
Принципы организациипараллелизма
MPIоченьэлегантнорешаетвопрос топологии сети:имеютсяпонятия коммуникаторов — группыпроцессов, которые можнопронумеровать в соответствии стопологией сети(для этого используетсяфункция
MPI_Cart_create,которая позволяет задать любуютопологию отрешётки догиперкуба).
226
ОбзортехнологииMPI
ПринципыMPIорганизации- наиболеепараллелизмараспространенная
технология программирования параллельных компьютеров с распределенной памятью в настоящее время.
227
ОбзортехнологииMPI
ОсновнымПринципы организацииспособомпараллелизмавзаимодействия
параллельных процессов в таких системах является передача сообщений друг другу. Это и отражено в названии данной технологии — Message Passing Interface.
228
ОбзортехнологииMPI
Принципы организациипараллелизма
MPI(MessagePassingInterface)–
программныйинтерфейс(API)для передачиинформациимежду взаимодействующимипроцессами.
СтандартизациейзанимаетсяMPI Forum
Стандарты: MPI 1.1, MPI 2.0, MPI 2.1
MPICH – самаяраспространенная бесплатная реализация,библиотека mpi.h
229
ОбзортехнологииMPI
Принципы организациипараллелизма
MPI(MessagePassingInterface)–
программныйинтерфейс(API)для передачиинформациимежду взаимодействующимипроцессами.
СтандартизациейзанимаетсяMPI Forum
Стандарты: MPI 1.1, MPI 2.0, MPI 2.1
MPICH – самаяраспространенная бесплатная реализация,библиотека mpi.h
230
ОбзортехнологииMPI
Принципы организациипараллелизма
MPI(MessagePassingInterface)–
программныйинтерфейс(API)для передачиинформациимежду взаимодействующимипроцессами.
СтандартизациейзанимаетсяMPI Forum
Стандарты: MPI 1.1, MPI 2.0, MPI 2.1
MPICH – самаяраспространенная бесплатная реализация,библиотека mpi.h
231
ОбзортехнологииMPI
Принципы организациипараллелизма
RAM
CPU
RAM |
RAM |
CPU CPU
RAM RAM
CPU CPU
Модель взаимодействия процессов 232
ОбзортехнологииMPI
Принципы организациипараллелизма
Укаждого процессасобственнаяпамять
Виртуальная топология – полныйграф (поумолчанию)
Процессывзаимодействуют посредствомотправкииприема сообщений
ЭффективнаяреализациянаMPP
(Massive-Parallel Processing)
233
ОбзортехнологииMPI
Принципы организациипараллелизма
Актуальность MPIобусловленатем,что интерфейспозволяетскрытьот пользователя отображение логической структуры программынааппаратные ресурсыивосприниматьсложную, возможно неоднороднуюсреду,как единыйвычислительныйресурс.
234
ОбзортехнологииMPI
Принципы организациипараллелизма
MPI-программа — это множество параллельных взаимодействующих процессов.
Все процессы порождаются один раз, образуя параллельную часть программы. В ходе выполнения MPI- программы порождение дополнительных процессов или уничтожение существующих не допускается. 235
ОбзортехнологииMPI
Принципы организациипараллелизма
Каждый процесс работает в своем адресномпространстве, никакихобщих переменных или данных в MPI нет. Основным способом взаимодействия между процессами является явная посылкасообщений.
236
ОбзортехнологииMPI
Принципы организациипараллелизма
СхемаMPI системы.
237
ОбзортехнологииMPI
Принципы организациипараллелизма
Достоинства:
Возможность разработки эффективных программ для кластеров и суперкомпьютеров.
238
ОбзортехнологииMPI
Принципы организацииНедостаткипараллелизма:
Низкий уровень, необходимость детального управления распределением массивови витков циклов между процессамии, как следствие, высокая трудоемкость написания программ;
239
ОбзортехнологииMPI
ПринципыНедостаткиорганизациипараллелизма:
отсутствие поддержки объектно- ориентированного подхода; необходимость избыточной спецификации типов данных в передаваемых сообщениях, а так же наличие жестких ограничений на типы передаваемых данных.
240