Технологии параллельного программирования.
1/20

Технологии параллельного программирования. Лекция 3

1. Технологии параллельного программирования.

Лекция 3
14.04.2022
Т.Ю.Лымарь
1

2. Содержание

14.04.2022
Критерии выбора технологии
Классификация и обзор технологий
Т.Ю.Лымарь
2

3. Критерии выбора технологии

14.04.2022
Возможность создания эффективных
программ
Возможность быстрого создания
программ
Возможность сохранения
эффективности созданных программ
при их переносе
Т.Ю.Лымарь
3

4. Классификация технологий

14.04.2022
Параллельные расширения последовательных
языков программирования
Параллельные языки программирования
Высокоуровневые коммуникационные библиотеки
и интерфейсы (API)
Специализированные параллельные библиотеки
Инструментальные системы, облегчающих
разработку параллельных программ
Средства автоматического распараллеливания
последовательных программ
Специализированные прикладные пакеты
Т.Ю.Лымарь
4

5. Параллельные расширения

Дополнение имеющегося языка
последовательного программирования
параллельными конструкциями
– Параллельные расширения и диалекты языка
Fortran
Fortran-DVM, Cray MPP Fortran, F--, Fortran 90/95,
Fortran D95, Fortran M, Fx, HPF, Opus, Vienna Fortran и
др.
– Параллельные расширения и диалекты языков
C/C++
14.04.2022
C-DVM, A++/P++, CC++, Charm/Charm++, Cilk, HPC,
HPC++, Maisie, Mentat, mpC, MPC++, Parsec, pC++,
sC++, uC++ и др.
Т.Ю.Лымарь
5

6. Язык HPF (High Performance FORTRAN)

14.04.2022
Т.Ю.Лымарь
6

7. Параллельные языки

Параллельные языки и расширения
– НОРМА, ABCL, Adl, Ada, Concurrent Clean,
MC#, Erlang, Linda, Modula-3, NESL,
Occam, Orca, Parallaxis, Phantom, Sisal,
SR, ZPL и др.
14.04.2022
Т.Ю.Лымарь
7

8. Интерфейсы параллельного программирования

Программирование на стандартных и широко
распространенных языках программирования с
использованием высокоуровневых
коммуникационных библиотек и интерфейсов
(API) для организации межпроцессного
взаимодействия.
Коммуникационные библиотеки и интерфейсы
– ACE, ARCH, BIP, BLACS, BSPlib, CVM, Counterpoint, FM,
Gala, GA, HPVM, ICC, JIAJIA, KELP, LPARX, MPI, MPL,
OOMPI, OpenMP, P4, Para++, Phosphorus, PVM, Quarks,
ROMIO, ShMem, SVMlib, TOOPS, Treadmarks
14.04.2022
Т.Ю.Лымарь
8

9. Специализированные параллельные библиотеки

Библиотеки заранее распараллеленных процедур
для решения различных научно-технических
задач (линейная алгебра, сеточные методы,
методы Монте-Карло, генетические алгоритмы,
рендеринг изображений, …)
– ATLAS, Aztec, BlockSolve95, Distributed Parallelization at
CWP, DOUG, GALOPPS, JOSTLE, NAMD, P-Sparslib, PIM,
ParMETIS, PARPACK, PBLAS, PETSc, PGAPack, PLAPACK,
ScaLAPACK, SPRNG и др.
14.04.2022
Т.Ю.Лымарь
9

10. Инструментальные системы разработки

Интегрированные среды
прототипирования, разработки и
отладки параллельных программ
– CODE, HeNCE, GRADE, TRAPPER,
EDPEPPS, Reactor, DEEP, Converse и др.
14.04.2022
Т.Ю.Лымарь
10

11. Инструментальная система CODE

Параллельная
программа
представляется в
виде графа,
вершинами которого
являются
последовательные
участки, а дуги
соответствуют
пересылкам данных.
Последовательные
участки могут быть
написаны на любом
языке, для
пересылок
используется PVM
или MPI.
14.04.2022
Т.Ю.Лымарь
11

12. Средства автоматического распараллеливания

Средства распознавания параллелизма в
алгоритмах, средства автоматического и
полуавтоматического распараллеливания
последовательных программ
– BERT 77, FORGE, KAP, PIPS, VAST, V-Ray.
14.04.2022
Т.Ю.Лымарь
12

13. Пакет V-Ray

V-Ray – комплекс инструментальных средств,
направленных на автоматизацию создания и
оптимизацию параллельных Fortran-программ для
современных суперкомпьютерных систем. Разработка
НИВЦ МГУ.
Основные возможности:
– Макроанализ – граф вызовов (порядок вызова процедур
проекта), граф вложенности циклов в процедурах, граф
использования общей памяти и др.
– Микроанализ – иерархический граф управления,
определение параллельных циклов, и др.
14.04.2022
Т.Ю.Лымарь
13

14. V-Ray: граф вызовов программы

14.04.2022
Т.Ю.Лымарь
14

15. V-Ray: граф вложенности циклов

14.04.2022
Т.Ю.Лымарь
15

16. V-Ray: граф использования общей памяти

14.04.2022
Т.Ю.Лымарь
16

17. Распараллеливающие компиляторы

do 10 i=1, n
do 50 j=1, n
A(i+j)=A(2*n-i-j+1)*q+p
do 10 i=1, n
do 20 j=1, n-i
A(i+j)=A(2*n-i-j+1)*q+p
do 30 j=n-i+1, n
A(i+j)=A(2*n-i-j+1)*q+p
14.04.2022
Т.Ю.Лымарь
17

18. Распараллеливающие компиляторы

do 10 i=1, n
A(i)=UserFunc(A, B(i))
?
14.04.2022
Т.Ю.Лымарь
18

19. Специализированные прикладные пакеты

Специализированные прикладные пакеты,
работающие на параллельных вычислительных
платформах
– Задачи инженерного анализа, прочности, теплофизики,
деформации, упругости, пластичности,
электромагнетизма
ANSYS, MSC.NASTRAN, ABAQUS, LS-DYNA
– Задачи аэро- и гидродинамики, механики жидкостей и
газов, горения и детонации
CFX, FLUENT, STAR-CD, FLOWVISION, FLOW-3D, GDT
– Задачи акустического анализа
14.04.2022
LMS Virtual Lab. Acoustic, COMET/Acoustics
Т.Ю.Лымарь
19

20. Пакеты ANSYS и CFX: расчет напряжения трубы

Создание геометрии модели
(ANSYS)
Создание сетки (ANSYS)
Расчет тепловых нагрузок (CFX)
14.04.2022
Настройка тепловых
напряжений (ANSYS)
Расчет напряжения от температуры (ANSYS)
Т.Ю.Лымарь
20
English     Русский Правила