SlideShare a Scribd company logo
1 of 29
Download to read offline
Измерение времени выполнения коллективных
операций обменов информацией между ветвями
параллельных MPI-программ
Курносов Михаил Георгиевич1,2
mkurnosov@gmail.com
1 Сибирский государственный университет телекоммуникаций и информатики,
Новосибирск, Россия
2 Институт физики полупроводников им. А.В. Ржанова СО РАН,
Новосибирск, Россия
Семинар «Вычислительные системы»
ИФП СО РАН, Новосибирск, 25 ноября 2011 г.
Коллективные операции обмена информацией
Курносов М.Г. Измерение времени выполнения коллективных операций 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++
Зачем измерять время выполнения коллективных операций?
Курносов М.Г. Измерение времени выполнения коллективных операций 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)
Пакеты измерения времени выполнения коллективных операций
Курносов М.Г. Измерение времени выполнения коллективных операций 4Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Название
пакета
Разработчик Описание
Intel MPI
Benchmarks
Intel
Текущая версия 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}
Mpptest
Argonne 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
SKaMPI
Universitä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
Netgauge
Indiana University, USA
(T. Hoefler)
Текущая версия 2.4.6 от 2008 г.,
тесты для функций MPI_Bcast, MPI_Reduce, MPI_Alltotall
MPIBench
Adelaide University,
Australia
Последняя версия 1.2 от 2006 г.,
тесты для функций MPI_Barrier, MPI_Bcast, MPI_Scatter, MPI_Gather,
MPI_Allgather, MPI_Alltotall
Задача измерения времени выполнения коллективной операции
Курносов М.Г. Измерение времени выполнения коллективных операций 5Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
int MPI_Bcast(void *buf, int count,
MPI_Datatype datatype, int root, MPI_Comm comm)
Задана MPI-функция и значения её параметров
Подсистема процессорных ядер и распределение ветвей программы по ним задается
MPI-коммуникатором comm.
Требуется измерить время 	࢚૙, ࢚૚, … , ࢚࢔ି૚ выполнения коллективной
MPI-функции в ࢔ ветвях программы.
Методы измерения времени выполнения коллективных операций
Курносов М.Г. Измерение времени выполнения коллективных операций 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 выполнения функции?
ܶ ൌ ‫ݐ‬଴ ࢀ ൌ ࢓ࢇ࢞ ࢚૙, ࢚૚, … , ࢚࢔ି૚ ܶ ൌ
‫ݐ‬଴ ൅ ‫ݐ‬ଵ ൅ ⋯ ൅ ‫ݐ‬௡ିଵ
݊
Систематические ошибки измерения времени
выполнения коллективных операций
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 г.
Систематические ошибки измерения времени
выполнения коллективных операций
8
2. В качестве конечного значения времени выполнения коллективной
операции принимается время определенной ветви (например, ветви 0).
Диаграмма выполнения коллекторного приема информации ветвью 0
(алгоритм биномиального дерева, результаты получены при помощи пакета
Intel Trace Analyzer and Collector)
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Систематические ошибки измерения времени
выполнения коллективных операций
9
3. На каждой итерации цикла измерений используются различные
значения входных параметров.
В пакетах Intel MPI Benchmarks, mpptest при измерении времени
выполнения функции MPI_Bcast на каждой итерации цикла номер
корневой ветви изменяется.
4. Игнорируется иерархическая организация памяти вычислительных
узлов системы.
В некоторых пакетах не учитывается то что, при повторном
использовании одного и того же буфера его данные с большой
вероятностью будут размещены в кэш-памяти процессора.
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Систематические ошибки измерения времени
выполнения коллективных операций
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 г.
Систематические ошибки измерения времени
выполнения коллективных операций
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 г.
Систематические ошибки измерения времени
выполнения коллективных операций
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 г.
Систематические ошибки измерения времени
выполнения коллективных операций
13
( 1)(α β), при 0,
( )
(α β), при 0.
i
n m i
t n
i m i
− + =
= 
+ >
( 1) (α β) / , при 0,
( , )
(( 1)( 1) )(α β) / , при 0.
i
n k m k i
T n k
n k i m k i
− + =
= 
− − + + >
1, при 0,
( , )
( , ) ( 1)( 1)
( ) при 0.
i
i
i
i
T n k
r n k n k i
t n i
ik
=

= = − − +
>
Оценка времени ti(n) выполнения линейного алгоритма трансляционного
обмена i-ой ветвью программы (модель Хокни)
Оценка времени Ti(n) выполнения линейного алгоритма трансляционного
обмена i-ой ветвью программы по результатам выполнения k итераций цикла
измерений
Отклонение от “истинного” значения:
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Систематические ошибки измерения времени
выполнения коллективных операций
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 г.
Систематические ошибки измерения времени
выполнения коллективных операций
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
1
2
3
1, при 0,
( , )
( , ) ( 1)( 1)
( ) при 0.
i
i
i
i
T n k
r n k n k i
t n i
ik
=

= = − − +
>
Ошибка растет с увеличением n и k
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Метод измерения времени выполнения коллективных операций
16
Предложен метод измерения времени выполнения коллективных
операций, основанный на синхронизации моментов запуска функций в
ветвях.
Выполнена программная реализация метода в пакете MPIPerf.
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Метод измерения времени выполнения коллективных операций
17
ττττ0
1
2
3
4
5
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 г.
Синхронизация локальных часов ветвей
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 г.
Корректировка расписаний
19
ττττ0
1
2
3
4
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 г.
Условия окончания измерений
20
ττττ0
1
2
3
4
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 г.
Содержание отчета
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 г.
Экспериментальное исследование
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 г.
Точность синхронизации моментов запуска операций
23
Коллективная операция ожидания WaitPatternUp – ветвь i ожидает в пустом
цикле (i + 1)·10–6 секунд. Время выполнения операции – n·10–6 секунд.
Зависимость времени t выполнения на кластере А (Xeon80) теста WaitPatternUp
от количества n ветвей в программе (таймер MPI_Wtime, библиотека MPICH2 1.2.1)
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Точность синхронизации моментов запуска операций
24
Зависимость времени t выполнения на кластере B (НГУ) теста WaitPatternUp
от количества n ветвей в программе (библиотека OpenMPI 1.4.4):
1 – MPIPerf, таймер MPI_Wtime; 2 – пакет SKaMPI, таймер MPI_Wtime;
3 – пакет MPIPerf, таймер TSC
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Точность синхронизации моментов запуска операций
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 г.
Точность синхронизации моментов запуска операций
26
Коллективная операция WaitPatternNull – ветвь i засекает время запуска
операции и завершает её. Время выполнения операции – 0 секунд.
Зависимость времени t выполнения на кластере Б теста WaitPatternNull
от количества n ветвей в программе:
1 – MPIPerf, таймер MPI_Wtime; 2 – MPIPerf, таймер TSC
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Bug
“hpet increasing
min_delta_ns”
Сравнение с результатами измерений пакетом SKaMPI
27
Зависимость времени t выполнения функции MPI_Bcast от размера m
передаваемого сообщения (кластер А, библиотека MPICH2 1.2.1):
1 – пакет SKaMPI; 2 – пакет MPIPerf
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
Воспроизводимость результатов измерений
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 г.
29
Спасибо за внимание!
Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.

More Related Content

What's hot

ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюAlexey Paznikov
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Mikhail Kurnosov
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Mikhail Kurnosov
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPMikhail Kurnosov
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Mikhail Kurnosov
 
сортировка слияниями
сортировка слияниямисортировка слияниями
сортировка слияниямиDmitry Protopopov
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхSergey Vasilyev
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 
Семинар 2. Многопоточное программирование на OpenMP (часть 2)
Семинар 2. Многопоточное программирование на OpenMP (часть 2)Семинар 2. Многопоточное программирование на OpenMP (часть 2)
Семинар 2. Многопоточное программирование на OpenMP (часть 2)Mikhail Kurnosov
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Dmitry Tsitelov
 
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)Mikhail Kurnosov
 
О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"Yandex
 

What's hot (12)

ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
 
сортировка слияниями
сортировка слияниямисортировка слияниями
сортировка слияниями
 
Параллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данныхПараллельные алгоритмы обработки данных
Параллельные алгоритмы обработки данных
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
Семинар 2. Многопоточное программирование на OpenMP (часть 2)
Семинар 2. Многопоточное программирование на OpenMP (часть 2)Семинар 2. Многопоточное программирование на OpenMP (часть 2)
Семинар 2. Многопоточное программирование на OpenMP (часть 2)
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)
 
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
 
О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"О.В.Сухорослов "Многопотчное программирование. Часть 2"
О.В.Сухорослов "Многопотчное программирование. Часть 2"
 

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

MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMikhail Kurnosov
 
О.В.Сухорослов "Параллельное программирование. Часть 2"
О.В.Сухорослов "Параллельное программирование. Часть 2"О.В.Сухорослов "Параллельное программирование. Часть 2"
О.В.Сухорослов "Параллельное программирование. Часть 2"Yandex
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякобиMichael Karpov
 
Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Mikhail Kurnosov
 
инструменты параллельного программирования
инструменты параллельного программированияинструменты параллельного программирования
инструменты параллельного программированияAlexander Petrov
 
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Andrey Akinshin
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2Michael Karpov
 
Лекция 4. Производные типы данных в стандарте MPI
Лекция 4. Производные типы данных в стандарте MPIЛекция 4. Производные типы данных в стандарте MPI
Лекция 4. Производные типы данных в стандарте MPIAlexey Paznikov
 
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)Ontico
 
Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиDotNetConf
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...Alexander Orlov
 
быстрая оценка ит проекта.максим русаков, григорий колесников
быстрая оценка ит проекта.максим русаков, григорий колесниковбыстрая оценка ит проекта.максим русаков, григорий колесников
быстрая оценка ит проекта.максим русаков, григорий колесниковOntico
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложенийMichael Karpov
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"QA Dnepropetrovsk Community (Ukraine)
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Ilya Nikitin
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 

Similar to Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных MPI-программ (20)

MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPIMPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
 
О.В.Сухорослов "Параллельное программирование. Часть 2"
О.В.Сухорослов "Параллельное программирование. Часть 2"О.В.Сухорослов "Параллельное программирование. Часть 2"
О.В.Сухорослов "Параллельное программирование. Часть 2"
 
Bgp методякоби
Bgp методякобиBgp методякоби
Bgp методякоби
 
Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)Стандарт MPI (Message Passing Interface)
Стандарт MPI (Message Passing Interface)
 
инструменты параллельного программирования
инструменты параллельного программированияинструменты параллельного программирования
инструменты параллельного программирования
 
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
 
Лекция 4. Производные типы данных в стандарте MPI
Лекция 4. Производные типы данных в стандарте MPIЛекция 4. Производные типы данных в стандарте MPI
Лекция 4. Производные типы данных в стандарте MPI
 
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)
Быстрая оценка ИТ-проекта (Максим Русаков, Григорий Колесников)
 
Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметки
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...
Оценка ИТ-проекта на ранней стадии. Практический опыт применения методологии ...
 
быстрая оценка ит проекта.максим русаков, григорий колесников
быстрая оценка ит проекта.максим русаков, григорий колесниковбыстрая оценка ит проекта.максим русаков, григорий колесников
быстрая оценка ит проекта.максим русаков, григорий колесников
 
трасировка Mpi приложений
трасировка Mpi приложенийтрасировка Mpi приложений
трасировка Mpi приложений
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
 
Petsc+slepc slides
Petsc+slepc slidesPetsc+slepc slides
Petsc+slepc slides
 
Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...Распределенная статистическая система машинного перевода (Distributed statist...
Распределенная статистическая система машинного перевода (Distributed statist...
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 
Prezent
PrezentPrezent
Prezent
 

More from Mikhail Kurnosov

Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Mikhail Kurnosov
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Mikhail Kurnosov
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Mikhail Kurnosov
 
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)Mikhail Kurnosov
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Mikhail Kurnosov
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPMikhail Kurnosov
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Mikhail Kurnosov
 
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)Mikhail Kurnosov
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Mikhail Kurnosov
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Лекция 4. Префиксные деревья (tries, prefix trees)
Лекция 4. Префиксные деревья (tries, prefix trees)Лекция 4. Префиксные деревья (tries, prefix trees)
Лекция 4. Префиксные деревья (tries, prefix trees)Mikhail Kurnosov
 
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...Mikhail Kurnosov
 
Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Mikhail Kurnosov
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...Mikhail Kurnosov
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Mikhail Kurnosov
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)Mikhail Kurnosov
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиMikhail Kurnosov
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеMikhail Kurnosov
 

More from Mikhail Kurnosov (20)

Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
 
Векторизация кода (семинар 3)
Векторизация кода (семинар 3)Векторизация кода (семинар 3)
Векторизация кода (семинар 3)
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
 
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)
Лекция 7. Декартовы деревья (Treaps, дучи, дерамиды)
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)
Лекция 6. Фибоначчиевы кучи (Fibonacci heaps)
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
 
Лекция 4. Префиксные деревья (tries, prefix trees)
Лекция 4. Префиксные деревья (tries, prefix trees)Лекция 4. Префиксные деревья (tries, prefix trees)
Лекция 4. Префиксные деревья (tries, prefix trees)
 
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
 
Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)Лекция 3. АВЛ-деревья (AVL trees)
Лекция 3. АВЛ-деревья (AVL trees)
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...
Лекция 2. Красно-чёрные деревья (Red-black trees). Скошенные деревья (Splay t...
 
Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)Лекция 1. Амортизационный анализ (amortized analysis)
Лекция 1. Амортизационный анализ (amortized analysis)
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графе
 

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

  • 1. Измерение времени выполнения коллективных операций обменов информацией между ветвями параллельных MPI-программ Курносов Михаил Георгиевич1,2 mkurnosov@gmail.com 1 Сибирский государственный университет телекоммуникаций и информатики, Новосибирск, Россия 2 Институт физики полупроводников им. А.В. Ржанова СО РАН, Новосибирск, Россия Семинар «Вычислительные системы» ИФП СО РАН, Новосибирск, 25 ноября 2011 г.
  • 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++
  • 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)
  • 4. Пакеты измерения времени выполнения коллективных операций Курносов М.Г. Измерение времени выполнения коллективных операций 4Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г. Название пакета Разработчик Описание Intel MPI Benchmarks Intel Текущая версия 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} Mpptest Argonne 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 SKaMPI Universitä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 Netgauge Indiana University, USA (T. Hoefler) Текущая версия 2.4.6 от 2008 г., тесты для функций MPI_Bcast, MPI_Reduce, MPI_Alltotall MPIBench Adelaide University, Australia Последняя версия 1.2 от 2006 г., тесты для функций MPI_Barrier, MPI_Bcast, MPI_Scatter, MPI_Gather, MPI_Allgather, MPI_Alltotall
  • 5. Задача измерения времени выполнения коллективной операции Курносов М.Г. Измерение времени выполнения коллективных операций 5Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г. int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm) Задана MPI-функция и значения её параметров Подсистема процессорных ядер и распределение ветвей программы по ним задается MPI-коммуникатором comm. Требуется измерить время ࢚૙, ࢚૚, … , ࢚࢔ି૚ выполнения коллективной MPI-функции в ࢔ ветвях программы.
  • 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 выполнения функции? ܶ ൌ ‫ݐ‬଴ ࢀ ൌ ࢓ࢇ࢞ ࢚૙, ࢚૚, … , ࢚࢔ି૚ ܶ ൌ ‫ݐ‬଴ ൅ ‫ݐ‬ଵ ൅ ⋯ ൅ ‫ݐ‬௡ିଵ ݊
  • 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 г.
  • 8. Систематические ошибки измерения времени выполнения коллективных операций 8 2. В качестве конечного значения времени выполнения коллективной операции принимается время определенной ветви (например, ветви 0). Диаграмма выполнения коллекторного приема информации ветвью 0 (алгоритм биномиального дерева, результаты получены при помощи пакета Intel Trace Analyzer and Collector) Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 9. Систематические ошибки измерения времени выполнения коллективных операций 9 3. На каждой итерации цикла измерений используются различные значения входных параметров. В пакетах Intel MPI Benchmarks, mpptest при измерении времени выполнения функции MPI_Bcast на каждой итерации цикла номер корневой ветви изменяется. 4. Игнорируется иерархическая организация памяти вычислительных узлов системы. В некоторых пакетах не учитывается то что, при повторном использовании одного и того же буфера его данные с большой вероятностью будут размещены в кэш-памяти процессора. Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 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 г.
  • 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 г.
  • 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 г.
  • 13. Систематические ошибки измерения времени выполнения коллективных операций 13 ( 1)(α β), при 0, ( ) (α β), при 0. i n m i t n i m i − + = =  + > ( 1) (α β) / , при 0, ( , ) (( 1)( 1) )(α β) / , при 0. i n k m k i T n k n k i m k i − + = =  − − + + > 1, при 0, ( , ) ( , ) ( 1)( 1) ( ) при 0. i i i i T n k r n k n k i t n i ik =  = = − − + > Оценка времени ti(n) выполнения линейного алгоритма трансляционного обмена i-ой ветвью программы (модель Хокни) Оценка времени Ti(n) выполнения линейного алгоритма трансляционного обмена i-ой ветвью программы по результатам выполнения k итераций цикла измерений Отклонение от “истинного” значения: Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 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 г.
  • 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 1 2 3 1, при 0, ( , ) ( , ) ( 1)( 1) ( ) при 0. i i i i T n k r n k n k i t n i ik =  = = − − + > Ошибка растет с увеличением n и k Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 16. Метод измерения времени выполнения коллективных операций 16 Предложен метод измерения времени выполнения коллективных операций, основанный на синхронизации моментов запуска функций в ветвях. Выполнена программная реализация метода в пакете MPIPerf. Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 17. Метод измерения времени выполнения коллективных операций 17 ττττ0 1 2 3 4 5 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 г.
  • 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 г.
  • 19. Корректировка расписаний 19 ττττ0 1 2 3 4 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 г.
  • 20. Условия окончания измерений 20 ττττ0 1 2 3 4 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 г.
  • 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 г.
  • 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 г.
  • 23. Точность синхронизации моментов запуска операций 23 Коллективная операция ожидания WaitPatternUp – ветвь i ожидает в пустом цикле (i + 1)·10–6 секунд. Время выполнения операции – n·10–6 секунд. Зависимость времени t выполнения на кластере А (Xeon80) теста WaitPatternUp от количества n ветвей в программе (таймер MPI_Wtime, библиотека MPICH2 1.2.1) Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 24. Точность синхронизации моментов запуска операций 24 Зависимость времени t выполнения на кластере B (НГУ) теста WaitPatternUp от количества n ветвей в программе (библиотека OpenMPI 1.4.4): 1 – MPIPerf, таймер MPI_Wtime; 2 – пакет SKaMPI, таймер MPI_Wtime; 3 – пакет MPIPerf, таймер TSC Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 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 г.
  • 26. Точность синхронизации моментов запуска операций 26 Коллективная операция WaitPatternNull – ветвь i засекает время запуска операции и завершает её. Время выполнения операции – 0 секунд. Зависимость времени t выполнения на кластере Б теста WaitPatternNull от количества n ветвей в программе: 1 – MPIPerf, таймер MPI_Wtime; 2 – MPIPerf, таймер TSC Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г. Bug “hpet increasing min_delta_ns”
  • 27. Сравнение с результатами измерений пакетом SKaMPI 27 Зависимость времени t выполнения функции MPI_Bcast от размера m передаваемого сообщения (кластер А, библиотека MPICH2 1.2.1): 1 – пакет SKaMPI; 2 – пакет MPIPerf Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.
  • 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 г.
  • 29. 29 Спасибо за внимание! Курносов М.Г. Измерение времени выполнения коллективных операций Семинар “Вычислительные системы”, ИФП СО РАН, 25 ноября 2011 г.