OpenMP

Введение

Википедия: "OpenMP -- открытый стандарт для распараллеливания программ на языках СиСи++ и Фортран"

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

Стандарт OpenMP поддерживается современными компиляторами языков Си, С++, Фортран. Компиляторы предусматривают соответствующие опции командной строки. Например, программу с директивами OpenMP можно скомпилировать с помощью компилятора gcc так:

$gcc -fopenmp myopenmpprogram.c

Основные проблемы в OpenMP-программах случаются из-за некорректного использования объектов в общей памяти несколькими потоками. 

Официальный сайт

Стандарты OpenMP доступны на сайте http://openmp.org

Краткий обзор стандарта 3.1: тут

Материалы