Uploaded by m.telyakov99

Практика 1 (1)

advertisement
1 ПРАКТИЧЕСКАЯ РАБОТА 1
1.1
Создание проекта в среде MS Visual Studio с поддержкой OpenMP
Рисунок 1 – Код программы и включение поддержки Open MP
1.2
Ответы на вопросы
1) Что такое OpenMP?
OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания
программ. Дает описание совокупности директив компилятора, библиотечных
процедур
и
переменных
окружения,
которые
предназначены
для
программирования многопоточных приложений на многопроцессорных системах
с общей памятью (SMP-системах).
2) Какие модели он реализует? Опишите модели и их связь.
В OpenMP используется модель параллельного выполнения «ветвлениеслияние» (fork-join). Программа OpenMP начинается как единственный поток
выполнения,
называемый
начальным
потоком.
Когда
поток
встречает
параллельную конструкцию, он создает новую группу потоков, состоящую из себя
и некоторого числа дополнительных потоков, и становится главным в новой
группе. Все члены новой группы (включая главный) выполняют код внутри
параллельной конструкции. В конце параллельной конструкции имеется неявный
барьер. После параллельной конструкции выполнение пользовательского кода
продолжает только главный поток. В параллельный регион могут быть вложены
другие параллельные регионы, в которых каждый поток первоначального региона
становится основным для своей группы потоков. Вложенные регионы могут в свою
очередь включать регионы более глубокого уровня вложенности.
3) В каких языках реализован этот стандарт?
Стандарт OpenMP разработан для языков Фортран, С и С++.
3) Из каких частей состоит реализация в Visual Studio?
Visual C++ реализация стандарта OpenMP включает следующие конструкции:
1. Директивы
Visual C++ поддерживает следующие директивы OpenMP.
Для параллельного совместного использования рабочих операций:
Для основного потока и синхронизации:
2
Для среды данных:
2. Предложения
Visual C++ поддерживает следующие предложения OpenMP.
Для общих атрибутов:
3
Для атрибутов общего доступа к данным:
3. Функции
Visual C++ реализация стандарта OpenMP включает следующие функции и
типы данных.
Для выполнения среды:
4
Для блокировки:
5
Для подпрограмм времени:
4. Переменные среды
6
Реализация Стандарта OpenMP visual C++ включает следующие переменные
среды. Эти переменные среды считываются при запуске программы и изменения
их значений игнорируются во время выполнения (например, с помощью _putenv,
_wputenv).
Visual C++ функции библиотеки времени выполнения OpenMP содержатся в
следующих библиотеках.
Если _DEBUG определяется при компиляции и #include <omp.h> находится в
исходном коде, вкомпд. LIB будет lib по умолчанию, в противном случае —
ВКОМП. Будет использоваться LIB.
Библиотеки DLL OpenMP находятся в каталоге распространяемого Visual C++
и должны распространяться с приложениями, использующими OpenMP.
7
Download