ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »