Параллельное программирование в стандарте MPI. Баканов В.М - 63 стр.

UptoLike

Составители: 

- 63 -
На практике процедура умножения матриц является всего лишь частью
разрабатываемой проблемно-ориентированной системы; при этом исходные
матрицы [A] и [B] вычисляются на предварительных стадиях расчета и не-
обязательно присутствуют в полном виде в ОП главного процесса; програм-
мист должен разработать интерфейсные процедуры, позволяющие заполнять
исходные матрицы непосредственно в ОП вычислительных узлов (и соответ
-
ственно получать значения коэффициентов матрицы-произведения).
Необходимое оборудованиевычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работыстудент подготавливает исходные тексты
MPI-программ, компилирует их в исполнимое приложение, запускает на
счет, проводит анализ полученных данных по заданию преподавателя.
Индивидуальные задания для студентов:
Определить (ограниченный возможностями компилятора или размером
ОП) максимальный размер матрицы [A] при умножении на вектор-
столбец [B] для данного вычислительного комплекса (последовательный
и параллельный варианты при числе процессоров N=2,3,4,5…).
Выявить зависимость быстродействия (величина, обратная времени вы-
полнения алгоритма) программы
MM_MPI_2
от числа процессоров
N=3,4,5… (производительность программы при числе процессоров 2 при-
нять единичной).
Дополнительные задания (самостоятельная работа студентов):
Модифицировать программу
MM_MPI_2
таким образом, чтобы матрицы
[A], [B] и [C] не присутствовали в ОП каждого процесса, а только на глав-
ном.
Реализовать программу умножения матриц с выполнением каждым про-
цессором:
А) Умножений элементов
a
ik
×
b
kj
с целью получения частичной суммы
c
ij
и последующим суммирование частичных сумм главным процессом
для получения
c
ij
(программа
MM_MPI_0.C
).
Б) Умножений строки матрицы [A] на столбец [B] с последующим сум-
мированием на каждом процессоре для получения конечного значения
c
ij
(программа
MM_MPI_1.C
).
Какая особенность алгоритма выполнения действий на процессорах потре-
буется в этом случае? Сравнить быстродействие этих программ с
MM_MPI_2.C
при различном числе процессоров.
                                     - 63 -

  На практике процедура умножения матриц является всего лишь частью
разрабатываемой проблемно-ориентированной системы; при этом исходные
матрицы [A] и [B] вычисляются на предварительных стадиях расчета и не-
обязательно присутствуют в полном виде в ОП главного процесса; програм-
мист должен разработать интерфейсные процедуры, позволяющие заполнять
исходные матрицы непосредственно в ОП вычислительных узлов (и соответ-
ственно получать значения коэффициентов матрицы-произведения).

  Необходимое оборудование – вычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.

  Порядок проведения работы – студент подготавливает исходные тексты
MPI-программ, компилирует их в исполнимое приложение, запускает на
счет, проводит анализ полученных данных по заданию преподавателя.

  Индивидуальные задания для студентов:

 • Определить (ограниченный возможностями компилятора или размером
   ОП) максимальный размер матрицы [A] при умножении на вектор-
   столбец [B] для данного вычислительного комплекса (последовательный
   и параллельный варианты при числе процессоров N=2,3,4,5…).
 • Выявить зависимость быстродействия (величина, обратная времени вы-
   полнения алгоритма) программы MM_MPI_2 от числа процессоров
   N=3,4,5… (производительность программы при числе процессоров 2 при-
   нять единичной).

  Дополнительные задания (самостоятельная работа студентов):

 • Модифицировать программу MM_MPI_2 таким образом, чтобы матрицы
   [A], [B] и [C] не присутствовали в ОП каждого процесса, а только на глав-
   ном.
 • Реализовать программу умножения матриц с выполнением каждым про-
   цессором:
     А) Умножений элементов aik × bkj с целью получения частичной суммы
     cij и последующим суммирование частичных сумм главным процессом
     для получения cij (программа MM_MPI_0.C).
    Б) Умножений строки матрицы [A] на столбец [B] с последующим сум-
     мированием на каждом процессоре для получения конечного значения
      cij (программа MM_MPI_1.C).
  Какая особенность алгоритма выполнения действий на процессорах потре-
  буется в этом случае? Сравнить быстродействие этих программ с
  MM_MPI_2.C при различном числе процессоров.