Введение в практику разработки параллельных программ в стандарте MPI. Баканов В.М - 57 стр.

UptoLike

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

- 57 -
ограничением его является (непременное) условие M=Q
2
и N % Q = 0 (N
порядок перемножаемых матриц, M – число процессов, виртуально распре-
деленных на квадратную сетку размеров Q
×
Q, причем каждый процесс свя-
зан с блоком размером N/Q
×N/Q элементов матриц).
На практике процедура умножения матриц является всего лишь частью
разрабатываемой проблемно-ориентированной системы; при этом исходные
матрицы [A] и [B] вычисляются на предварительных стадиях расчета и не-
обязательно присутствуют в полном виде в ОП главного процесса; програм-
мист должен разработать интерфейсные процедуры, позволяющие заполнять
исходные матрицы непосредственно в ОП вычислительных
узлов (и соответ-
ственно получать значения коэффициентов матрицы-произведения).
Цель работы
уяснение принципов распределения данных по вычисли-
тельным узлам кластера, приобретение практических знаний и навыков в
создании MPI-программ.
Необходимое оборудованиевычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работыстудент подготавливает исходные тексты
MPI-программ, компилирует их в исполн
имое приложение, запускает на
счет, проводит анализ полученных данных по заданию преподавателя.
Индивидуальные задания для студентов:
Определить (ограниченный возможностями компилятора или размером
ОП) максимальный размер матрицы [A] при умножении на вектор-столбец
[B] для данного вычислительного комплекса (последовательный и парал-
лельный варианты при числе процессоров N=2,3,4,5).
Выявить зависимость быстродействия (величина, обратная времени вы-
полнения алгоритма) программы MM_MPI от числа процессоров
N=2,3,4… (производительность программы при числе процессоров 2 при-
нять единичной).
Дополнительные задания (самостоятельная работа студентов):
Реализовать программу умножения матриц с выполнением процессорами:
a) Умножений элементов a
ik
×
b
kj
с целью получения частичной суммы c
ij
б) Умножений строки матрицы [A] на столбец [B] с последующим сумми-
рованием для получения конечного значения c
ij
. Какая особенность алго-
ритма выполнения действий на процессорах потребуется в этом случае?
Сравнить быстродействие этих программ с
MM_MPI_0.C при различном чис-
ле процессоров и применении широковещательных операций обмена.
Запрограммировать (описанный в работе [3], стр.179
÷
180) ‘шахматный
алгоритм умножения матриц; сравнить его производительность с
                                                        2
ограничением его является (непременное) условие M=Q и N % Q = 0 (N –
порядок перемножаемых матриц, M – число процессов, виртуально распре-
деленных на квадратную сетку размеров Q × Q, причем каждый процесс свя-
зан с блоком размером N/Q × N/Q элементов матриц).
  На практике процедура умножения матриц является всего лишь частью
разрабатываемой проблемно-ориентированной системы; при этом исходные
матрицы [A] и [B] вычисляются на предварительных стадиях расчета и не-
обязательно присутствуют в полном виде в ОП главного процесса; програм-
мист должен разработать интерфейсные процедуры, позволяющие заполнять
исходные матрицы непосредственно в ОП вычислительных узлов (и соответ-
ственно получать значения коэффициентов матрицы-произведения).

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

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

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

• Реализовать программу умножения матриц с выполнением процессорами:
  a) Умножений элементов a ik × b kj с целью получения частичной суммы cij
    б) Умножений строки матрицы [A] на столбец [B] с последующим сумми-
    рованием для получения конечного значения cij . Какая особенность алго-
    ритма выполнения действий на процессорах потребуется в этом случае?
    Сравнить быстродействие этих программ с MM_MPI_0.C при различном чис-
    ле процессоров и применении широковещательных операций обмена.
•   Запрограммировать (описанный в работе [3], стр.179 ÷ 180) ‘шахматный’
    алгоритм умножения матриц; сравнить его производительность с

                                      - 57 -