ВУЗ:
Составители:
Рубрика:
- 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 -
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »
