Зависимость производительности передачи сообщений MPI от

advertisement
УДК 681.3.06+519.68
С. И. Мальковский, В. В. Пересветов, 2010
ЗАВИСИМОСТЬ ПРОИЗВОДИТЕЛЬНОСТИ ПЕРЕДАЧИ
СООБЩЕНИЙ MPI ОТ ПОРЯДКА РАСПРЕДЕЛЕНИЯ
ПРОЦЕССОВ В ЧЕТЫРЕХПРОЦЕССОРНОМ УЗЛЕ
ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА
Мальковский С.И. – м.н.с. (ВЦ ДВО РАН);
Пересветов В.В. – с.н.с. (ВЦ ДВО РАН), к.ф.-м.н.
В докладе приведены результаты экспериментального исследования
влияния порядка распределения взаимодействующих процессов на
производительность передачи сообщений с использованием библиотеки MPI в четырёхпроцессорном узле Sun Blade X6440 Server, построенном на базе шестиядерных процессоров AMD Opteron Istanbul
8431, гетерогенного вычислительного кластера ВЦ ДВО РАН. Проведено сравнение скорости передачи двухточечных и коллективных
сообщений MPI. В исследовании использовались тесты IMB и NPB,
библиотеки Intel MPI и OpenMPI.
Для эффективной эксплуатации высокопроизводительных вычислительных систем необходимо знание особенностей используемого
оборудования, системного и прикладного программного обеспечения.
Такая информация становится наиболее ценной при работе с гетерогенными вычислительными кластерами.
В предыдущих работах уже были проведены оценки производительности сегментов гетерогенного вычислительного кластера ВЦ
ДВО РАН в различных классах задач. В работе [1] приведены результаты испытаний для узлов HP ProLiant DL360 G5, в которых установлено по 2 двухъядерных процессора Intel Xeon 5060 (3,2 GHz) и 4 GB
памяти. В работе [2] обсуждались результаты таких испытаний для
двухпроцессорных узлов Sun Blade X6250 Server, построенных на четырёхъядерных процессорах Intel Xeon E5450 (3 GHz) с памятью 16
GB на каждом.
Настоящая работа посвящена новым вычислительным узлам Sun
Blade X6440 Server, оснащенным четырьмя шестиядерными процессорами AMD Opteron Istanbul 8431 (2,4 GHz) и 96 GB оперативной памя1
ти. Каждый из них может использоваться как отдельная SMP система с
24 вычислительными ядрами.
Основное внимание в этой работе уделено вопросу зависимости
производительности системы от привязки вычислительных процессов
к различным процессорным ядрам. Такой интерес был вызван тем, что
при проведении экспериментов с использованием тестов NPB нами
наблюдался значительный разброс уровня производительности выполняемых приложений. В качестве примера на рис. 1. показаны значения
производительности для 100 (k – номер запуска теста) испытаний в тесте NPB [3], LU, класс B, 8 процессов.
Рис. 1. Разброс значений производительности теста LU.
На этом рисунке можно видеть, что все результаты группируются
вокруг четырех уровней производительности. Между отдельными
уровнями наблюдается различие до 45%. В дальнейшем для теста LU
были проведены аналогичные эксперименты на 2, 4 и 16 ядрах. Они
показали, что число уровней производительности, вокруг которых
группируются результаты, составило: 2 – для двух процессов, 3 – для
четырех. Для 16 процессов заметной группировки результатов не
наблюдалось, однако разброс производительности для 30 тестов все
еще оставался большим. Для тестов BT, SP, CG, FT, MG, IS количество
уровней подчиняется таким же закономерностям. В тесте EP наблюдается небольшой разброс около одного уровня вне зависимости от числа
параллельных процессов. Обнаруженные закономерности было необходимо изучить, объяснить и выработать рекомендации для эффективного использования рассматриваемых вычислительных узлов.
В этом исследовании использовалось программное обеспечение Intel Cluster Toolkit, библиотеки Intel MPI 3.1 и OpenMPI 1.4.1, компиляторы Intel 10.1 и GNU 4.1.2. Производительность оценивалась средствами NPB [3] и IMB [4].
2
Тест IMB. Как было изложено выше, большой разброс в производительности наблюдался для всех тестов из комплекта NPB, кроме теста EP. Данный тест отличается от всех остальных тем, что в нем между отдельными вычислительными процессами передача данных малого
объема осуществляется лишь в начале и конце его работы. Естественно
было предположить, что разброс в производительности приложений
связан с отличием в скорости передачи данных по коммуникационной
среде при различном способе распределения процессов по вычислительным ядрам. Для исследования обнаруженных закономерностей
был использован тест IMB.
Тест IMB содержит элементарные операции передачи сообщений в
стандарте MPI-1. Полученные экспериментальные значения в относительных единицах времени позволяют оценить производительность
для различных способов передачи сообщений, что удобно в целях выработки последующих рекомендаций для программирования в стандарте MPI. Тест был собран с использованием библиотеки OpenMPI,
которая позволяет гибко настраивать привязку отдельных процессов к
процессорным ядрам AMD Opteron.
Дадим пояснения к операциям передачи сообщений IMB. В тесте
PingPong активны только два процесса, которые выполняют операции
MPI_Send, MPI_Recv, а остальные процессы ждут. Он зависит от латентности и пропускной способности коммуникационной среды при
передаче между двумя процессами одиночного сообщения. В тесте
Sendrecv выполняются операции MPI_Sendrecv в периодических коммуникационных цепочках. Каждый процесс отправляет сообщение
правому соседу по цепочке, а получает — от левого. В тесте Exchange
выполняются операции MPI_Isend, MPI_Waitall, MPI_Recv, которые
часто используются в сеточных алгоритмах для осуществления обменов на границах. В этом тесте все процессы объединены в цепочку и
каждый из них отправляет и получает сообщения от своего правого и
левого соседей. В тестах Reduce и Allreduce проверяется производительность коллективных операций: MPI_Allreduce и MPI_Reduce с выполнением операции суммирования (задан параметр MPI_SUM). Тесты
Gather и Allgather служат для оценки производительности функций
сбора блоков данных от всех процессов: MPI_Gather и MPI_Allgather.
В первом из них производится сборка блоков данных, посылаемых
всеми процессами, в один массив процесса-получателя. Во втором –
получателями собираемых данных являются все процессы группы. В
тестах Alltoall, Bcast осуществляется проверка производительности
коллективной рассылки данных функциями MPI_Alltoall и MPI_Bcast.
Эффективность выполнения всех этих операций напрямую зависит
от скорости и латентности коммуникационной среды, которая в нашем
3
случае представляет собой шину памяти, связывающую процессор и
память, и шину HyperTransport, связывающую процессоры между собой. Тесты NPB показали, что производительность этой среды существенно зависит от порядка привязки процессов к вычислительным ядрам процессоров. Чтобы оценить характер этой зависимости было проведено две группы тестов. В первой группе 4 процесса запускались в
пределах одного физического процессора (core). Во второй группе по 1
процессу запускалось на каждом физическом процессоре (socket). В
обоих случаях число взаимодействующих процессов было равно четырем. Результаты этого исследования представлены в таблице 1.
Табл. 1.
Результаты IMB при различном порядке распределения процессов.
Команда передачи
сообщений
8 Байт
1 МБайт
core
socket
core
socket
PingPong
1,15
1,52
862
826
Sendrecv
1,50
2,05
1 950
1 525
Exchange
3,11
4,34
4 132
2 885
Reduce
1,57
2,08
2 650
2 327
Allreduce
2,81
3,82
4 440
2 846
Gather
1,48
2,02
2 154
1 785
Allgather
2,73
3,85
8 515
4 741
Alltoall
5,35
7,45
8 900
5 293
Bcast
1,95
2,89
2 050
2 133
В данной таблице приведены результаты для малого и большого
сообщений: 8 Байт и 1 МБайт. Из них видно, что для небольших сообщений наибольшая скорость обмена данными достигается при привязке core, а для больших — socket. На наш взгляд это происходит потому, что при малом размере сообщения и расположении процессов в
пределах одного физического процессора данные передаются в пределах кэш памяти, а тогда, когда эти сообщения перестают помещаться в
кэш — обмен начинает происходить через оперативную память, обращение к которой происходит по общей для четырех процессоров шине.
При расположении процессов на разных физических процессорах обмен сначала осуществляется через шину HyperTransport, а затем через
память, но при этом для каждого процесса задействуется своя шина
данных и они не мешают друг другу. Данный эффект иллюстрируется
4
на рис. 2-5, где показана зависимость величины F – изменение производительности системы передачи сообщений в процентах при переходе
с core-распределения процессов к распределению процессов socket в
зависимости от объема передаваемого сообщения.
Рис. 2. Изменение производительности среды MPI, тест PingPong.
Рис. 3. Изменение производительности среды MPI, тесты Exchange и Sendrecv.
5
Рис. 4. Изменение производительности среды MPI, тесты Reduce и Allreduce.
Рис. 5. Изменение производительности среды MPI, тесты Alltoall и Bcast.
На рис. 2-3 приведены графики для двухточечных операций: PingPong, Exchange и Sendrecv. Можно заметить, что socket привязка процессов начинает выигрывать у core привязки лишь начиная с сообщений больших размеров. Наиболее выраженная зависимость производительности системы передачи данных от способа привязки вычисли6
тельных процессов к различным процессорным ядрам наблюдается в
коллективных операциях MPI, см. рис. 4-5. Особенно это видно на
рис. 5, где показаны результаты наиболее интенсивно использующего
операции передачи сообщений теста Alltoall. Эти закономерности связаны с использованием кэш-памяти. Для справки, у процессора AMD
Opteron Istanbul 8431 имеется кэш-память следующих типов: 6×128КB
L1, 6×512КB L2 и общая кэш-память 6МB L3. Графики для тестов
Gather и Allgather аналогичны Reduce и Allreduce и здесь не показаны.
Таким образом, в случаях, когда между вычислительными процессами передаются сообщения большого объема, следует распределять
процессы по разным физическим процессорам. Результаты рис. 1 можно объяснить вариантами распределения процессов по ядрам.
Еще одной задачей нашего исследования являлось определение
общей производительности коммуникационной среды при запуске задач на всех процессорах вычислительного узла. Для этого выполнялся
тест IMB на 4 и 24 процессорах. Результаты приведены в таблице 2.
Табл. 2.
Результаты тестов IMB при различном числе процессов.
8 Байт
1 МБайт
Команда передачи
сообщений
n=4
n=24
n=4
n=24
PingPong
1,01
-
392
-
Sendrecv
1,18
1,23
955
4 103
Exchange
2,17
2,32
2 293
8 174
Reduce
2,30
2,48
1 380
3 522
Allreduce
2,70
7,17
2 134
9 714
Gather
2,45
4,61
2 867
20 156
Allgather
2,69
7,24
5 016
98 034
Alltoall
4,36
22,1
5 631
106 170
Bcast
1,77
2,31
1 027
2 338
Из этой таблицы видно, что при увеличении объема передаваемых
данных и увеличении одновременно взаимодействующих процессов с
4 до 24 производительность коммуникационной среды может падать на
порядок и более. Однако даже в этом случае она остается достаточно
высокой. В этом можно убедиться, если сравнить эти результаты с
аналогичными [1,2]: в случае 4 процессов результаты времени передачи сообщений примерно соответствуют производительности процессо7
ров, но для 16 процессов [1] и 40 процессов [2] это время намного
больше (на порядок и более), так как в этих случаях использовалась
коммуникационная сеть Gigabit Ethernet.
Основные выводы:
1. Узлы Sun Blade X6440 Server, оснащенные четырьмя шестиядерными процессорами AMD Opteron Istanbul 8431, показали высокие
результаты производительности коммуникационной среды MPI и могут быть рекомендованы для запуска MPI программ в пределах 24 процессов на каждом отдельном узле.
2. В случае, когда процессы совместно работают с большими объемами данных, не помещающимися в кэш-память, наиболее верным
будет разнесение их на разные физические процессоры. В случае передачи сообщений небольшого объема максимальная производительность будет достигаться при их запуске на одном физическом процессоре.
3. В коллективных операциях MPI имеется сильная зависимость
производительности системы передачи данных от способа привязки
вычислительных процессов к различным процессорным ядрам. В двухточечных операциях MPI эта зависимость меньше.
Библиографические ссылки
1. Щерба С.И., Пересветов В.В. Сравнительный анализ эффективности программного обеспечения для вычислительных кластеров /
Межрегиональная научно-практическая конференция «Информационные и коммуникационные технологии в образовании и научной деятельности» (г. Хабаровск, 21-23 мая 2008). Материалы конференции. Хабаровск: Изд-во Тихоокеанского гос. ун-та, 2008. с.363-369.
2. Мальковский С.И., Пересветов В.В. Оценка производительности
вычислительного кластера на четырехъядерных процессорах / Информационные и коммуникационные технологии в образовании и научной
деятельности: материалы межрегиональной научно-практической конференции, Хабаровск, 21-23 сентября 2009 г. -Хабаровск: Изд-во Тихоокеанского гос. ун-та, 2009. с. 261-268.
3. D. Bailey, E. Barszcz, J. Barton and other. The NAS Parallel
Benchmarks. RNR Technical Report RNR 94-007, March, 1994.
4. Intel MPI Benchmarks 3.1. Users Guide and Methodology Description.
8
Download