13 Август 2004
МНОГОПРОЦЕССОРНАЯ КЛАСТЕРНАЯ СИСТЕМА

1. Краткая информация
Наш кластер состоит из восьми машин сервера и семи рабочих станций, собранных в 19" стойку и соединенных между собой сетью Gigabit Ethernet.

Сервер:

| CPU |
2 x AMD Athlon XP 1800+ |
| MB |
Tyan Tiger MP S2460 |
| RAM |
2048 Mb (4 x DIMM 512 Mb Kingston DDR ECC Registered) |
| HDD |
96 Gb (6 x 18.4Gb Quantum Atlas II 10K Ultra160 SCS (RAID 5)) |
| RAID |
Adaptec RAID-3200S (32Mb PCI-64 ) |
| Net |
Intel Ether Express PRO 100 (для внешнего соединения) |
| |
Intel Gigabit Server Adaptor 1000-T (PCI-64) |
| Video |
ASUS AGP V7100 MX400 64Mb |
| Case |
INWIN IW-R3000 400W Hot-swap 6 HDD ( 5U Rack Mount) |
| CDROM |
CTX 52x |
Рабочии станции:

| CPU |
2 x AMD Athlon XP 1800+ |
| MB |
Tyan Tiger MP S2460 |
| RAM |
1024 Mb (2 x DIMM 512 Mb Kingston DDR ECC Registered) |
| HDD |
10 Gb Maxtor 541DX |
| Net |
Intel Gigabit Server Adaptor 1000-T (PCI-64) |
| Video |
Matrox 4 Mb PCI |
| Case |
UNC-210S ATX 300W (2U Rack Mount) |
Коммутатор Gigabit Ethernet:
Compex GSC1008Plus 8 port 10/100/1000Mb Full Duplex ( 1U Rack Mount)
Источник бесперебойного питания:
Smart-UPS 3000 RM (3U Rack Mount )
Переключатель монитор/клавиатура/мышь:
KVM Switch 8 port (2U Rack Mount)
Программное обеспечение:
RedHat Linux 7.1 ( kernel 2.4.9-21smp)
LAM MPI ( version 6.5.6)
Прозводительность:
Суперкомпьютерный тест, которым измеряют производительность кластеров, HPL (High-Performance LINPAK clusters.top500.org ) :
GFLOPS 26.74
2. Используемое оборудование
Выбор платформы
На настоящий момент на рынке PC имеется три варианта для сборки высокопроизводительных SMP систем:
1. материнские платы на чипсетах ServerWorks для процессоров Intel PIII различных модификаций
2. материнские платы на чипсете AMD 760MP для процессоров AMD Athlon MP
3. материнские платы на чипсете Intel 860 для процессоров Intel Xeon
Первый вариант нами не рассматривался так как ядро P-3 медленне P-4. Мы протестировали два последних варианта. Тесты выполнялись под RedHat Linux 7.1, для процессоров AMD использовалась плата Tyan Tiger MP S2460, а для Процессоров Intel Xeon плата SuperMicro P4DC6+ первый тест измеряет производительность операций с целыми числами. Это просто компиляция ядра Linux. Второй проверят скорость операций с плавающей точкой. Для него мы использовали программу Povray (рендер изображения) в SMP варианте (MPI Povray ). Вот результаты:
|
CPU |
Компиляция ядра (сек) |
Рендер тестовой картинки (сек) |
| AMD Athlon 1333 |
250 |
1087 |
| AMD Athlon XP 1700+ (1466Mz) |
218 |
997 |
| Intel Xeon 1400 |
301 |
1990 |
Сразу видно явное приемущество процессоров AMD, причем цена комплекта (два прцессора + материнская плата + память + корпус ) для AMD была в три раза меньше, чем аналогичная для Intel. Единственная проблема с AMD это тепловыделение процессоров, на куллерах и смазке экономить нельзя. Лучше поставить медные куллера с 7200 оборотами.
Сетевое оборудование
Для высокоскоростных коммуникаций можно использовать различное оборудование начиная от Eternet 100 и 1000 до Myrinet и SCI . Все упирается только в цену. Так, самый дешевый адаптер Myrinet стоит 1200$ , а 8-ми портовый коммутатор 4000$. Коплект SCI WulfKit на каждую машину 1700$. И все это без таможни и доставки. Мы решили для коммутации использовать Gigabit Ethernet, так как это оборудование сейчас сильно подешевело. Сетевые платы выбрали Intel Gigabit Server Adaptor 1000-T ( PCI-64 ), а коммутатор Compex GSC1008Plus 8 port 10/100/1000Mb. Первоначально хотели использовать Intel Switch NetStructure(tm) 8 port, но он имеет только 6 портов для витой пары и 2 для оптики, а самый дешевый оптический адаптер переваливает за 500$.
Стойка 19"
Для сборки оборудования решили использовать 19" стойку, так как rack mount оборудование гораздо компактнее и надежнее, хотя и значительно дороже. Единственная проблема, с которой столкнулись это 64 bit rise card для 2U корпусов. В комплекте с корпусами пришли обычные 32 bit rise card. Купили rise card других производителей, но они не подошли. Пришлось ждать родных.
RAID
На сервер установили RAID контроллер Adaptec RAID-3200S (32Mb PCI-64 ) и сконфигурировали из 6-ти HDD RAID-5 96 Gb. Работает отлично. Пробовали несколько раз менять винты на ходу. На производительность системы восстановление нового HDD практически не влияет.
UPS
Сначала были поставлены два Smart-UPS 1000 RM. Во время настройки все шло нормально, но при запуски тестов, которые на 100% загружают процессоры, мощность, потребляемая кластером, возрастала в 1,4 раза, и источники работали с перегрузкой. Пришлось установить один Smart-UPS 3000 RM.
3.Программное обеспечение
Операционная система
Первоначально планировалось собрать кластер на двух операционных системах, разбить все диски пополам на одну часть поставить Windows 2000, на другую Linux. Но потом отказались от Windows (хотя и запустили её в кластере) потому, что под неё очень мало бесплатного кластерного программного обеспечения. Остановили свой выбор на RedHat 7.1. В RedHat 7.2 нет еще поддержки Adaptec RAID-3200S.
Установка
Имеется множество способов конфигурации кластера
1. Настройка руками. Самый надежный и понятный. Сначала устанавливается linux на сервер и на одну из машин. Все конфигурируется на двух машинах. Как настроить можно прочитать здесь . Потом HDD c настроенной машины копируется программой Norton Ghost на HDD остальных машин.
2. Настройка с помощью специального программного обеспечения. Сейчас появилось довольно много программ для настройки кластеров:
SCE 1.2 (Scalable Cluster Environment) Удобно использовать для установки бездисковых станций. В комплект входят программа конфигурации кластера, выполненная в виде wizard, очень хорошая система мониторинга и управления поддерживающая управление через www и система batch scheduling.
OSCAR 1.2 (Open Source Cluster Application Resources) В комплект входит тоже все необходимое.
SCore 4.2 (Cluster System Software ) Очень интересный пакет для настройки и управления кластером, в котором для коммуникаций не используется протокол TCP/IP , что значительно уменьшает задержки и увеличивает полосу пропускания системы. К сожалению нам не удалось его установить, так как он не поддерживает сетевые платы Intel Gigabit 1000-T.
Хочется упомянуть еще о полезном пакете SystemImager 2.0.1 . Он нужен для быстрого внесения изменений в операционную систему на всех компьютерах кластера.
MPI (Message Passing Interface )
Чаще всего для написания кластерных параллельных программ используют механизм обмена сообщениями. Для Linux наиболее часто используются две версии MPI MPICH и LAM . Проведя тестирование, мы увидели что LAM (в нашей конфигурации) работает немного быстрее, чем MPICH. Далее все тесты проводились с LAM 6.5.6.
4.Тесты
Povray
Первым делом мы запустили рендер в MPI Povray той же самой картинки, которой тестировали наш первый кластер в 1999 году (9 машин по 2 процессора Celleron-300 ). Раньше результат составлял 11 секунд (можно посмотреть здесь ). Сейчас 1 сек . Решили найти картинку посложнее. Нашли на сайте http://www.tabsnet.com, запустили. Получилось 28 секунд - первое место. Но, что то буржуи, наш результат до сих пор не вставили в таблицу.
LINPAK
Этим тестом измеряется производительность суперкомпьютеров (www.top500.org). Существует бесплатная реализация этого теста HPL (High-Performance LINPAK ). Для его компиляции нужна библиотека BLAS (Basic Linear Algebra Subprograms ). Мы выбрали ATLAS (Automatically Tuned Linear Algebra Software ). Это оптимизированный под все платформы вариант BLAS. Была скачана последняя версия 3.3.13. В ней уже есть оптимизация под 3Dnow2 для Athlon XP. Скорость оптимизированного пакета в 1.5 раза выше, чем не оптимизированного . Есть одна проблема с ATLAS, связанная с Athlon, это падение производительности почти в 2 раза при компиляции gcc 3.0 или gcc 2.96 по сравнению с gcc 2.95. Это связано с оптимизацией новых версий компиляторов под Pentium и подробно описано здесь. Кстати, PMI Povray лучше компилировать gcc 3.1 с ключикм -march=athlon. Производительность увеличивается на 10% по сравнению с gcc 2.96. Итак результаты теста. Mаксимальную производительность мы получили при:
| N |
26000 |
| Nb |
240 |
| P |
4 |
| Q |
4 |
| Gflops |
26.74 |
Это на данный момент 109 место в clusters.top500.org. А что бы попасть в 500 самых мощных компьютеров на clusters.top500.org нужно перевалить за 100 Gflops. Очень сильно на производительность этого теста влияет сеть. При использовании 100 Mbit Ethernet производительность не подымалась выше 19 Gflops. Теоретически, на этом кластере, можно достичь 30 Gflops при использовании Myrinet, но это в два раза увеличит стоимость системы. Кстати, один процессор Athlon XP 1800+ дает 2.32 Gflops. Отличный результат для операций с плавающей точкой (сказывается архитектура Alpha). Более подробные результаты теста можно посмотреть здесь .
Тесты MPI
PingPong
Эти системы измеряют пропускную способность и задержку системы, используя различные функции MPI. Самый простой и распространенный тест это pingpong, который использует функции MPI_Recv и MPI_Send. Взять его можно здесь (pingpong.c getus.h). Мы провели тестирование в режиме SMP, в котором для коммуникации между процессами используется общая память, и по сети где используется протокол TCP. Вот результаты: Pingpong_bandwidth.gif Pingpong_latency.gif


Тесты говорят сами за себя. Сеть, даже Gigabit Ethernet, сильно отстает от SMP. Максимум, что дал Gigabit Ethernet, это 55 MB/сек.
PMB (Pallas MPI Benchmarks http://www.pallas.de/pages/pmb.htm)
Этот тест измеряет производительность практически всех функций MPI. Здесь можете посмотреть результаты.
Измерение производительности с ростом числа процессоров
MPI Povray

На графике показана производительность (величина обратная времени счета) от числа процессоров. Видно что алгоритм рендера, используемый в MPI Povray, очень хорошо распараллеливается. Ромбиками отмечены результаты измерений, а голубая прямая теоретическая линейная зависимость
HPL

А тут уже явно видно отставание от линейного роста. Тест HPL очень сильно использует сетевые коммуникации
5.Планы на будущее
Gigabit Ethernet
Gigabit Ethernet на данный момент, это самая дешевая из высокопроизводительных технологий. Сейчас уже появились в продаже 12 портовые коммутаторы для витой медной пары. Без особых затрат можно собирать кластеры с производительностью примерно 40 Gflops. Intel недавно выпустил 16 портовый оптический гигабитный коммутатор. Это еще может поднять производительность до 50-60 Gflops при ощутимом удорожании системы. Что еще можно выжать из Ethernet ? Сейчас активно разрабатывается новая технология VIA (Virtual Interface Architecture). Это интерфейс для высокоскоростных сетей. Virtual Interface, во-первых не использует протокол TCP/IP для коммуникаций, во-вторых, программы написанные с его использованием, обращаются к сетевым устройствам на прямую, минуя операционную систему. Все это должно дать значительный прирост производительности. Сейчас уже появилась бесплатная реализация VI под linux M-VIA . Но проверить мы ее не смогли, так как M-VIA 1.2b2 не поддерживает Intel Gigabit Adapter 1000T. Будем ждать M-VIA 2.0, где обещают полную поддержку этого железа.
Myrinet
Следующий шаг в производстве суперкомпьютеров - это использование скоростных сетевых технологий, таких как Myrinet. При наличии примерно 300000$ можно достичь производительности около 120-150 Gflops и попасть в список top500.org суперкомпьютеров. Так что возникнет желание и потрбность, пишите (vadim@diadema.ru)
По всем вопросам связанным с кластером обращайтесь(vadim@diadema.ru)
|