
OpenMP
Sign in to saveAlso 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
- Has use
- parallel programming
Show 5 more facts
- Stack Exchange tag
- stackoverflow.com/tags/openmp
- 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