
- •Основные архитектуры параллельных компьютеров
- •Классификация архитектур вычислительных систем. (Классификация Флинна)
- •Модели параллельного программирования. Основные свойства параллельных алгоритмов
- •Модель задача-канал. Основные свойства модели "задача/канал"
- •Модель передачи сообщений
- •Модель параллелизма данных
- •Модель разделяемой памяти
- •Понятие о детерминизме программы
- •Модульность. Виды композиции модулей и/или программ
- •10. Пример параллельного алгоритма: конечные разности.
- •11. Основные этапы разработки параллельной программы.
- •12. Декомпозиция. Цели. Виды декомпозиции. Итоги этапа декомпозиции.
- •Д екомпозиция по данным
- •Ф ункциональная декомпозиция
- •13. Коммуникация. Виды коммуникаций: локальные, глобальные,динамические, асинхронные. Распределенные коммуникации ивычисления. Итоги.
- •Локальные/глобальные.
- •Синхронные/асинхронные.
- •Статические/динамические.
- •С труктурные/неструктурные.
- •16. Анализ эффективности параллельных алгоритмов. Система показателей оценки характеристик параллельной программы. Асимптотический анализ. Эффективность параллельной программы
- •Система показателей оценки характеристик
- •Соглашения о терминах
- •Принятая в mpi нотация записи
- •23. Базовые функции mpi (минимальный набор)
- •24. Библиотека mpi. Организация приема/передачи данных между отдельными процессами
- •Функции приема/передачи сообщений с блокировкой
- •Основные функции приема/передачи сообщений без блокировки
- •Совмещенные прием/передача сообщений
- •25. Библиотека mpi. Коллективные функции
- •Функции коллективного обмена данными
- •26. Библиотека mpi. Глобальные вычислительные операции над распределенными данными
- •27. Библиотека mpi. Обеспечение модульности. Коммуникаторы, группы и области связи
- •Два взаимосвязанных механизма:
- •Основные понятия (группа):
- •Основные понятия (коммуникатор):
- •28. Библиотека mpi. Проблемы использования различных типов данных. Пользовательские типы данных
- •Пользовательские типы данных:
- •Характеристики типов:
- •29. Библиотека mpi. Производные типы данных и передача упакованных данных
- •Механизмы эффективной пересылки данные разных типов:
- •Производные типы данных:
- •Характеристики типов:
- •Передача упакованных данных:
- •Технология OpenMp. Стратегия подхода.
- •Директивы OpenMp. Формат записи директив.
- •Директивы OpenMp. Области видимости директив. Типы директив.
- •Директивы OpenMp. Определение параллельной области.
- •Директивы OpenMp. Распределение вычислений по потокам.
- •Директивы OpenMp. Синхронизация.
- •Директивы OpenMp. Управление областью видимости данных.
- •37. Библиотека функций OpenMp. Функции контроля параметров среды исполнения.
- •38. Библиотека функций OpenMp. Функции синхронизации.
- •39. Технология OpenMp. Переменные среды исполнения.
16. Анализ эффективности параллельных алгоритмов. Система показателей оценки характеристик параллельной программы. Асимптотический анализ. Эффективность параллельной программы
Время выполнения
Масштабируемость процесса вычислений
Устройства генерации, хранения данных, передачи по сети, чтения/записи на диск, передачи данных между различными этапами вычислений
Стоимость различных стадий проектирования
Система показателей оценки характеристик
Время выполнения Эффективность распараллеливания Требования по памяти Производительность Латентность Скорость ввода/вывода Переносимость Масштабируемость
|
Стоимость разработки Стоимость реализации Стоимость верификации Возможность повторного использования Аппаратные требования Стоимость аппаратуры Стоимость эксплуатации
|
Экстраполяция по результатам наблюдения
Параллельный алгоритм X обеспечил коэффициент ускорения вычислений 10.8 для компьютера с 12 процессорами при размере задачи N=100 .
Хорошо это или плохо?
А на 1000 процессорах?
Для N=10 или N=1000 ?
А если затраты на коммуникацию возрастут в 10 раз?
Асимптотический анализ
Время работы алгоритма ~ O(N log N) на O(N) процессорах
Это означает, что существует константа c и минимальный размер задачи N0 такие, что для всех N>N0 временные затраты ≤ c N log N на N процессорах.
Недостатки асимптотического анализа
Игнорируются малые значения N и P. T ~ N log N T=10N+N log N (N < 1024)
1000N log N vs. 10N2 (лучше при N<996 )
Нет привязки к конкретному параллельному компьютеру (архитектуре)
Поэтому – использовать осторожно!
17. Анализ эффективности параллельных алгоритмов. Модель производительности. Снижение сложности модели.
Модель производительности
Снижение сложности модели
Используется идеализированный мультикомпьютер
Масштабный анализ, т.е. определение незначащих составляющих задачи.
Эмпирические исследования для уточнения простой модели vs. усложнение модели
Время вычислений -
Чаще всего зависит от
размера задачи N
характеристик процессоров
параметров оперативной памяти
Время коммуникаций
-
Р
азличают
два типа коммуникаций:
межпроцессорные (interprocessor)
внутри процессорные (intraprocessor)
Idle Time
22. Краткая характеристика библиотеки MPI
Основные характеристики
MPI - Message Passing Interface, интерфейс передачи сообщений
Языки программирования:
– FORTRAN;
– C;
Более 120 функций;
SPMD-модель параллельного программирования;
Наличие групп процессов (безопасность сообщений), топологий процессов;
Структурирование передаваемого сообщения, типизация, гетерогенность;
Режимы: normal (blocking and non-blocking), synchronous, ready (to allow access to fast protocols), buffered;
Большое разнообразие коллективных операций.
Чего нет в MPI: Функции управления процессами, работа с удаленной памятью, разделяемая общая память, active messages, threads.
MPI (message passing interface) - библиотека функций, предназначенная для поддержки работы параллельных процессов в терминах передачи сообщений.
MPI предоставляет программисту единый механизм взаимодействия процессов внутри параллельного приложения независимо от машинной архитектуры (однопроцессорные или многопроцессорные, с общей или локальной памятью), взаимного расположения ветвей (на одном процессоре или на разных) и API операционной системы.
Минимально в состав MPI входят: библиотека программирования (заголовочные и библиотечные файлы для языков С, С++ и FORTRAN) и загрузчик приложений. Дополнительно включаются: профилирующий вариант библиотеки (используется на стадии тестирования параллельного приложения), загрузчик с графическим и сетевым интерфейсом для X-Window и проч.
MPI может работать также на базе любого из трех способов соединений:
через общую память;
через скоростную внутримашинную сеть многопроцессорных вычислительных систем;
через сеть, как правило, работающую по протоколу TCP/IP.