Similar presentations:
Технологии параллельного программирования. Лекция 3
1. Технологии параллельного программирования.
Лекция 314.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, ndo 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, nA(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