Skip to content
OpenMP
EntityQ496579· pop 26· linked from 260 articles

Also known as Open Multi-Processing

открытый стандарт для распараллеливания программ на языках Си, C++ и Фортран

Key facts

Software.name
OpenMP
Software.logo
OpenMP logo|180px
Software.author
OpenMP Architecture Review Board
Software.developer
OpenMP Architecture Review Board
Software.latest_release_version
6.0
Software.operating_system
Cross-platform
Software.platform
Cross-platform
Software.genre
Extension to C, C++, and Fortran; API
Software.license
Various

via Wikipedia infobox

Wikidata facts

Instance of
software
Official website
www.openmp.org
Show 5 more facts
software version identifier
6.0
operating system
cross-platform
programmed in
C
Commons category
OpenMP
Sources (2)

via Wikidata · CC0

Article · Русский

OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Даёт описание совокупности директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. Разработка спецификаций стандарта ведётся некоммерческой организацией OpenMP Architecture Review Board (ARB), в которую входят все основные производители процессоров, а также ряд суперкомпьютерных лабораторий и университетов. Первая версия спецификации вышла в 1997 году, предназначалась только для Фортрана, в следующем году вышла версия для Си и C++. OpenMP реализует параллельные вычисления с помощью многопоточности, в которой ведущий (англ. master) поток создаёт набор ведомых потоков, и задача распределяется между ними. Предполагается, что потоки выполняются параллельно на машине с несколькими процессорами (количество процессоров не обязательно должно быть больше или равно количеству потоков). Задачи, выполняемые потоками параллельно, так же, как и данные, требуемые для выполнения этих задач, описываются с помощью специальных директив препроцессора соответствующего языка — «прагм». Например, участок кода наФортране, который должен исполняться несколькими потоками, каждый из которых имеет свою копию переменной N, предваряется следующей директивой: !$OMP PARALLEL PRIVATE(N) Количество создаваемых потоков может регулироваться как самой программой при помощи вызова библиотечных процедур, так и извне, при помощи переменных окружения. Ключевые элементы стандарта: * конструкции для создания потоков (директива parallel), * конструкции распределения работы между потоками (директивы DO/for и section), * конструкции для управления работой с данными (выражения shared и private для определения класса памяти переменных), * конструкции для синхронизации потоков (директивы critical, atomic и barrier), * процедуры библиотеки поддержки времени выполнения (например, omp_get_thread_num), * переменные окружения (например, OMP_NUM_THREADS).

Abstract from DBpedia / Wikipedia · CC BY-SA

Gallery (6)