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

UptoLike

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

- 37 -
Дополнительные задания (самостоятельная работа студентов):
Усложнить структуру передаваемой в качестве сообщения текстовой
строки (внести номер процесса, имя компьютера, момент времени переда-
чи)
Для посылки сообщения всем процессам использовать функцию рассылки
MPI_Bcast
Использовать вместо пар
MPI_Send/MPI_Recv
универсальные функции
приема/передачи
MPI_Sendrecv
и
MPI_Sendrecv_replace
, оценить возможное
уменьшение времени выполнения программы при этом (реализовать цикл
повтора 1000
÷
10000 раз и взять среднее, для оценки времени выполнения
dt
воспользоваться конструкцией
t1=MPI_Wtime(); ..… t2=MPI_Wtime(); dt=t2-
t1;
)
Часть 3 работы. Задачей является определение времени выполнения ос-
новных MPI-функций. Для этого используется профессионально разработан-
ная (лаборатория параллельных информационных технологий НИВЦ МГУ,
) программа
MPI_TEST.C
(версия 2.0), исходный текст кото-
рой вследствие значительного размера (более 500 строк исходного кода) не
приводится (программа работоспособна при число процессоров не менее 2).
Параметры командной строки имеют вид
<буква><значение>
и могут идти в
командной строке в любом порядке (или вообще отсутствовать); смысл ос-
новных параметров следующий:
T<число>
- тестовая процедура повторяется указанное число раз (для ка-
ждого значения длины сообщения), результаты усредняются; по умолча-
нию
T=10
3
t<число>
- число повторений для относительнобыстрыхопераций (та-
ких как измерение времени); умолчание
t=10
4
R<число>
- число повторений всего теста; умолчание
R=1
Примерный вид выдачи программы приведен ниже (тест выполнялся на 5
процессорах высокопроизводительного кластера
SCI
НИВЦ МГУ, усреднен-
ное время выполнения MPI-вызовов указано в мксек, точность не лучше ве-
личины
Timing
):
Process 1 of 5 on sci2-4
Process 2 of 5 on sci3-1
Process 3 of 5 on sci3-2
Process 4 of 5 on sci3-3
MPItest/C 2.0: running 5 processes...
Process 0 of 5 on sci2-2
Testing basic MPI routines.
                                             - 37 -




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

 • Усложнить     структуру передаваемой в качестве сообщения текстовой
  строки (внести номер процесса, имя компьютера, момент времени переда-
  чи)
 • Для посылки сообщения всем процессам использовать функцию рассылки
     MPI_Bcast
 •    Использовать вместо пар MPI_Send/MPI_Recv универсальные функции
     приема/передачи MPI_Sendrecv и MPI_Sendrecv_replace, оценить возможное
     уменьшение времени выполнения программы при этом (реализовать цикл
     повтора 1000 ÷ 10000 раз и взять среднее, для оценки времени выполнения
     dt воспользоваться конструкцией t1=MPI_Wtime(); ..… t2=MPI_Wtime(); dt=t2-
     t1;)

  Часть 3 работы. Задачей является определение времени выполнения ос-
новных MPI-функций. Для этого используется профессионально разработан-
ная (лаборатория параллельных информационных технологий НИВЦ МГУ,
[email protected]) программа MPI_TEST.C (версия 2.0), исходный текст кото-
рой вследствие значительного размера (более 500 строк исходного кода) не
приводится (программа работоспособна при число процессоров не менее 2).
  Параметры командной строки имеют вид <буква><значение> и могут идти в
командной строке в любом порядке (или вообще отсутствовать); смысл ос-
новных параметров следующий:

 • T<число> - тестовая процедура повторяется указанное число раз (для ка-
  ждого значения длины сообщения), результаты усредняются; по умолча-
           3
  нию T=10
 • t<число> - число повторений для относительно ‘быстрых’ операций (та-
                                             4
  ких как измерение времени); умолчание t=10
 • R<число> - число повторений всего теста; умолчание R=1

  Примерный вид выдачи программы приведен ниже (тест выполнялся на 5
процессорах высокопроизводительного кластера SCI НИВЦ МГУ, усреднен-
ное время выполнения MPI-вызовов указано в мксек, точность не лучше ве-
личины Timing):

     Process 1 of 5 on sci2-4
     Process 2 of 5 on sci3-1
     Process 3 of 5 on sci3-2
     Process 4 of 5 on sci3-3
     MPItest/C 2.0: running 5 processes...
     Process 0 of 5 on sci2-2
     Testing basic MPI routines.