Документ подготовлен 5 июля 2004 г.

Здесь собраны данные по производительности 32-процессорного кластера Leo на процессорах Xeon, полученные в апреле-мае 2004 года после изменения конфигурации кластера. Результаты предыдущих тестов можно найти здесь.


Содержание


Конфигурация кластера Leo

Характеристика Кластер Leo
Процессор Intel Xeon (система команд SSE2)
Тактовая частота процессора 2660 МГц
Кэш-память второго уровня (на каждом процессоре) 512 Кбайт
Процессоров на узле 2
Объем памяти на узле 2 Гбайт (DDR-266)
Чипсет Intel E7501
Узлов в кластере 16
Частота системной шины (FSB) 533 МГц
Адаптеры SCI D335 (на шине PCI-64/66 МГц)
Топология сети SCI 2D-тор 4x4
Коммуникационное ПО SSP 3.1

Использованное программное обеспечение

Была использована общедоступная параллельная реализация теста LINPACK - HPL 1.0a, которая реализована на языке Си, причем обмены между процессорами выполняются через процедуры интерфейса MPI, а вычисления на каждом процессоре - с помощью вызовов процедур BLAS. В наших экспериментах на кластере Leo в качестве BLAS использовалась библиотека ATLAS 3.6.0, откомпилированная нами с использованием компилятора Intel compiler 8.0, а в качестве реализации MPI для сети SCI - библиотека ScaMPI компании Scali.


Производительность процессора

На тесте LINPACK с максимально возможным размером матрицы (15000x15000) была получена производительность одного процессора Xeon/2.6 ГГц, равная 3.76 Gflop/s (72.3% пиковой производительности).


Производительность кластера

На кластере Leo была получена максимальная производительность равная 104.3 Gflop/s (62.7% пиковой производительности) при решении задачи размером 60000x60000 на всех 32 процессорах. Это примерно в 27.7 раз лучше производительности на одном процессоре Xeon/2.6 ГГц (на задаче размером 15000x15000).

Все результаты тестирования кластера Leo на тесте Linpack приведены на следующем графике. Здесь самый верхний график ("пик") показывает пиковую производительность кластера, второй ("идеал") - производительность при идеальной масштабируемости, последующие графики - реальную производительность кластера при соответствующих размерах задачи.


Как изменяется производительность при увеличении размера задачи?


Чему равна эффективность использования кластера?

Графики эффективности приводятся для задачи размером 15000x15000 (это максимальный размер, который попадает в память 1 узла) и для размеров задач, на которых получены максимальные значения.

Из этого графика видно, что при фиксированном размере задачи эффективность падает c увеличением числа процессоров от 1 до 32. Если же одновременно увеличивать и размер задачи, то эффективность использования кластера удается существенно увеличить и удерживать на уровне примерно 90%.


Выигрыш от апгрейда кластера Leo

Весной 2004 года был произведен апгрейд кластера Leo, включающий увеличение количества узлов с 12 до 16 (соответственно, увеличение количества процессоров с 24 до 32) и одновременное наращивание объема оперативной памяти на всех узлах с 1 Гбайта до 2 Гбайт. Интересно было оценить выигрыш от изменения конфигурации. Результаты тестирования на тесте Linpack приведены в следующей таблице.

1 Гбайт 2 Гбайт
24 процессора 76.4 Gflop/s 80.9 Gflop/s
32 процессора 91.1 Gflop/s 104.3 Gflop/s

Таким образом, выигрыш в производительности 24-процессорной конфигурации от увеличения объема оперативной памяти относительно невелик - с 76.4 до 80.9 Gflop/s, то есть примерно на 6%, выигрыш в производительности 32-процессорной конфигурации от увеличения объема оперативной памяти несколько больше - с 91.1 до 104.3 Gflop/s, то есть примерно на 14.5%.

Выигрыш в производительности от увеличения количества узлов с 12 до 16 (то есть на 33%) заметно больше - с 76.4 до 91.1 Gflop/s, то есть примерно на 19%.

В целом апгрейд кластера Leo позволил получить выигрыш в производительности на тесте Linpack с 76.4 до 104.3 Gflop/s, то есть примерно на 36.5%.