
- •Основные архитектуры параллельных компьютеров
- •Классификация архитектур вычислительных систем. (Классификация Флинна)
- •Модели параллельного программирования. Основные свойства параллельных алгоритмов
- •Модель задача-канал. Основные свойства модели "задача/канал"
- •Модель передачи сообщений
- •Модель параллелизма данных
- •Модель разделяемой памяти
- •Понятие о детерминизме программы
- •Модульность. Виды композиции модулей и/или программ
- •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. Переменные среды исполнения.
11. Основные этапы разработки параллельной программы.
Этапы процесса проектирования: декомпозиция (partitioning), взаимодействие (communication), интеграция (agglomeration), отображение (mapping)
О
сновное
внимание уделяется: на первых двух
этапах – параллелизм, масштабируемость;
на третьем, четвертом – локальность,
другие проблемы эффективности.
Декомпозиция: вычисление, которое должно быть выполнено, и данные, необходимые для этого вычисления, делятся на малые задачи; практические проблемы (число процессоров компьютера, на котором будет выполняться задача) игнорируются; внимание сосредоточено на обнаружении (выделении) возможностей параллельного выполнения.
Взаимодействие: определяются взаимодействия, требуемые для координации выполнения задачи; определяются соответствующие коммуникационные структуры и алгоритмы.
Интеграция: задача и коммуникационные структуры, определенные на первых двух этапах проекта оцениваются в соответствии с требованиями эффективности и стоимости реализации; при необходимости задачи объединяются в большие задачи, чтобы улучшить быстродействие или уменьшить стоимость разработки.
Отображение: каждая задача назначается на процессор таким образом, чтобы попытаться удовлетворить двум противоречивым целям: максимизации использования процессора и уменьшения издержек связи; отображение может быть определено статически или выполнено динамически с помощью алгоритмов сбалансированной загрузки.
Процесс проектирования:
Действие последовательное
НО, практически, это – существенно параллельный процесс
Одновременно учитывается много аспектов
Возможен, хотя и не желателен, перебор с возвратами (на предыдущие этапы)
Анализ части или всего проекта может потребовать изменений проектных решений, сделанных на предыдущих этапах.
12. Декомпозиция. Цели. Виды декомпозиции. Итоги этапа декомпозиции.
Это первый этап процесса разработки параллельной программы.
Цели декомпозиции:
Вычисление, которое должно быть выполнено, и данные, необходимые для этого вычисления, делятся на малые задачи.
Внимание сосредоточено на обнаружении (выделении) возможностей параллельного выполнения
При этом практические проблемы (число процессоров компьютера, на котором будет выполняться задача) игнорируются.
Виды декомпозиции:
Д екомпозиция по данным
Данные, над которыми выполняется декомпозиция:
Входные
Выходные
Промежуточные
На ранних стадиях проектирования предпочтительна трёхмерная декомпозиция, т.к. она предполагает самую большую гибкость.
Основное внимание уделяется:
самой большой структуре данных
структуре данных, к которой обращаются наиболее часто
Ф ункциональная декомпозиция
Другой взгляд на проблему, альтернативный по отношению к декомпозиции по данным, дополняющий декомпозицию по данным.
Методика структурирования программы и уменьшение сложности всего проекта.
Сфокусируемся на вычислениях:
Делим вычисления на непересекающиеся задачи
Определяем данные, необходимые для каждой задачи
Если требуемые для задачи данные также не пересекаются, то декомпозиция успешно определена
Если данные задач существенно пересекаются – необходима декомпозиция по данным
ИТОГИ:
Если количество задач не больше на порядок чем кол-во процессоров – то может не хватить гибкости при последующем проектировании.
Если есть избыточные вычисления и предъявляются повышенные требования к памяти – возможно алгоритм не масштабируем при решении задач большой размерности.
Если задачи несоразмерны между собой, то могут возникнуть сложности при осуществлении равномерной загрузки процессоров.
Если число задач не сопоставимо с размерностью исходной задачи, то данный параллельный алгоритм, возможно, не сможет решать проблемы большой размерности даже при увеличении количества доступных процессоров. Идеально, если увеличение размерности задачи должно увеличивать в первую очередь число задач, а не размер индивидуальных задач.
Рассмотрение нескольких вариантов декомпозиции на данном этапе может повысить гибкость последующих стадий проектирования.