Параллельное программирование. OpenMP: интерфейс для SMP архитектур

Параллельное программирование. OpenMP: интерфейс для SMP архитектур

Оглавление

Введение. 3

1     Директивы OpenMP. 3

1.1        Общие положения. 3

1.2        Директивы для определения параллельного области. 4

1.3        Директивы для распределения вычислений внутри параллельной области. 5

1.4        Классы переменных. 6

2     Переменные окружения. 6

3     Функции библиотеки runtime. 7

4     Компиляция OpenMP программ.. 7

5     Задания к лабораторным работам. 8

5.1        Замечания к выполнению лабораторных работ. 8

5.2        Лабораторная работа №1. Распараллеливание операций над векторами с помощью OpenMP. 8

5.2.1     Цель работы.. 8

5.2.2     Содержание отчета. 8

5.2.3     Варианты заданий. 8

5.3        Лабораторная работа №1. Распараллеливание вычислений с помощью OpenMP. 9

5.3.1     Цель работы.. 9

5.3.2     Содержание отчета. 9

5.3.3     Варианты заданий. 9

Библиографический список. 11

Русскоязычные источники: 11

Англоязычные источники: 11

Приложение A. Справочная информация. 12


Введение

Интерфейс OpenMP предназначен для программирования параллельных вычислений на традиционных алгоритмических языках (C/C++, Fortran), выполняемых на системах с общим пространством памяти (SMP). Его основную часть составляют набор директив, библиотечных функций и переменных окружения. В OpenMP заложена идея “инкрементального распараллеливания”, когда разработчик не создает новую программу, просто добавляет в текст последовательной программы OpenMP-директивы. При этом система программирования OpenMP предоставляет разработчику большие возможности по контролю над поведением параллельного приложения.

Вся программа разбивается на последовательные и параллельные области. Все последовательные области выполняет главная нить (master thread), порождаемая при запуске программы, а при входе в параллельную область главная нить порождает дополнительные нити. После выхода из параллельной области происходит синхронизация и все нити, кроме главной нити, уничтожаются. После этого продолжается последовательное выполнение кода до очередной параллельной области и т.д. Предполагается, что OpenMP-программа без какой-либо модификации должна работать как на многопроцессорных системах, так и на однопроцессорных. В последнем случае директивы OpenMP просто игнорируются. Следует отметить, что наличие общей памяти не препятствует использованию технологий программирования, разработанных для систем с распределенной памятью.

Первая версия стандарта OpenMP для языков C/C++ появилась в октябре 1998 г., а вторая, и, пока, последняя – в марте 2002. Eе полное описание можно найти на сайте www.openmp.org. В связи с выпуском микропроцессора Pentium 4 HT, поддерживающего технологию Hyper Threading, корпорация Intel разработала реализацию стандарта OpenMP для компиляторов Intel C++. Она позволяет программировать параллельные

Комментарии к записи Параллельное программирование. OpenMP: интерфейс для SMP архитектур отключены

Рубрика: Программирование

Обсуждение закрыто.