Pull to refresh

Тестирование производительности кластера под Windows. Linpack, Lizard

Reading time 4 min
Views 11K
Здравствуйте,

Сегодняшний пост посвящён деликатной проблеме тестирования производительности кластера. Многие скажут (и будут правы), что, в общем-то, результаты подобных тестов предназначены исключительно для пресс-релизов и отчётности перед TOP500 и практической пользы не имеют. Однако средства тестирования можно применять и для определения узких мест системы. Так, в первом посте речь пойдёт о Linpack & Lizard.

Оглавление:

1) Общие сведения о Linpack
2) Основные параметры Linpack
3) Lizard. Реализация Linpack для Windows-систем
4) Lizard. Оптимизация Linpack для Windows-систем
5) Native-средства для тестирования кластера


Прим.: в некоторых моментах речь идёт о производительности компьютеров, в некоторых — сети. Из этих двух показателей и складывается общая производительность кластера

1) Общие сведения о Linpack



Эталоном библиотеки для тестирования производительности суперкомпьютеров (не только кластеров) ещё с 80-х годов считается библиотека Linpack, сейчас расширенная до более функциональной LAPACK (Linear Algebra PACKage). Имеет интерфейсы для Fortran и C.

Аналоги LAPACK:
* Intel MKL
* AMD ACML
* Sun Performance Library
* NAG’s LAPACK
* HP’s MLIB

Каждый производитель, в лучших традициях IT, под свою архитектуру разрабатывает и затачивает собственную библиотеку. Естественно, что на Intel
библиотека MKL даст более высокую производительность, нежели LAPACK.

Основная задача Linpack и его аналогов/модификаций состоит в решении системы линейных арифметических уравнений вида Ax=f методом LU-факторизации c выбором ведущего элемента столбца, где A — заполненная матрица размерности N. Исходная матрица разделяется на логические блоки размерностью NB × NB. Эти блоки в свою очередь разбиваются сеткой P × Q на более мелкие. Каждый из таких блоков «достанется» отдельному процессору системы.

Подробнее о математической базе теста можно <a href=«www.intuit.ru/department/supercomputing/tbucs/4/2.html>почитать на сайте Intuit.

Производительность в тесте Linpack измеряется в количестве производимых операций с плавающей запятой в секунду. Единицей измерения является 1 флопс (одна такая операция в секунду).

2) Основные параметры Linpack



N, ранг матрицы. Чем больше ранг, тем больше арифметических операций с плавающей запятой будет исполнено. N ограничен объёмом памяти, который система может выделить на процесс HPL. LIZARD может сам подбирать оптимальные, как он считает, параметры. Так, 26,000 подходит для четырёх узлов с 2 Гб ОЗУ на каждом. Но лучше-таки подбирать значение эмпирически, начиная с самого мелкого. Падение производительности обнаружится тогда, когда система начнёт писать в файл подкачки, и, соответственно, надо будет немного уменьшить значение ранга, чтобы получить оптимальное. N должно быть равно или больше P*Q.
P и Q – дополнительные коэффициенты, произведение которых необходимо подогнать к значению N. P*Q=КоличествоПроцессов. Можно приравнять P к количеству процессоров, а Q к количеству узлов – будет достаточно оптимально. Перед настройкой нужно учитывать Hyperthreading (а лучше вообще отключить).
NB– коэффициент, отражающий количество частей, на которые будет разбиваться задача. Показывает, какого объёма кусок данных будет получен каждым узлом. Говоря практически, чем меньше значение данного коэффициента, тем оптимальнее загрузка процессора. Но можно настраивать так, как считается нужным, и смотреть производительность, которая получится в итоге (исходя из нужд архитектуры). При делении N на NB остаток должен быть равен нулю.

Для удобства можно воспользоваться Excel Linpack, при заполнении соответствующих ячеек самостоятельно высчитывающим значения коэффициентов.

HPL сохраняет результаты в файл hpl в своей рабочей папке с подробными комментариями. К сожалению, мне так и не удалось привести такой файл от нашей конфигурации в удобоваримый вид.

3) Lizard. Реализация Linpack для Windows-систем



Логично, что Microsoft, внезапно влетевший в TOP500 со своей новой системой, не мог остаться в стороне. Для ленивых администраторов Windows-систем специально была разработана оболочка для тестирования производительности кластера (Lizard, Linpack Wizard), имеющая в своей основе каноническую библиотеку, обёрнутую в удобный визуальный мастер (поставляется с HPC Tool Pack 2008). Позволяет данный мастер как экспресс-тест (со стандартными параметрами, автоматически выбираемыми мастером), так и advanced для специфических настроек коэффициентов. Сопровождается всё комментариями.

4) Lizard. Оптимизация Linpack для Windows-систем



Microsoft для оптимизации рекомендует отключить все сервисы, от которых напрямую не зависит работа системы. Скрипт:
sc stop wuauserv
sc stop WinRM
sc stop WinHttpAutoProxySvc
sc stop WAS
sc stop W32Time
sc stop TrkWks
sc stop SstpSvc
sc stop Spooler
sc stop ShellHWDetection
sc stop RemoteRegistry
sc stop RasMan
sc stop NlaSvc
sc stop NetTcpActivator
sc stop NetTcpPortSharing
sc stop netprofm
sc stop NetPipeActivator
sc stop MSDTC
sc stop KtmRm
sc stop KeyIso
rem sc stop gpsvc
sc stop bfe
sc stop CryptSvc
sc stop BITS
sc stop AudioSrv
sc stop SharedAccess
sc stop SENS
sc stop EventSystem
sc stop PolicyAgent
sc stop AeLookupSvc
sc stop WerSvc
sc stop hkmsvc
sc stop UmRdpService
sc stop MpsSvc
sc config wuauserv start= disabled
sc config WinRM start= disabled
sc config WinHttpAutoProxySvc start= disabled
sc config WAS start= disabled
sc config W32Time start= disabled
sc config TrkWks start= disabled
sc config SstpSvc start= disabled
sc config Spooler start= disabled
sc config ShellHWDetection start= disabled
sc config RemoteRegistry start= disabled
sc config RasMan start= disabled
sc config NlaSvc start= disabled
sc config NetTcpActivator start= disabled
sc config NetTcpPortSharing start= disabled
sc config netprofm start= disabled
sc config NetPipeActivator start= disabled
sc config MSDTC start= disabled
sc config KtmRm start= disabled
sc config KeyIso start= disabled
rem sc config gpsvc start= disabled
sc config bfe start= disabled
sc config CryptSvc start= disabled
sc config BITS start= disabled
sc config AudioSrv start= disabled
sc config SharedAccess start= disabled
sc config SENS start= disabled
sc config EventSystem start= disabled
sc config PolicyAgent start= disabled
sc config AeLookupSvc start= disabled
sc config WerSvc start= disabled
sc config hkmsvc start= disabled
sc config UmRdpService start= disabled
sc config MpsSvc start= disabled


5) Native-средства для тестирования кластера



Кроме Linpack и Lizard, в Windows HPC Server 2008 (а именно, в HPC Pack 2008) есть стандартные средства тестирования производительности кластера, такие, как:
MPI Ping-Pong Lightweight Throughput (переброс пакетами между узлами)
MPI Ping-Pong Quick Check (проверка латентности сети, пропускной способности etc)

Разумеется, на этом список тестов не заканчивается, их более 10, покрывающих всю функциональность кластера.

Спасибо за внимание.
Tags:
Hubs:
+4
Comments 1
Comments Comments 1

Articles