Что такое OpenMP

Автор работы: Пользователь скрыл имя, 26 Декабря 2011 в 20:22, реферат

Описание

OpenMP (Open Multi-Processing) - это набор директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью (SMP-системах).
Первый стандарт OpenMP был разработан в 1997 г. как API, ориентированный на написание легко переносимых многопоточных приложений. Сначала он был основан на языке Fortran, но позднее включил в себя и языки Си и Си++.

Работа состоит из  1 файл

Стандарт интерфейса приложений для параллельных систем с общей памятью.doc

— 102.50 Кб (Скачать документ)
 
 
 

   Пример  реализации 

   Компиляторы Sun Studio создают отдельную процедуру из исходного кода, располагающегося под директивой parallel, а вместо самой директивы вставляют вызов процедуры __mt_MasterFunction_ библиотеки libmtsk, передавая ей адрес искусственно созданной. Таким образом, разделяемые (shared) данные могут быть переданы последней по ссылке, а собственные (private) объявляются внутри этой процедуры, оказываясь независимыми от своих копий в других потоках.

   Процедура __mt_MasterFunction_ создает группу потоков (количеством 9 в приведенном выше примере на языке C), которые будут выполнять код конструкции parallel, а вызвавший её поток становится главным в группе. Затем главный поток организовывает работу подчиненных потоков, после чего начинает выполнять пользовательский код сам. Когда код будет выполнен, главный поток вызывает процедуру _mt_EndOfTask_Barrier_, синхронизирующую его с остальными. 

   Инструменты 

  • VivaMP — Статический анализатор Си/Си++ кода для выявления ошибок в программах, построенных на технологии OpenMP
  • Intel® Threading Tools — инструменты анализа производительности программ OpenMP

Информация о работе Что такое OpenMP