Опубликован: 28.07.2007 | Доступ: свободный | Студентов: 2026 / 503 | Оценка: 4.53 / 4.26 | Длительность: 25:10:00
ISBN: 978-5-9556-0096-3
Специальности: Программист
Лекция 4:

Принципы разработки параллельных методов

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

4.4. Краткий обзор лекции

В лекции была рассмотрена методика разработки параллельных алгоритмов, предложенная в [ [ 32 ] ]. Она включает в себя этапы выделения подзадач, определения информационных зависимостей, масштабирования и распределения подзадач по процессорам вычислительной системы. При использовании методики предполагается, что вычислительная схема решения рассматриваемой задачи уже является известной. Основные требования, которые должны быть обеспечены при разработке параллельных алгоритмов, состоят в равномерной загрузке процессоров при низком информационном взаимодействии сформированного множества подзадач.

Для описания получаемых в ходе разработки вычислительных параллельных схем рассмотрены две модели. Первая из них – модель "подзадачи – сообщения" может быть использована на стадии проектирования параллельных алгоритмов, вторая — модель "процессы – каналы" – может быть применена на стадии реализации методов в виде параллельных программ.

В завершение раздела показывается применение рассмотренной методики разработки параллельных алгоритмов на примере решения гравитационной задачи N тел.

4.5. Обзор литературы

Рассмотренная в лекции методика разработки параллельных алгоритмов впервые была предложена в [ [ 32 ] ]. В этой работе изложение методики проводится более детально, кроме того, в ней содержится несколько примеров ее использования для разработки параллельных методов для решения ряда вычислительных задач.

Полезной при рассмотрении вопросов проектирования и разработки параллельных алгоритмов может оказаться также работа [ [ 63 ] ].

Гравитационная задача N тел более подробно рассматривается в [ [ 5 ] ].

4.6. Контрольные вопросы

  1. В чем состоят исходные предположения для возможности применения рассмотренной в лекции методики разработки параллельных алгоритмов?
  2. Каковы основные этапы проектирования и разработки методов параллельных вычислений?
  3. Как определяется модель "подзадачи – сообщения"?
  4. Как определяется модель "процессы – каналы"?
  5. Какие основные требования должны быть обеспечены при разработке параллельных алгоритмов?
  6. В чем состоят основные действия на этапе выделения подзадач?
  7. Каковы основные действия на этапе определения информационных зависимостей?
  8. В чем состоят основные действия на этапе масштабирования имеющегося набора подзадач?
  9. В чем состоят основные действия на этапе распределения подзадач по процессорам вычислительной системы?
  10. Как происходит динамическое управление распределением вычислительной нагрузки при помощи схемы "менеджер – исполнитель"?
  11. Какой метод параллельных вычислений был разработан для решения гравитационной задачи N тел?
  12. Какой способ выполнения операции обобщенного сбора данных является более эффективным?

4.7. Задачи и упражнения

1. Разработайте схему параллельных вычислений, используя рассмотренную в разделе методику проектирования и разработки параллельных методов:

  • для задачи поиска максимального значения среди минимальных элементов строк матрицы (такая задача имеет место для решения матричных игр)
    y= \max_{1 \le i \le N} \min_{1 \le j \le N} a_{ij}
    (обратите особое внимание на ситуацию, когда число процессоров превышает размер матрицы, т.е. p>N );
  • для задачи вычисления определенного интеграла с использованием метода прямоугольников
    y= \int\limits_a^b f(x)dx \approx h \sum_{i=0}^{N-1} f_i, \; 
f_i = f(x_i), \; 
x_i = a + ih, \;
h=(b-a)/N
    (описание методов интегрирования дано, например, в [ [ 47 ] ]).

2. Разработайте схему параллельных вычислений для задачи умножения матрицы на вектор, используя рассмотренную в разделе методику проектирования и разработки параллельных методов.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >