Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Суперкомпьютерных технологий
Введение
Учебный курс
Параллельное программирование с
OpenMP
Поток 4 В П В П В П
Поток 3 В П В П В П
Chip
Поток 2 MultiThreading
В П В П В П
Поток 1
В П В П В П
Время
В - вычисления П - доступ к памяти
Параллельное программирование с OpenMP: Введение
Москва, 2016 г. © Бахтин В.А. 4 из 51
Top 500
IBM Power8
2,75 – 4,2 ГГц
12 ядер x 8 нитей
Simultaneuos
MultiThreading
64 КБ Data Cache +
32КБ instruction Cache
L2 512 КБ
L3 96 МБ
www.idh.ch/IBM_TU_2013/Power8.pdf
Технологический процесс 28 нм
Площадь кристалла 350 кв. мм
Рассеиваемая мощность на
60 – 90 Вт
уровне
Параллельное программирование с OpenMP: Введение
Москва, 2016 г. © Бахтин В.А. 13 из 51
Тенденции развития современных процессоров
4.0
4.0
(1+x2) dx =
0
Мы можем
аппроксимировать интеграл
F(x) = 4.0/(1+x2)
F(x )x
i
i=0
OpenMP OpenMP
C/C++ 2.0 OpenMP
C/C++ 1.0
F/C/C++ 4.5
OpenMP 3.1:
Oracle Solaris Studio12.3: Linux and Solaris
Cray: Cray XT series Linux environment
LLVM: clang Linux and MacOS
IBM 12.1: Linux and AIX
Предыдущие версии OpenMP:
PGI 8.0: Linux and Windows PathScale
Lahey/Fujitsu Fortran 95 Microsoft Visual Studio 2008 C++
NAG Fortran Complier 6.0 OpenUH
OpenMP 3.0:
Absoft Pro FortranMP: 11.1
Параллельное программирование с OpenMP: Введение
Москва, 2016 г. © Бахтин В.А. 37 из 51
Обзор основных возможностей OpenMP
C$OMP FLUSH OpenMP:
omp API
OpenMP:
#pragma APIдля
длянаписания
criticalнаписания
многонитевых
многонитевыхприложений
приложений
C$OMP THREADPRIVATE(/ABC/) CALL OMP_SET_NUM_THREADS(10)
••Множество
Множество директив
директив компилятора,
компилятора,
C$OMP PARALLEL DO SHARED(A,B,C) CALL OMP_TEST_LOCK(LCK)
набор
наборфункции
функциибиблиотеки
библиотекисистемы
системы
CALL OMP_INIT_LOCK (LCK)
поддержки,
поддержки, переменные
переменные
C$OMP окружения
окружения
MASTER
C$OMP ATOMIC
••Облегчает
Облегчаетсоздание
созданиемногонитиевых
многонитиевых
C$OMP SINGLE PRIVATE(X)
SETENVпрограмм
программ на
наФортране,
OMP_SCHEDULE Фортране, CCииC++
“STATIC,4” C++
••Обобщение
Обобщение опыта
опытасоздания
создания
C$OMP PARALLEL DO ORDERED PRIVATE (A, B,
параллельныхC)
параллельныхпрограммC$OMP для
программ дляSMP
SMPии
ORDERED
C$OMP PARALLEL REDUCTION (+: A,DSMB) систем
DSM систем за
за последние
последние 20
20лет
лет
C$OMP SECTIONS
#pragma omp parallel for private(a, b)
C$OMP BARRIER
C$OMP PARALLEL COPYIN(/blk/) C$OMP DO LASTPRIVATE(XX)
http://www.sgi.com/products/servers/uv/
http://www.openmp.org
http://www.compunity.org
http://www.parallel.ru/tech/tech_dev/openmp.html
Вопросы?