Оценка производительности вычислительного кластера на

реклама
УДК 681.3.06+519.68
Мальковский С.И., Пересветов В.В., 2009
ОЦЕНКА ПРОИЗВОДИТЕЛЬНОСТИ ВЫЧИСЛИТЕЛЬНОГО
КЛАСТЕРА НА ЧЕТЫРЕХЪЯДЕРНЫХ ПРОЦЕССОРАХ
Мальковский С.И. – м.н.с. (ВЦ ДВО РАН);
Пересветов В.В. – с.н.с. (ВЦ ДВО РАН), к.ф.-м.н.
В докладе обсуждаются результаты проведённых экспериментов для
пяти двухпроцессорных узлов вычислительного кластера ВЦ ДВО
РАН с пиковой производительностью 480 GFlops, построенных на
четырёхъядерных процессорах. Представлен сравнительный анализ
результатов эффективности компиляторов Intel, GCC и LLVM, технологий MPI и OpenMP. Проведены расчёты с применением стандартных пакетов оценки производительности параллельных вычислений HPL, IMB и NPB.
При введении в эксплуатацию новых вычислительных систем
необходимо уделять должное внимание оценке их производительности. Особенно необходима такая оценка для вычислительных кластеров. Это позволяет оценить возможности развёртываемого оборудования, выбрать подходящие параллельные технологии, компиляторы и
другое программное обеспечение.
Ранее уже были проведены оценки производительности вычислительных кластеров ВЦ ДВО РАН. В работе [1] описана архитектура,
программное обеспечение и результаты экспериментального исследования производительности вычислительного кластера пиковой производительности 54 GFlops, введенного в эксплуатацию в 2004 г., в составе: управляющий узел с RAID-массивом, 8 бездисковых узлов, процессоры Pentium 4 (3 GHz), коммуникационная сеть Gigabit Ethernet. В
работе [2] приведены результаты испытаний для вычислительного кластера с пиковой производительностью 204 GFlops, состоящего из 8 узлов HP ProLiant DL360 G5, в которых установлены по 2 двухъядерных
процессора Xeon 5060 (3.2 GHz) и память 4 GB.
В настоящем докладе обсуждаются результаты проведённых экспериментов для пяти новых двухпроцессорных узлов Sun Blade X6250
Server вычислительного кластера ВЦ ДВО РАН с пиковой производи1
тельностью 480 GFlops, построенных на четырёхъядерных процессорах Intel Xeon E5450 (3 GHz) с памятью 16 GB на каждом. При тестировании использовалось программное обеспечение Intel Cluster Toolkit,
библиотека Intel MPI, компиляторы Intel с поддержкой технологии
OpenMP, компиляторы GNU и LLVM. Общая производительность нового сегмента составила 305 GFlops по тесту HPL Linpack. В докладе
также приведены результаты исследования производительности средствами IMB и NPB. Проведена оценка масштабируемости вычислительного кластера с использованием сетевой инфраструктуры Gigabit
Ethernet. Выполнено сравнение эффективности применения технологий MPI и OpenMP в пределах одного узла вычислительного кластера.
Тест Linpack. При тестировании использовалась версия для массивно-параллельных систем – HPL-1 (Portable Implementation of the
High-Performance Linpack Benchmark
for Distributed-Memory
Computers) [3], входящая в состав Intel Cluster Toolkit. Этот тест является эталонным и с его помощью оценивается реальная производительность вычислительных систем.
Программа HPL решает СЛАУ Ax = b методом LU -разложения с
выбором ведущего элемента, где A – плотно заполненная вещественная матрица двойной точности размерности N . Используя HPL можно
оценить масштабируемость кластера. На рис. 1 показаны результаты
максимальной производительности от числа ядер.
Рис. 1. Зависимость производительности R от числа ядер m.
Максимальная производительность пяти новых узлов кластера по
тесту Linpack, составила Rmax = 305 GFlops при размерности матрицы
2
N max = 96000 . Это 65% от пиковой производительности, что для используемой коммуникационной сети Gigabit Ethernet является хорошим показателем. На графике, показанном на рис. 1, можно видеть почти линейное возрастание производительности с добавлением новых
вычислительных ядер. Отличия от прямой линии связаны с числом
ядер на узле (8): при m = 8, 16, 24, 32, 40 производительность быстрее
возрастает. Следует отметить, что такой рост наблюдается при условии
использования матрицы максимальной размерности. Из анализа рис. 1
можно сделать вывод о возможности дальнейшего увеличения числа
вычислительных узлов при использовании текущей сетевой инфраструктуры для решения подобных задач. Далее будет показано, что
данный вывод для некоторых приложений не верен.
Тест IMB. Тест содержит элементарные операции передачи сообщений в стандарте MPI-1 [4]. Полученные экспериментальные значения в относительных единицах времени позволяют оценить производительность для различных способов передачи сообщений в стандарте
MPI. Эти данные помогут выбрать способы передачи сообщений при
создании параллельных программ. В табл. 1 приведены некоторые результаты для n = 4 процессов (запущенных на 4 ядрах одного узла) и n
= 40 процессов (запущенных на 40 ядрах всех узлов). В случае n = 4
все коммуникационные операции выполняются в оперативной памяти,
во втором случае для этой цели также используется коммуникационная
среда Gigabit Ethernet.
Табл. 1.
Результаты теста IMB
Тип
передачи
сообщений
PingPong
8 Байт
1 MБайт
n=4
n = 40
n=4
n = 40
1,1
-
0,7×103
3
1,0×104
Sendrecv
1,1
14
1,6×10
Exchange
1,9
50
3,60×103
7,1×104
Allreduce
2,6
183
2,9×103
8,6×104
Reduce
2,0
24
2,2×103
1,1×104
Allgather
2,4
318
6,9×103
4,6×105
Alltoall
3,5
334
1,0×104
3,9×106
Bcast
1,4
33
1,5×103
8,9×104
В табл. 1 представлены данные для малого и большого сообщения:
8 байт и 1048576 байт (1 Мбайт). Результаты времени работы в относительных единицах для первого типа сообщения в большей степени за3
висят от латентности коммуникационной среды, а второго – от её пропускной способности. Данные табл. 1 показывают различие на 2-3 порядка результатов для n = 4 и n = 40, это объясняется тем, что в одном
случае все коммуникационные операции выполняются в оперативной
памяти, а во втором – также и в сети Gigabit Ethernet.
Дадим пояснения к операциям передачи сообщений. В тесте
PingPong активны только два процесса, которые выполняют операции
MPI_Send, MPI_Recv, а остальные процессы ждут. В тесте Sendrecv
выполняются операции MPI_Sendrecv в периодических коммуникационных цепочках. В тесте Exchange выполняются операции
MPI_Isend/MPI_Waitall, MPI_Recv, которые часто используются в сеточных алгоритмах для осуществления обменов на границах. В
остальных
тестах
используются
коллективные
операции:
MPI_Allreduce и MPI_Reduce (с выполнением операции MPI_SUM),
MPI_Allgather, MPI_Alltoall, MPI_Bcast. Тесты показывают, что в коллективных операциях задержки значительны, что объясняется одновременной пересылкой сообщений. Вывод для сети Gigabit Ethernet:
при программировании нужно избегать коллективных операций для
большой длины пересылок, программировать пересылки данных равномернее, отдавать предпочтение асинхронным двухточечным операциям.
Тест NPB. Тест NAS Parallel Benchmark [5] создан для оценки
производительности параллельных вычислений. В настоящей работе
использовалась версия NPB 3.3. Тест состоит из ряда простых задач:
ядер и приложений. Ядра и приложения могут производить вычисления в классах сложности: S, W, A, B, C, D. С увеличением класса
сложности возрастает размерность основных массивов данных и количество итераций в основных циклах программ.
Далее представлены результаты испытаний производительности
для ряда тестов NPB, причем их порядок выстроен в соответствии с
уровнем нагрузки на коммуникационную сеть. Здесь приведены показатели производительности, полученные в результате 30 испытаний.
Тест «EP» служит для оценки производительности в расчётах с
плавающей точкой при отсутствии заметных межпроцессорных взаимодействий. Он включает в себя генерацию псевдослучайных нормально распределённых чисел. В табл. 2 показаны результаты его работы, в скобках дано число узлов. Можно видеть, что в пределах одного узла технология OpenMP показывает одинаковую производительность с MPI. С увеличением числа узлов производительность не меняется. Компилятор ifort показал почти в два раза лучшие результаты.
4
Табл. 2.
Производительность R/n для теста EP
Тип
Компилятор
Класс A
Класс B
Класс C
Класс D
MPI
ifort -O3
51
51
51
50
MPI
gfort -O3
26
26
26
26
MPI
LLVM -O3
27
27
28
27
OpenMP
ifort -O3
52
52
52
-
16(2)
MPI
ifort -O3
49
51
50
50
32(4)
MPI
ifort -O3
49
49
49
49
n
8(1)
В тесте «LU» проводится LU разложение. В табл. 3 показаны результаты оценки производительности, включая значения относительного разброса в % (R – среднее значение, k – размер выборки):
k
∑ ( R i − R) 2
100σ
, σ = i =1
.
R
k −1
Можно видеть, что в пределах одного узла технология OpenMP
показывает большую производительность, чем MPI. С увеличением
числа узлов производительность существенно не меняется для класса
сложности С. В данном тесте применяются синхронные передачи
сообщений небольшой длины, поэтому коммуникационная сеть не
перегружена.
σn =
Табл. 3.
Результаты для теста LU
Класс A
Класс B
Класс C
Тип
Компилятор
R/n
σn
R/n
σn
R/n
σn
MPI
ifort -O3
950
0,8
798
0,3
574
3
MPI
gfort -O3
954
0,6
809
0,4
590
5
MPI
LLVM -O3
962
0,6
806
1
608
5
OpenMP
ifort -O3
1132
0,3
1052
0,4
654
2
16(2)
MPI
ifort -O3
1102
3
756
0,9
765
0,8
32(4)
MPI
ifort -O3
358
28
421
12
546
5
n
8(1)
В тесте «MG» находится приближенное решение трехмерного
5
уравнения Пуассона с периодическими граничными условиями. Используется многосеточный алгоритм. В табл. 4 показаны результаты
проведенных экспериментов. Можно видеть, что в пределах одного
узла технология OpenMP показала одинаковую производительность с
MPI. Но с увеличением числа узлов производительность падает. Компилятор GNU показал большую эффективность в этом тесте.
Табл. 4.
Результаты тестов для MG
Класс A
Класс B
Класс C
Тип
Компилятор
R/n
σn
R/n
σn
R/n
σn
MPI
ifort -O3
302
0,1
323
0,1
303
0,1
MPI
gfort -O3
341
0,1
368
0,1
328
0,3
MPI
LLVM -O3
339
0,1
367
0,1
328
0,2
OpenMP
ifort -O3
320
0,2
346
0,1
-
-
16(2)
MPI
ifort -O3
239
0,4
262
0,3
265
0,3
32(4)
MPI
ifort -O3
104
21
126
9
150
2
n
8(1)
В тесте «CG» решается СЛАУ с разряженной произвольной матрицей методом сопряженных градиентов. Коммутации организованы с
помощью неблокирующих двухточечных взаимодействий. Из табл. 5
видно, что в пределах одного узла технология OpenMP показывает
производительность выше, чем MPI. С увеличением числа узлов производительность R/n заметно падает.
Табл. 5.
Результаты для теста CG
Класс A
Класс B
Класс C
Тип
Компилятор
R/n
σn
R/n
σn
R/n
σn
MPI
ifort -O3
264
2,9
118
0,14
119
0,09
MPI
gfort -O3
273
4,84
118
0,43
119
0,18
MPI
LLVM -O3
252
4,74
117
0,13
118
0,21
OpenMP
ifort -O3
354
3,77
127
0,5
126
0,14
16(2)
MPI
ifort -O3
172
2,64
90
1,51
89
1,12
32(4)
MPI
ifort -O3
97
0,83
89
1,2
55
1,66
n
8(1)
В тесте «FT» решается 3-D задача с использованием дискретного
преобразования Фурье. Взаимодействие между процессами осуществ6
ляется с помощью следующих коллективных операций: MPI_Reduce,
MPI_Barrier, MPI_Bcast, MPI_Alltoall. Данные, приведенные в табл. 6,
показывают, что в пределах одного узла технология OpenMP показывает производительность в два раза выше, чем MPI. С увеличением
числа узлов производительность R/n резко падает.
Табл. 6.
Результаты для теста FT
Класс A
Класс B
Класс C
Тип
Компилятор
R/n
σn
R/n
σn
R/n
σn
MPI
ifort -O3
311
0,1
332
0,1
350
0,2
MPI
gfort -O3
294
0,3
357
0,1
371
0,3
MPI
LLVM -O3
294
0,3
355
0,1
369
0,2
OpenMP
ifort -O3
650
0,4
690
0,1
-
-
16(2)
MPI
ifort -O3
110
3
116
1
128
0,8
32(4)
MPI
ifort -O3
49
7
72
1
90
0,7
n
8(1)
В тесте «IS» осуществляется параллельная сортировка большого
массива целых чисел, см. табл. 7.
Табл. 7.
Результаты тестов для IS
Класс A
Класс B
Класс C
Тип
Компилятор
R/n
σn
R/n
σn
R/n
σn
MPI
icc -O3
20,4
0,4
19,1
0,6
18,8
0,7
MPI
gcc -O3
20,6
0,2
19,2
0,7
18,8
0,8
MPI
LLVM -O3
20,5
0,3
19,2
0,7
18,8
0,8
OpenMP
icc -O3
35,6
0,1
33,8
0,1
33,9
0,1
16(2)
MPI
icc -O3
3,35
12
4,86
3
5,18
1
32(4)
MPI
icc -O3
0,44
29
1,47
17
2,95
4
N
8(1)
Передача сообщений между процессами осуществляется с помощью операций MPI_Alltoall и MPI_Allreduce. Результаты экспериментов показывают, что в пределах одного узла технология OpenMP показывает производительность в полтора раза выше, чем MPI. С увеличением числа узлов производительность R/n неприемлемо быстро падает.
Это связано с очень большой загрузкой коммуникационной сети коллективными операциями передачи сообщений большой длины. Реше7
ние таких задач на нескольких узлах приведет к замедлению по сравнению с вычислениями только на одном узле. Поэтому рекомендуемый
предел распараллеливания таких задач равен количеству ядер на узле.
Для рассматриваемого кластера – 8 процессов.
Основные результаты проведенных экспериментов:
1. Для достигнутого к настоящему времени уровня производительности процессоров, эффективности кэш-памяти и скорости обменов с
оперативной памятью коммуникационная сеть Gigabit Ethernet должна
быть признана устаревшей для использования в вычислительных кластерах. Только в ограниченном числе методов она может быть использована: в имитационном моделировании, при использовании метода
Монте-Карло и других с незначительным объемом пересылок. В других задачах нужно избегать коллективных операций, программировать
пересылки данных равномернее, отдавать предпочтение асинхронным
двухточечным операциям.
2. В пределах одного узла технология OpenMP показывает, как
правило, производительность выше, чем MPI.
3. Компиляторы Intel icc и ifort демонстрируют иногда очень
большой отрыв от других, и в целом являются более эффективными.
Компиляторы GNU иногда превосходят (незначительно) другие компиляторы. Учитывая, что они являются свободно распространяемыми
в соответствии с лицензией GPL, можно рекомендовать их в качестве
основных для целей образования и, во многих случаях, для научных
исследований. Компилятор LLVM показал эффективность приблизительно на уровне компилятора GNU.
Библиографические ссылки
1. Пересветов В.В., Сапронов А.Ю., Тарасов А.Г. Вычислительный кластер бездисковых рабочих станций: Препринт Вычислительный центр ДВО
РАН. Хабаровск:, 2005. № 83
2. Щерба С.И., Пересветов В.В. Сравнительный анализ эффективности
программного обеспечения для вычислительных кластеров / Межрегиональная научно-практическая конференция «Информационные и коммуникационные технологии в образовании и научной деятельности» (г. Хабаровск, 2123 мая 2008). Материалы конференции. - Хабаровск: Изд-во Тихоокеанского
гос. Ун-та, 2008. с.363-369.
3. A Portable Implementation of the High-Performance Linpack. HPL 1.0a.
http://www.netlib.org/benchmark/hpl/
4. Intel MPI Benchmarks 3.1. Users Guide and Methodology Description.
5. D. Bailey, E. Barszcz, J. Barton and other. The NAS Parallel Benchmarks.
RNR Technical Report RNR 94-007, March, 1994.
8
Скачать