Тестирование современных многопроцессорных систем в среде LS-DYNA


Введение

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

Эта статья является результатом тестирования, которое проводилось с целью определения выигрыша в производительности двухпроцессорных систем для расчетов в программном комплексе LS-DYNA. Также одной из задач являлось сравнение двухпроцессорных систем с производительностью PC-кластеров с малым числом узлов, (тема вычислительных кластеров будет рассмотрена в следующей статье, здесь будет изложена только минимально необходимая информация).

Коротко о среде тестирования

LS-DYNA — многоцелевой конечно-элементный комплекс разработки Livermore Software Technology Corp. (LSTC) — предназначена для анализа высоконелинейных и быстротекущих процессов в задачах механики твердого и жидкого тела. Разработка данного программного продукта была начата в начале 70х годов. Первая коммерческая версия программы выпущена в 1976 г. Программа была первой в своей области и послужила основой для всех современных пакетов высоконелинейного анализа, оставаясь на лидирующих позициях до сегодняшнего дня. Предназначение LS-DYNA: нелинейная динамика, теплоперенос, теплообмен, термомеханика, разрушение и развитие трещин, контакт, квазистатика, Эйлерово и произвольное Лагранж-Эйлерово поведение (Arbitrary Lagrangian-Eulerian, ALE), акустика, многодисциплинарный связанный анализ (взаимодействие потоков жидкостей и газов с деформируемой конструкцией, например, колебания жидкости в баках, связанные термомеханические задачи и др.). LS-DYNA содержит более 130 уравнений состояния материалов и 25 контактных алгоритмов. Помимо основной явной центрально-разностной схемы в программу включены также неявные методы — разреженных матриц, предопределенных сопряженных градиентов, Ланцоша. Для тепловых задач допускается 4 схемы — явная Эйлера (прямой ход); Кренка-Николсона; Галеркина; чисто неявная схема (обратный ход). Более подробно, (на русском языке) о программе LS-DYNA вы можете узнать по этой ссылке.

В числе приложений: моделирование взрывов, краш-тестов, сейсмика, обработка металлов давлением и др. Исследование поведения материалов (прокат листовой и объемный, ковка, глубокая листовая штамповка-вытяжка, экструдирование, и пр.).

Программный код полностью распараллелен и векторизован (первые версии LS-DYNA работали на компьютерах CDC-7600 и CRAY-1). Поддерживается декомпозиция заданий на сетевых кластерах (в т.ч. из персональных компьютеров).

LS-DYNA существует для всех современных аппаратных платформ: IA-32, WindowsNT / Linux; IA-64 HPUX, Windows XP-64, Linux-64; HP-HPUX; SGI-IRIX; Sun-Solaris; IBM-AIX; и др. Версии для разных платформ выходят практически одновременно, что очень удобно для проведения сравнения всего спектра вычислительной техники, производимой сегодня в мире.

Описание тестовой задачи

В качестве теста использовалась одна из типовых «связанных» задач, в данном случае — взаимодействие структуры (снаряд, труба) и жидкости (грунт) : «воздействие взрыва на заглубленный объект» (рис. 1), подробное описание которой можно найти в интернете по адресу: underg_expl.zip, 1.06МБ. Выбор именно связанной задачи обоснован тем, что такие задачи наиболее сильно нагружают вычислительную систему.

По условию задачи заряд тротила массой 1000 кг с начальной скоростью 1000 м/с и углом падения a = 30° проникает в грунт над объектом, расположенном на глубине 8 м от поверхности. Объект представлял собой отрезок стальной трубы с закрытыми торцами длинной 10 м, диаметром 1 м и толщиной стенки 10 мм. На глубине 2 м происходил подрыв заряда.

Целью расчета являлось моделирование процесса проникания снаряда, образования взрывной воронки, а также расчет кинематики и НДС (напряженно-деформированного состояния) объекта.

Построение расчетной области было проведено в препроцессоре ANSYS/LS-DYNA. Размерность модели составила около 280000 элементов.


Рис. 1. Распределение плотности грунта в различные моменты времени после взрыва.
и видео ролик (139 КБ) для иллюстрации

Условия тестирования

Использовались версии программы: LS-DYNA 960SMP и LS-DYNA 960MPP (кластерная версия программы).

Тест для одно-двухпроцессорных машин проводился под операционной системой Windows 2000 Professional, для кластера — под Linux RedHat 7.3. Выбор операционных систем был продиктован традициями, сложившимися в расчетных отделах организаций (наших, отечественных) использующих данный программный продукт. Выбор конкретной версии Linux основывался на рекомендациях производителя программы.

Во всех тестах задача полностью помещалась в оперативной памяти компьютера, что практически устраняет влияние на время расчета операций с жестким диском (исключалась работа своп файла). Размер задачи в оперативной памяти для одно-двухпроцессорных конфигураций (LS-DYNA 960SMP) составил 329 МБ, для кластерной версии (LS-DYNA 960MPP) 693МБ (примерно по 100МБ/узел). Объем оперативной памяти на всех тестируемых конфигурациях — не менее 512MБ.

Аппаратные платформы

Тестирование проводилось на платформах, представленных в таблице 1.

Пояснения к таблице 1:

  • n — номер позиции (таблица отсортирована по результатам — чем ниже строка, тем лучше).
  • N, cpu — количество процессоров, занятых в тесте
  • N, cpu, installed — количество процессоров, установленных на плату (наблюдается некоторое различие результатов при работе двухпроцессорных систем на одном процессоре, в случае, когда задача считается на одном процессоре, при установленных двух и в случае, когда физически установлен только один процессор.
  • Freq/P-Rating — Частота, для процессоров Intel и P-рейтинг для процессоров AMD.
  • FSB — Частота шины
  • Mem type — тип оперативной памяти. В этой колонке, в тех пунктах, где рассматриваются системы с двухканальным контроллером памяти (NVIDIA nForce2 и Intel E7505), поставлены примечания: DCh — память работает в двухканальном режиме, SCh — память работает в одноканальном режиме.
  • Mem freq — частота памяти
  • Chipset — тип системной логики (чипсет)
  • Mother Board — тип материнской платы
  • OS — операционная система, W — MS Windows 2000Pro, SP1. L — Linux RedHat 7.3. Другие операционные системы в тесте не рассматривались. Linux RedHat 7.3 использовалась только на кластере, но по тесту, который был проведен на одном узле, можно судить о разнице в работе программы под разными О.С.
  • Колонки CPU Time и Elapsed time — описаны подробно ниже, при рассмотрении гистограмм.

nCPU Typen, cpun, cpu, installedFreq / P-ratingFSBMem typeMem freqChipsetMother BoardosCPU_Time, secElapsed_Time, sec
1Pentium III12450100SDR100intel 440BXASUS, P2B-DW1741617421
2Pentium III11700100SDR100intel 440BXGigabyte BX2000+W1262412636
3Pentium III11700100SDR100intel 440BXGigabyte BX2000+W1252412540
4Pentium III22450100SDR100intel 440BXASUS, P2B-DW1128711292
5Pentium III11800100SDR100intel 440BXASUS, P3B-FW1085510889
6Pentium III111000133SDR133VIA 694XASUS, CUV4X-EW1054610560
7Pentium III11933133SDR133intel 440BXASUS, P3B-FW91279134
8Athlon XP111800+266SDR133VIA KT133ASoltek, SL-75KAVW55735580
9Pentium 4112000400DDR266intel 845PEASUS, P4PEW50805125
10Athlon XP112200+266SDR133VIA KT133ASoltek, SL-75KAVW49414972
11Xeon (P4)112000400DDR, DCh200Intel E7505Intel, SE7505VB2W49124924
12Xeon (P4)122000400DDR, DCh200Intel E7505Intel, SE7505VB2W48104859
13Pentium 4112000400RDR400Intel 850ASUS, P4T-EW47854814
14Xeon4112000400RDR400Intel 860Iwill, DP-400W47484787
15Xeon (P4, wHT)112000400DDR, DCh200Intel E7505Intel, SE7505VB2W45784589
16Pentium 4112200420RDR420Intel 850ASUS, P4T-EW43714406
17Athlon MP122200+266DDR266AMD 760MPXASUS, A7M266-DW43294353
18Pentium 4112666533DDR266intel 845PEP4PE, i845PEW41734208
19Pentium 4112400480RDR480Intel 850ASUS, P4T-EW41364158
20Athlon XP111800+266DDR, DCh266NVIDIA nForce2ASUS, A7N8XW41174164
21Athlon XP112200+266DDR, SCh266NVIDIA nForce2ASUS, A7N8XW39423989
22Pentium 4112666533DDR333intel 845PEASUS, P4PEW38953942
23Xeon (P4)112666533DDR, DCh266Intel E7505Intel, SE7505VB2W37553775
24Xeon (P4)122666533DDR, DCh266Intel E7505Intel, SE7505VB2W36823704
25Athlon XP112200+266DDR, DCh266NVIDIA nForce2ASUS, A7N8XW36813726
26Xeon (P4, wHT)222000400DDR, DCh200Intel E7505Intel, SE7505VB2W34533471
27Pentium 4 Cluster*112200400RDR400Intel 850ASUS, P4T-EL34273451
28Xeon (P4)222000400DDR, DCh200Intel E7505Intel, SE7505VB2W33783390
29Xeon (P4)222000400RDR400Intel 860Iwill, DP-400W30743124
30Athlon MP222200+266DDR266AMD 760MPXASUS, A7M266-DW30553084
31Xeon (P4)222666533DDR, SCh266Intel E7505Intel, SE7505VB2W29222934
32Xeon (P4, wHT)222666533DDR, DCh266Intel E7505Intel, SE7505VB2W27572810
33Xeon (P4)222666533DDR, DCh266Intel E7505Intel, SE7505VB2W24912531
34Pentium 4 Cluster*222200400RDR400Intel 850ASUS, P4T-EL17641856
35Pentium 4 Cluster*442200400RDR400Intel 850ASUS, P4T-EL8971092
36Pentium 4 Cluster*662200400RDR400Intel 850ASUS, P4T-EL620844

* Характеристики кластера: 2-6 узлов (P4-2200MHz, i850, 1Gb RDRAM PC800/узел) межузловое соединение — Gigabit Ethernet, межузловое взаимодействие основано на LAM (Local Area Multicomputer) — реализации MPI(message passing interface).

Таблица 1. Оборудование, используемое при тестировании.

Результаты тестирования

Результаты тестирования приведены для двух характеристик — «CPU Time» и «Elapsed Time». Как правило, эти показатели применяются для оценки машинного времени практически во всех расчетных программах. «CPU Time» отражает процессорное время, потраченное на выполнение только процесса решения (рис. 2). Данная характеристика отражает потенциальные возможности вычислительных систем, здесь не учитывается время, которое система тратит на работу с видеосистемой, жесткими дисками, драйверами устройств, сетевым обменом (в случае кластера) и т.п. «Elapsed Time» (рис. 3) показывает полное время решения задачи — с момента нажатия «Enter» до вывода результата.

Хотя для всех систем, кроме кластерной, эти показатели схожи, в пределах 1-2% (для кластера разница существенно больше, в основном из-за наличия интенсивного сетевого обмена между узлами), считаю уместным привести оба показателя.


Рис. 2. Время выполнения процесса (CPU_Time), сек.


Рис. 3. Полное время выполнения задачи (Elapsed Time), сек.

Детали

Перейдем теперь к рассмотрению частных случаев.

Рассмотрим подробно, какой прирост скорости счета дает установка второго процессора на плату в SMP системах.

На рис. 4, 5 показан прирост скорости для многопроцессорных компьютеров по CPU Time и Elapsed Time соответственно. Анализируя данные видно, что наибольший прирост скорости для SMP систем показывают компьютеры на основе синхронных чипсетов: Intel 440BX и Intel 860. Наиболее вероятной причиной этого являются минимальные затраты времени, выраженные в тактах шины, затраченные на передачу сообщений между частями кода, обрабатываемого разными процессорами.

Еще следует отметить возрастание прироста скорости счета при увеличении частоты системной шины с 400 до 533 МГц на системе с чипсетом E7505. Этому способствует возросшая пропускная способность процессорной шины.

Тот факт, что кластерные системы (даже два узла, соединенных кросс-овер кабелем) намного превзошли в данном тесте SMP системы объясняется хорошей параллелизацией кода программы. MPP версия LS-DYNA автоматически разделяет расчетную область на количество блоков, равное количеству узлов в кластере. Далее каждый узел производит расчет своей части, при этом интенсивно обмениваясь данными с соседними узлами. Результаты расчета собираются на головной машине. В свою очередь, при использовании многопроцессорной SMP системы такого «разделения труда» не происходит — всем процессорам приходится обрабатывать единый массив данных и при этом использовать общую шину памяти.


Рис. 4. Прирост скорости для многопроцессорных систем (CPU Time)


Рис. 5. Прирост скорости для многопроцессорных систем (Elapsed Time)

Теперь посмотрим на различие в результатах, полученных под различными операционными системами. Тесты, проводимые под Windows 2000 Professional, Windows 2000 Server и Windows XP, показали идентичные результаты. Версия программы, скомпилированная для Linux, дает ощутимый прирост (28%), одинаковый для CPU и Elapsed Time (см. рис. 6). Здесь сказывается лучшая оптимизация кода программы под Linux.


Рис. 6. Elapsed Time для OS Windows 2000 Pro и Linux RedHat 7.3

Очень сильно сказывается на производительности систем пропускная способность памяти. Например, замена в системе с чипсетом Intel 845PE памяти c DDR-266 на DDR-333 увеличивает производительность системы на 8%, а применение двухканального чипсета E7505 c памятью DDR-266 дает прирост уже в 11.5% (рис.8). Если сравнивать производительность систем на базе процессора Athlon XP, самый медленный вариант с памятью SDRAM, самый быстрый (в данном тесте) — с двухканальной DDR266, то прирост составит 34% (рис.7). Так что стоит задуматься, имеет ли смысл делать «плавный» апгрейд, чтобы сохранить великие запасы SDR, оставшиеся со времен легендарного 440BX.


Рис. 7. Elapsed Time для разных типов памяти и системной логики, AMD.


Рис. 8. Elapsed Time для разных типов памяти и системной логики, Intel.

Влияние технологии Hyper Treading было проверено в двух вариантах на чипсете Intel E7505 (рис.9). В случае с установленным на плату одним процессором (в системе, виртуально, работали два), прирост от использования данной технологии составил порядка 7%. При установленных двух процессорах (в системе, виртуально, работали четыре) наблюдалось, наоборот, падение производительности на 11%. Прирост производительности в первом случае можно объяснить более рациональным использованием конвейера процессора. Во втором случае падение производительности, по-видимому, происходит из-за возрастающей нагрузки на процессорную шину и шину памяти, а как отмечалось выше, приложение весьма критично к этим параметрам.


Рис. 9. Влияние технологии Hyper-Threading на производительность системы (Elapsed_Time)

Напоследок приведу две гистограммы, на которых сгруппированы результаты теста близких по частоте (P-rating, в случае процессоров Athlon) процессоров от Intel и AMD. На рис.10 представлены системы с одним процессором, на рис.11 — с двумя. Среди систем с одним процессором неоспоримым преимуществом обладают процессоры от AMD. Возможные причины: большая длинна конвейера Pentium-4 и недостаточная оптимизация программного кода данной версии LS-DYNA под его архитектурные особенности (правда, не думаю, чтобы код специально оптимизировали под процессоры Athlon). Также может сказываться разница в объемах и реализации кэша первого уровня. Еще одной причиной (если не главной) может служить нехватка пропускной способности процессорной шины и шины памяти у систем с процессорами Pentium-4.

При сравнении двухпроцессорных конфигураций наблюдается относительный паритет. Здесь двум процессорам Athlon MP явно недостаточно пропускной способности процессорной шины и шины памяти в 2.1 ГБ/С.


Рис. 10. Сравнение производительности систем на базе процессоров AMD и Intel (Elapsed_Time) однопроцессорные системы


Рис. 11. Сравнение производительности систем на базе процессоров AMD и Intel (Elapsed_Time) двухпроцессорные системы

Выводы

К сожалению, не весь спектр современных x-86 вычислительных систем удалось охватить в данном обзоре. Особенно не хватает информации по платформам SerwerWorks. Надеюсь, что смогу добавить в эту статью новые данные по мере их поступления. Но, даже те данные, которые удалось получить, дают возможность сделать некоторые выводы:

Программа LS-DYNA дает значительный прирост производительности при использовании ее на многопроцессорных системах, как с общей памятью (SMP), так и с распределенной памятью (MPP). Наиболее выгодным является использование кластерных систем с распределенной памятью (MPP). Хотя напрямую сравнивать MPP и SMP системы несколько некорректно. Двухпроцессорные SMP системы — это, как правило, рабочие станции с операционной системой Windows (для сегмента пользователей данной программы), которые выполняют, помимо непосредственно расчетов, самые разнообразные функции. Linux кластеры, в свою очередь, применяются в качестве «числодробильных аппаратов» с жесткими правилами администрирования и вряд ли подойдут для многоцелевого применения (хотя, известны различные варианты). Еще, немаловажным фактором, является разница в стоимости SMP и MPP версий программы, но это предмет отдельного разговора.

Производительность программы напрямую зависит от пропускной способности оперативной памяти. Современные двухканальные чипсеты для памяти DDR дают наибольший выигрыш (к сожалению, не было возможности испытать системы на чипсете Intel 850E с памятью RDRAM PC-1066).

Значительный прирост скорости вычислений дает использование LS-DYNA 960 под ОС Linux ввиду лучшей оптимизации кода под эту операционную систему.

Применение технологии Hyper-Threading в процессорах Intel ускоряет счет в случае одного процессора и замедляет его при использовании двух процессоров.

Хорошо зарекомендовали себя процессоры AMD Athlon XP, среди однопроцессорных систем их выигрыш на лицо. В двухпроцессорном исполнении наблюдается паритет с процессорами Intel.

Выражаю свою искреннюю благодарность за помощь, оказанную при проведении тестирования:




24 апреля 2003 Г.