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

UptoLike

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

- 31 -
использовать вместо пар MPI_Send/MPI_Recv универсальные функции
приема/передачи MPI_Sendrecv и MPI_Sendrecv_replace, оценить возможное
уменьшение времени выполнения программы при этом (реализовать цикл
повтора 1000 ÷ 10000 раз и взять среднее, для оценки времени выполнения
dt воспользоваться конструкцией t1=MPI_Wtime(); ..… t2=MPI_Wtime(); dt=t2-
t1;)
Часть 3 работы. Задачей является определение времени выполнения основ-
ных MPI-функций. Для этого используется профессионально разработанная
(лаборатория параллельных информационных технологий НИВЦ МГУ, paral-
[email protected]) программа 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.
T = 1000, t = 10000
--- Size 1, Iteration 0 ---
** Timing for MPI operations in microseconds ***
0.330508 Timing; clock tick: 1
8.96987 Barrier
43.2285 Global sum of 1 numbers (Allreduce)
15.5733 Global sum of 1 numbers (Reduce)
25.436 Broadcast of 1 numbers
22.852 Gathering of 1 numbers
67.4485 All-gather of 1 numbers
•   использовать вместо пар MPI_Send/MPI_Recv универсальные функции
    приема/передачи MPI_Sendrecv и MPI_Sendrecv_replace, оценить возможное
    уменьшение времени выполнения программы при этом (реализовать цикл
    повтора 1000 ÷ 10000 раз и взять среднее, для оценки времени выполнения
    dt воспользоваться конструкцией t1=MPI_Wtime(); ..… t2=MPI_Wtime(); dt=t2-
    t1;)

   Часть 3 работы. Задачей является определение времени выполнения основ-
ных MPI-функций. Для этого используется профессионально разработанная
(лаборатория параллельных информационных технологий НИВЦ МГУ, paral-
[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.
    T = 1000, t = 10000

    --- Size 1, Iteration 0 ---
    ** Timing for MPI operations in microseconds ***
    0.330508            Timing; clock tick: 1
    8.96987             Barrier
    43.2285             Global sum of 1 numbers (Allreduce)
    15.5733             Global sum of 1 numbers (Reduce)
    25.436              Broadcast of 1 numbers
    22.852              Gathering of 1 numbers
    67.4485             All-gather of 1 numbers

                                             - 31 -