Технологии параллельного программирования.
Содержание
Критерии выбора технологии
Классификация технологий
Параллельные расширения
Язык HPF (High Performance FORTRAN)
Параллельные языки
Интерфейсы параллельного программирования
Специализированные параллельные библиотеки
Инструментальные системы разработки
Инструментальная система CODE
Средства автоматического распараллеливания
Пакет V-Ray
V-Ray: граф вызовов программы
V-Ray: граф вложенности циклов
V-Ray: граф использования общей памяти
Распараллеливающие компиляторы
Распараллеливающие компиляторы
Специализированные прикладные пакеты
Пакеты ANSYS и CFX: расчет напряжения трубы
3.10M
Category: softwaresoftware

Технологии параллельного программирования. Лекция 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     Русский Rules