Принципы разработки параллельных методов
4.4. Краткий обзор лекции
В лекции была рассмотрена методика разработки параллельных алгоритмов, предложенная в [ [ 32 ] ]. Она включает в себя этапы выделения подзадач, определения информационных зависимостей, масштабирования и распределения подзадач по процессорам вычислительной системы. При использовании методики предполагается, что вычислительная схема решения рассматриваемой задачи уже является известной. Основные требования, которые должны быть обеспечены при разработке параллельных алгоритмов, состоят в равномерной загрузке процессоров при низком информационном взаимодействии сформированного множества подзадач.
Для описания получаемых в ходе разработки вычислительных параллельных схем рассмотрены две модели. Первая из них – модель "подзадачи – сообщения" может быть использована на стадии проектирования параллельных алгоритмов, вторая — модель "процессы – каналы" – может быть применена на стадии реализации методов в виде параллельных программ.
В завершение раздела показывается применение рассмотренной методики разработки параллельных алгоритмов на примере решения гравитационной задачи N тел.
4.5. Обзор литературы
Рассмотренная в лекции методика разработки параллельных алгоритмов впервые была предложена в [ [ 32 ] ]. В этой работе изложение методики проводится более детально, кроме того, в ней содержится несколько примеров ее использования для разработки параллельных методов для решения ряда вычислительных задач.
Полезной при рассмотрении вопросов проектирования и разработки параллельных алгоритмов может оказаться также работа [ [ 63 ] ].
Гравитационная задача N тел более подробно рассматривается в [ [ 5 ] ].
4.6. Контрольные вопросы
- В чем состоят исходные предположения для возможности применения рассмотренной в лекции методики разработки параллельных алгоритмов?
- Каковы основные этапы проектирования и разработки методов параллельных вычислений?
- Как определяется модель "подзадачи – сообщения"?
- Как определяется модель "процессы – каналы"?
- Какие основные требования должны быть обеспечены при разработке параллельных алгоритмов?
- В чем состоят основные действия на этапе выделения подзадач?
- Каковы основные действия на этапе определения информационных зависимостей?
- В чем состоят основные действия на этапе масштабирования имеющегося набора подзадач?
- В чем состоят основные действия на этапе распределения подзадач по процессорам вычислительной системы?
- Как происходит динамическое управление распределением вычислительной нагрузки при помощи схемы "менеджер – исполнитель"?
- Какой метод параллельных вычислений был разработан для решения гравитационной задачи N тел?
- Какой способ выполнения операции обобщенного сбора данных является более эффективным?
4.7. Задачи и упражнения
1. Разработайте схему параллельных вычислений, используя рассмотренную в разделе методику проектирования и разработки параллельных методов:
- для задачи поиска максимального значения среди минимальных элементов строк матрицы (такая задача имеет место для решения матричных игр) (обратите особое внимание на ситуацию, когда число процессоров превышает размер матрицы, т.е. p>N );
- для задачи вычисления определенного интеграла с использованием метода прямоугольников (описание методов интегрирования дано, например, в [ [ 47 ] ]).
2. Разработайте схему параллельных вычислений для задачи умножения матрицы на вектор, используя рассмотренную в разделе методику проектирования и разработки параллельных методов.