29
Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных MPI-программ Курносов Михаил Георгиевич 1,2 [email protected] 1 Сибирский государственный университет телекоммуникаций и информатики, Новосибирск, Россия 2 Институт физики полупроводников им. А.В. Ржанова СО РАН, Новосибирск, Россия Семинар «Вычислительные системы» ИФП СО РАН, Новосибирск, 25 ноября 2011 г.

Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Embed Size (px)

Citation preview

Page 1: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Измерение времени выполнения коллективных

операций обменов информацией между ветвями

параллельных MPI-программ

Курносов Михаил Георгиевич1,2

[email protected]

1 Сибирский государственный университет телекоммуникаций и информатики,

Новосибирск, Россия

2 Институт физики полупроводников им. А.В. Ржанова СО РАН,

Новосибирск, Россия

Семинар «Вычислительные системы»

ИФП СО РАН, Новосибирск, 25 ноября 2011 г.

Page 2: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Коллективные операции обмена информацией

Курносов М.Г. Измерение времени выполнения коллективных операций 2Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Библиотеки передачи сообщений

• MPI: MPI_Bcast, MPI_Gather, …

• Shmem: shmem_broadcast, shmem_collect, …

• PVM: pvm_bcast, pvm_gather, …

Языки параллельного программирования

• Unified Parallel C: upc_all_broadcast, upc_all_gather, …

• IBM X10

• Cray Chapel

• Co-Array Fortran

• Charm++

Page 3: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Зачем измерять время выполнения коллективных операций?

Курносов М.Г. Измерение времени выполнения коллективных операций 3Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

I. Создание новых алгоритмов коллективных обменов и их

экспериментальное сравнение с другими алгоритмами

II. Выбор оптимального алгоритма реализации коллективной

операции на заданной подсистеме процессорных ядер

� IBM BlueGene/P Self Tuned Adaptive Routines (A. Faraj, S. Kumar et al, 2009).

� OpenMPI tuned collectives (G. Fagg, J. Dongarra et al., 2006).

� Intel mpitune

III. Верификация аналитических и имитационных моделей

коллективных операций

� Аналитические модели на основе моделей дифференцированных обменов:

LogP, LogGP, PLogP, LogfP, Hockney / (A. Alexandrov, 95), (T. Kielmann, 2000),

(T. Angskun et al, 2005), (T. Hoefler, 2009)

� Имитационное моделирование выполнения параллельных программ:

LogGOPSim, BigSim, SILAS, MPI-SIM, PSINS, DIMEMAS / (T. Hoefler, 2010),

(В.П. Иванников, 2007)

Page 4: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Пакеты измерения времени выполнения коллективных операций

Курносов М.Г. Измерение времени выполнения коллективных операций 4Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Название

пакетаРазработчик Описание

Intel MPI

BenchmarksIntel

Текущая версия 3.2.3,

тесты для функций MPI_Bcast, MPI_Gather{v}, MPI_Scatter{v}, MPI_Reduce,

MPI_Reduce_scatter, MPI_Barrier, MPI_Allgather{v}, MPI_Allreduce, MPI_Alltoall{v}

MpptestArgonne National

Laboratory, USA (W. Gropp)

Последняя версия от 2000 г.,

тесты для функций MPI_Аllreduce, MPI_Bcast, MPI_Gather, MPI_Barrier

LLCBench

(MPBench)University of Tennessee, USA

Текущая версия 1.7 от 2005 г.,

тесты для функций MPI_Bcast, MPI_Reduce, MPI_Allreduce, MPI_Alltoall, MPI_Barrier

Phloem MPI

Benchmarks

Lawrence Livermore

National Laboratory, USA

Текущая версия 1.0 от 2008 г.,

тесты для функций MPI_Bcast, MPI_Alltoall{v}, MPI_Allgather{v}, MPI_Gather{v},

MPI_Scatter, MPI_Allreduce, MPI_Reduce, MPI_Barrier

MPIBlib

School of Computer Science

and Informatics, Ireland

(A. Lastovetsky)

Текущая версия 1.2.0 от 2011 г.,

тесты для функций MPI_Bcast, MPI_Gather{v}, MPI_Scatter{v}, MPI_Reduce

OSU Micro-

Benchmarks

Ohio State University, USA

(D.K. Panda)

Текущая версия 3.5 от 2011 г.,

тесты для функций MPI_Bcast, MPI_Alltoall

SKaMPIUniversität Karlsruhe,

Germany (W. Augustin)

Текущая версия 5.0.4 от 2008 г.,

тесты для функций MPI_Bcast, MPI_Barrier, MPI_Reduce, MPI_Allreduce,

MPI_Reduce_scatter, MPI_Alltotall{v}, MPI_Gather{v}, MPI_Allgather{v},

MPI_Scatter{v}, MPI_Scan

NetgaugeIndiana University, USA

(T. Hoefler)

Текущая версия 2.4.6 от 2008 г.,

тесты для функций MPI_Bcast, MPI_Reduce, MPI_Alltotall

MPIBenchAdelaide University,

Australia

Последняя версия 1.2 от 2006 г.,

тесты для функций MPI_Barrier, MPI_Bcast, MPI_Scatter, MPI_Gather,

MPI_Allgather, MPI_Alltotall

Page 5: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Задача измерения времени выполнения коллективной операции

Курносов М.Г. Измерение времени выполнения коллективных операций 5Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

int MPI_Bcast(void *buf, int count,

MPI_Datatype datatype, int root, MPI_Comm comm)

Задана MPI-функция и значения её параметров

Подсистема процессорных ядер и распределение ветвей программы по ним задается

MPI-коммуникатором comm.

Требуется измерить время ��, ��, … , ���� выполнения коллективной

MPI-функции в � ветвях программы.

Page 6: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Методы измерения времени выполнения коллективных операций

Курносов М.Г. Измерение времени выполнения коллективных операций 6Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

MPI_Bcast(buf, count, MPI_BYTE, root, comm) /* Инициализация */

MPI_Barrier(comm) /* Синхронизация */

t = MPI_Wtime()

for i = 1 to k do /* Цикл измерений */

MPI_Bcast(buf, count, MPI_BYTE, root, comm)

end for

t = (MPI_Wtime() – t) / k /* Среднее время одного запуска */

Процедура измерения времени выполнения MPI-функции

(Intel MPI Benchmarks, mpptest, LLCBench, Phloem, MPIBlib, OSU MB и др.)

Какое значение принимать за время T выполнения функции?

�� ��� ��, ��, … , ���� �� � �� �⋯� ����

Page 7: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения временивыполнения коллективных операций

7

1. Время выполнения операции измеряется без её предварительной

инициализации (пакеты Intel MPI Benchmarks, Phloem, MPIBlib, SKaMPI)

Функция

Отношение времени выполнения ветвью 0 первого

вызова MPI-функции к её второму вызову

Библиотека OpenMPI 1.4.4 Библиотека Intel MPI 4.0.0.028

MPI_Bcast 6178 2,59

MPI_Allgather 5,61 131,8

MPI_Barrier 5,50 9,01

MPI_Reduce 6944 12901

MPI_Allreduce 11,71 353,37

(64 процесса – 8 узлов по 8 ядер, при повторном вызове функции использовался буфер

такого же размера – 8192 байт, но размещенный по другому адресу в оперативной

памяти – для предотвращения загрузки сообщений из кэш-памяти процессора)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 8: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

8

2. В качестве конечного значения времени выполнения коллективной

операции принимается время определенной ветви (например, ветви 0).

Диаграмма выполнения коллекторного приема информации ветвью 0

(алгоритм биномиального дерева, результаты получены при помощи пакета

Intel Trace Analyzer and Collector)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 9: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

9

3. На каждой итерации цикла измерений используются различные

значения входных параметров.

В пакетах Intel MPI Benchmarks, mpptest при измерении времени

выполнения функции MPI_Bcast на каждой итерации цикла номер

корневой ветви изменяется.

4. Игнорируется иерархическая организация памяти вычислительных

узлов системы.

В некоторых пакетах не учитывается то что, при повторном

использовании одного и того же буфера его данные с большой

вероятностью будут размещены в кэш-памяти процессора.

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 10: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

10

5. Синхронизация ветвей параллельной программы перед и/или в цикле

измерений выполняется при помощи барьерной синхронизации

(MPI_Barrier). Это приводит к неравномерному смещению моментов запуска

операции в ветвях.

MPI_Sendrecv MPI_Sendrecv

MPI_Sendrecv MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_SendrecvP7

P6

P0

P1

P2

P3

P4

P5

t

MPI_Sendrecv MPI_Sendrecv

MPI_Sendrecv MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_Sendrecv

MPI_SendrecvP7

P6

P0

P1

P2

P3

P4

P5

t

Диаграмма выполнения барьерной синхронизации “рассеивающим”

алгоритмом (Dissemination barrier: MPICH2, OpenMPI)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 11: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

11

6. Измерения выполняется в цикле без синхронизации моментов запуска

операции в ветвях (Pipelining). Это приводит к тому, что результирующая

оценка времени выполнения функции включает и время ожидания начала

следующей итерации цикла измерений.

Send0

1

2

3

t1 = α + mβ

t2 = 2(α + mβ)

t3 = 3(α + mβ)

t0 = 3(α + mβ)Send Send

Recv

Recv

Recv

t

Диаграмма выполнения линейного алгоритма трансляционного

обмена (MPI_Bcast) между 4 ветвями параллельной программы

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 12: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

12

Send0

1

2

3

Send Send

Recv Recv Recv

Recv Recv Recv

Recv Recv Recv

Send Send Send

Recv Recv Recv

Recv Recv Recv

Recv Recv Recv

Send Send Send

Recv Recv Recv

Recv Recv Recv

Recv Wait Recv

Send Send Send

Recv

Recv Recv

Recv Wait Recv

Итерация 1 Итерация 2 Итерация 3 Итерация 4

T0 = 12(αααα + mββββ) / 4

T1 = 10(αααα + mββββ) / 4

T2 = 11(αααα + mββββ) / 4

T3 = 12(αααα + mββββ) / 4

Измеренное время:

T0 = 12(αααα + mββββ) / 4

T1 = 10(αααα + mββββ) / 4

T2 = 11(αααα + mββββ) / 4

T3 = 12(αααα + mββββ) / 4

Действительное время:

t0 = 3(αααα + mββββ)

t1 = αααα + mββββ

t2 = 2(αααα + mββββ)

t3 = 3(αααα + mββββ) T3 / t3 = 1

T2 / t2 = 1,4

T1 / t1 = 2,5

T0 / t0 = 1

Отклонение (ошибка):

ττττ

– обмен информацией; – ожидание сообщения

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 13: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

13

( 1)(α β), при 0,( )

(α β), при 0.i

n m it n

i m i

− + ==

+ >

( 1) (α β) / , при 0,( , )

(( 1)( 1) )(α β) / , при 0.i

n k m k iT n k

n k i m k i

− + ==

− − + + >

1, при 0,( , )

( , ) ( 1)( 1)( ) при 0.

ii

i

iT n k

r n k n k it n i

ik

=

= = − − +>

Оценка времени ti(n) выполнения линейного алгоритма трансляционного

обмена i-ой ветвью программы (модель Хокни)

Оценка времени Ti(n) выполнения линейного алгоритма трансляционного

обмена i-ой ветвью программы по результатам выполнения k итераций цикла

измерений

Отклонение от “истинного” значения:

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 14: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

14

Зависимость ri(n, k) от номера i ветви линейного алгоритма трансляционного

обмена (MPI_Bcast; n = 64; k = 100):

ri(n, k)

i

– Gigabit Ethernet, m = 1024; – теоретическая кривая (модель Хокни);

– InfiniBand QDR, m = 1024

Результаты натурных

экспериментов!

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 15: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Систематические ошибки измерения времени выполнения коллективных операций

15

Зависимость ri(n, k) от номера i ветви линейного алгоритма

трансляционного обмена (k = 10):

1 – n = 32; 2 – n = 64; 3 – n = 128

0

20

40

60

80

100

120

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30

ri(n, k)

i

12

3

1, при 0,( , )

( , ) ( 1)( 1)( ) при 0.

ii

i

iT n k

r n k n k it n i

ik

=

= = − − +>

Ошибка растет с увеличением n и k

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 16: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Метод измерения времени выполнения коллективных операций

16

� Предложен метод измерения времени выполнения коллективных

операций, основанный на синхронизации моментов запуска функций в

ветвях.

� Выполнена программная реализация метода в пакете MPIPerf.

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 17: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Метод измерения времени выполнения коллективных операций

17

ττττ0

12345

T0τ'1 T0

τ'2τ11

τ12 τ1,k–1τ13 τ21

τ2,k–1τ22

tbcast tbcast

Этап 2 (k запусков)

1

1 Синхронизация показаний локальных часов ветвей – установление глобального времени.

2

2 Оценка времени выполнения трансляционного обмена:

MPI_Bcast(&buf, 1, MPI_DOUBLE, mpiperf_master_rank, comm)

3

Этап 1 (k запусков)

3 Формирование расписания запусков операции. Измерение времени выполнения

операции. Корректировка расписания. Проверка условий окончания измерений.

4

4 Статистическая обработка результатов измерений. Формирование отчета.

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 18: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Синхронизация локальных часов ветвей

18

� Каждая ветвь i вычисляет смещение oi показаний своих часов относительно часов

ветви 0.

� Зная oi и показания Ti своих часов ветвь i может вычислить показания T0

глобальных часов

� � � �� � � � ��

� Вычисление oi

iT ′iT ′′

0T 0T 0T

iT ′0T

iT ′iT ′′

iT ′iT ′′

iT ′0T iT ′

0T

RTT

0 2

T

i io T T ′= − − RTT i iT T T′′ ′= −

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 19: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Корректировка расписаний

19

ττττ01234

5

T0τ'1 T0

τ11

τ12 τ1,k–1τ13 τ21

τ2,k–1τ22

tbcast tbcast

Этап 2 (k запусков)…Этап 1 (k запусков)

� На этапе j на каждый запуск отводится δj секунд

� Если на этапе j количество некорректных запусков превышает g процентов

(25%), то выполняется корректировка длины интервала

δ1 δ2

1δ γ(τ τ )j j j k+ ′= −

� Значение δ1 вычисляется на этапе инициализации (этап 0)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 20: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Условия окончания измерений

20

ττττ01234

5

T0τ'1 T0

τ11

τ12 τ1,k–1τ13 τ21

τ2,k–1τ22

tbcast tbcast

Этап 2 (k запусков)…Этап 1 (k запусков)

� Вариант 1 – количество измерений больше 100 (-R) или количество

“корректных” измерений больше 30 (-E).

� Вариант 2 – относительная ошибка среднего значения времени t

выполнения операции не превосходит 5% (-e) и количество “корректных”

измерений не менее 10 (-E).

$ mpiperf -x1 -X32768 -s64 -r10 -R500 -e3 Bcast

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 21: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Содержание отчета

21

� Значение варьируемого параметра (размер сообщения или количество

ветвей в программе).

� Общее количество nt запусков операции (TRuns).

� Количество nc корректных запусков (CRuns).

� Количество ns корректных запусков после статистической обработки (FRuns).

� Статистическая оценка T математического ожидания времени выполнения операции

(формируется по ns значениям, Mean).

� Стандартная ошибка SE измерения времени T

(�� ������

, где !��– среднеквадратическое отклонение T, StdErr).

� минимальное значение T, максимальное значение T.

� абсолютная ошибка E измерений времени T

(� α ∙ �� , где α – коэффициент Стьюдента).

� Доверительный интервал $% � α ∙ �� & & � α ∙ ��',

где p – заданная пользователем надежность (p ∈ {0,9; 0,95; 0,99}).

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 22: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Экспериментальное исследование

22

� Кластер А (Центр параллельных вычислительных технологий

ФГОБУ ВПО “СибГУТИ”): 10 вычислительных узлов, на каждом узле

установлено 2 четырехъядерных процессора Intel Xeon E5420,

коммуникационная сеть – Gigabit Ethernet, операционная

система – CentOS 5.2 x86_64 (ядро linux 2.6.18-92.el5)

� Кластер Б (Информационно-вычислительный центр ФГОБУ ВПО “НГУ”):

использована подсистема из 96 узлов HP BL2x220 G7, на каждом

узле 2 шестиядерных процессора Intel Xeon X5670, коммуникационная

сеть – InfiniBand 4x QDR, операционная система – SUSE Linux Enterprise

Server 11 x86_64 (ядро linux 2.6.27.19-5)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 23: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Точность синхронизации моментов запуска операций

23

Коллективная операция ожидания WaitPatternUp – ветвь i ожидает в пустом

цикле (i + 1)·10–6 секунд. Время выполнения операции – n·10–6 секунд.

Зависимость времени t выполнения на кластере А (Xeon80) теста WaitPatternUp

от количества n ветвей в программе (таймер MPI_Wtime, библиотека MPICH2 1.2.1)

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 24: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Точность синхронизации моментов запуска операций

24

Зависимость времени t выполнения на кластере B (НГУ) теста WaitPatternUp

от количества n ветвей в программе (библиотека OpenMPI 1.4.4):

1 – MPIPerf, таймер MPI_Wtime; 2 – пакет SKaMPI, таймер MPI_Wtime;

3 – пакет MPIPerf, таймер TSC

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 25: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Точность синхронизации моментов запуска операций

25

Узел cn201 кластера ФГОБУ ВПО “НГУ”

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource

hpet

$ dmesg | grep –i hpet

ACPI: HPET EF62F200, 0038 (r1 HP ProLiant 2 � 162E)

ACPI: HPET id: 0x8086a201 base: 0xfed00000

hpet clockevent registered

hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0

hpet0: 4 64-bit timers, 14318180 Hz

hpet_resources: 0xfed00000 is busy

rtc0: alarms up to one year, y3k, hpet irqs

CE: hpet increasing min_delta_ns to 15000 nsec

CE: hpet increasing min_delta_ns to 22500 nsec

CE: hpet increasing min_delta_ns to 33750 nsec

� Bug 444496 “hpet increasing min_delta_ns” // Novell Bugzilla. – URL: https://bugzilla.novell.com/show_bug.cgi?id=444496.

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 26: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Точность синхронизации моментов запуска операций

26

Коллективная операция WaitPatternNull – ветвь i засекает время запуска

операции и завершает её. Время выполнения операции – 0 секунд.

Зависимость времени t выполнения на кластере Б теста WaitPatternNull

от количества n ветвей в программе:

1 – MPIPerf, таймер MPI_Wtime; 2 – MPIPerf, таймер TSC

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Bug“hpet increasing min_delta_ns”

Page 27: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Сравнение с результатами измерений пакетом SKaMPI

27

Зависимость времени t выполнения функции MPI_Bcast от размера m

передаваемого сообщения (кластер А, библиотека MPICH2 1.2.1):

1 – пакет SKaMPI; 2 – пакет MPIPerf

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 28: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

Воспроизводимость результатов измерений

28

Зависимость относительной ошибки RSE

измерения среднего времени выполнения

функции MPI_Barrier от количества n ветвей

в программе: 1 – пакет SKaMPI; 2 – MPIPerf

(кластер Б, библиотека Intel MPI 4.0.0.028 с таймером

MPI_Wtime на основе значения регистра TSC)

[ ]RSE

M[ ] 10

t

t

σ=

mpiperf-barrier-1.dat

mpiperf-barrier-2.dat

...

mpiperf-barrier-10.dat

Оба пакета запускались

по 10 раз:

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

Page 29: Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных

29

Спасибо за внимание!

Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.