Тестирование современных многопроцессорных систем в среде 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 — описаны подробно ниже, при рассмотрении гистограмм.

n CPU Type n, cpu n, cpu, installed Freq / P-rating FSB Mem type Mem freq Chipset Mother Board os CPU_Time, sec Elapsed_Time, sec
1 Pentium III 1 2 450 100 SDR 100 intel 440BX ASUS, P2B-D W 17416 17421
2 Pentium III 1 1 700 100 SDR 100 intel 440BX Gigabyte BX2000+ W 12624 12636
3 Pentium III 1 1 700 100 SDR 100 intel 440BX Gigabyte BX2000+ W 12524 12540
4 Pentium III 2 2 450 100 SDR 100 intel 440BX ASUS, P2B-D W 11287 11292
5 Pentium III 1 1 800 100 SDR 100 intel 440BX ASUS, P3B-F W 10855 10889
6 Pentium III 1 1 1000 133 SDR 133 VIA 694X ASUS, CUV4X-E W 10546 10560
7 Pentium III 1 1 933 133 SDR 133 intel 440BX ASUS, P3B-F W 9127 9134
8 Athlon XP 1 1 1800+ 266 SDR 133 VIA KT133A Soltek, SL-75KAV W 5573 5580
9 Pentium 4 1 1 2000 400 DDR 266 intel 845PE ASUS, P4PE W 5080 5125
10 Athlon XP 1 1 2200+ 266 SDR 133 VIA KT133A Soltek, SL-75KAV W 4941 4972
11 Xeon (P4) 1 1 2000 400 DDR, DCh 200 Intel E7505 Intel, SE7505VB2 W 4912 4924
12 Xeon (P4) 1 2 2000 400 DDR, DCh 200 Intel E7505 Intel, SE7505VB2 W 4810 4859
13 Pentium 4 1 1 2000 400 RDR 400 Intel 850 ASUS, P4T-E W 4785 4814
14 Xeon4 1 1 2000 400 RDR 400 Intel 860 Iwill, DP-400 W 4748 4787
15 Xeon (P4, wHT) 1 1 2000 400 DDR, DCh 200 Intel E7505 Intel, SE7505VB2 W 4578 4589
16 Pentium 4 1 1 2200 420 RDR 420 Intel 850 ASUS, P4T-E W 4371 4406
17 Athlon MP 1 2 2200+ 266 DDR 266 AMD 760MPX ASUS, A7M266-D W 4329 4353
18 Pentium 4 1 1 2666 533 DDR 266 intel 845PE P4PE, i845PE W 4173 4208
19 Pentium 4 1 1 2400 480 RDR 480 Intel 850 ASUS, P4T-E W 4136 4158
20 Athlon XP 1 1 1800+ 266 DDR, DCh 266 NVIDIA nForce2 ASUS, A7N8X W 4117 4164
21 Athlon XP 1 1 2200+ 266 DDR, SCh 266 NVIDIA nForce2 ASUS, A7N8X W 3942 3989
22 Pentium 4 1 1 2666 533 DDR 333 intel 845PE ASUS, P4PE W 3895 3942
23 Xeon (P4) 1 1 2666 533 DDR, DCh 266 Intel E7505 Intel, SE7505VB2 W 3755 3775
24 Xeon (P4) 1 2 2666 533 DDR, DCh 266 Intel E7505 Intel, SE7505VB2 W 3682 3704
25 Athlon XP 1 1 2200+ 266 DDR, DCh 266 NVIDIA nForce2 ASUS, A7N8X W 3681 3726
26 Xeon (P4, wHT) 2 2 2000 400 DDR, DCh 200 Intel E7505 Intel, SE7505VB2 W 3453 3471
27 Pentium 4 Cluster* 1 1 2200 400 RDR 400 Intel 850 ASUS, P4T-E L 3427 3451
28 Xeon (P4) 2 2 2000 400 DDR, DCh 200 Intel E7505 Intel, SE7505VB2 W 3378 3390
29 Xeon (P4) 2 2 2000 400 RDR 400 Intel 860 Iwill, DP-400 W 3074 3124
30 Athlon MP 2 2 2200+ 266 DDR 266 AMD 760MPX ASUS, A7M266-D W 3055 3084
31 Xeon (P4) 2 2 2666 533 DDR, SCh 266 Intel E7505 Intel, SE7505VB2 W 2922 2934
32 Xeon (P4, wHT) 2 2 2666 533 DDR, DCh 266 Intel E7505 Intel, SE7505VB2 W 2757 2810
33 Xeon (P4) 2 2 2666 533 DDR, DCh 266 Intel E7505 Intel, SE7505VB2 W 2491 2531
34 Pentium 4 Cluster* 2 2 2200 400 RDR 400 Intel 850 ASUS, P4T-E L 1764 1856
35 Pentium 4 Cluster* 4 4 2200 400 RDR 400 Intel 850 ASUS, P4T-E L 897 1092
36 Pentium 4 Cluster* 6 6 2200 400 RDR 400 Intel 850 ASUS, P4T-E L 620 844

* Характеристики кластера: 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.

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




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.