Михаил Плыкин, ЗАО «ЕМТ Р»
В современной расчетной практике большинство задач требует рассмотрения всей геометрической информации без каких-либо упрощений.
Довольно часто расчетные модели представляют собой лишь часть реального объекта с наложенными условиями симметрии и периодичности. Однако многие сложные физические явления в задачах прочности и гидродинамики не имеют симметричной природы. Кроме того, при упрощении геометрической модели невозможно оценить влияние на результаты таких особенностей модели, как фаски, галтели и пр. (рис. 1).
Использование распределенных вычислительных систем способно в корне изменить ситуацию. Подобные системы принято делить на два типа: SMP (Shared Memory Processors) и MPP (Massively Parallel Processors), причем каждый из них имеет свои сильные и слабые стороны, которые необходимо учитывать при выборе конкретного аппаратного решения. На данный момент большинство подобных систем основывается на процессорах Itanium2, Intel Xeon EM64T и AMD Opteron.
Учитывая повышенный интерес к данному вопросу, специалисты компании ЕМТ совместно с компанией ARBYTE регулярно проводят тесты различных вычислительных систем для выбора оптимального решения.
Тестовая задача и расчетные системы
В качестве объекта тестирования был выбран один из элементов конструкции металлургического прокатного стана. Общая размерность задачи составила 408 тыс. элементов (в том числе контактных) и 306 тыс. узлов (рис. 2). При расчете использовался решатель DPCG.
В качестве тестовых платформ использовались три совершенно различных решения.
Первая конфигурация состояла из двухпроцессорного блока Intel Xeon EM64T 3,4 ГГц (1 Мбайт L2) с оперативной памятью 8 Гбайт. Система работала под управлением Red Hat Linux Advanced Server 3.0, а дисковая система представляла собой стандартное решение на SATA-дисках.
Вторая конфигурация включала двухпроцессорный блок Intel Itanium2 1,6 ГГц (6 Мбайт L2) с оперативной памятью 8 Гбайт, ОС Red Hat Linux Advanced Server 2.1, а дисковая система была построена на SCSI-дисках со стандартным интерфейсом.
Наконец, третья конфигурация была создана на основе серверов серии SGI Altix 350 — один узел, состоящий из двух процессоров Intel Itanium 2 1,5 ГГц (6 Мбайт L2) с оперативной памятью 32 Гбайт (рис. 3). Сервер работал под управлением ОС red Hat Linux Advanced Server 3.0. Дисковая система была основана на SATA-дисках, работающих в rAID-массиве в 10-м режиме. При соединении с сервером использовался Fiber channel.
К отличительным особенностям серверов SGI Altix 350 можно отнести высокую степень масштабируемости, а также использование технологий общего доступа к памяти SGI NUMAflex и интерконнекта SGI NUMAlink со скоростью 6,4 Гбит/с. По скорости сетевого обмена серверы Altix превосходят такие широко известные системы, как Infiniband, Myrinet, в несколько раз.
Данные особенности делают применение сервера SGI Altix 350 крайне выгодным в задачах распараллеливания.
Основной задачей тестирования было определение оптимальной конфигурации системы для расчета задач большой размерности в кратчайшие сроки.
Результаты тестирования
Результаты тестов показаны в виде диаграмм на рис. 4.
Благодаря наличию достаточно быстрых процессоров конфигурация на основе Intel Xeon характеризуется самым малым процессорным временем — 8202 с. Однако полное время счета составило 54 856 с, то есть время сборки превысило время счета более чем в 5 раз.
Похожую ситуацию мы наблюдаем и в случае использования 2xItanium2: время счета 26 175 с, а с учетом сборки модели — 77 108 с. Таким образом, даже одни из самых быстрых процессоров Itanium2 не смогли посчитать задачу быстрее предыдущей конфигурации.
Дисковая система SCSI сработала быстрее, но существенного улучшения быстродействия не произошло.
А вот ситуация с сервером SGI Altix явно отличается от предыдущих: в однопроцессорном варианте процессорное время составило 14 918 с, а суммарное — 15 954 с.
Несмотря на то что процессоры в данном варианте были чуть медленнее (1,5 ГГц вместо 1,6 ГГц), расчет задачи даже на одном процессоре оказался быстрее, чем в первых двух конфигурациях. И, что особенно важно, в несколько раз быстрее стандартного сервера Itanium2.
Наличие высокоскоростной дисковой системы позволило снизить время сборки до предельно низких величин — порядка 7% от времени счета. В двухпроцессорном варианте сервера быстродействие возросло в 1,6 раза: процессорное время составило 9654 с, а суммарное — 10 069 с.
В итоге самым быстрым решением из протестированных оказалась конфигурация на основе двухпроцессорного сервера SGI Altix 350. Это в очередной раз показывает преимущество специализированного решения для вычислительных систем над стандартными серверными решениями.
Второе место заняла конфигурация на основе двухпроцессорного Intel Xeon.
Архитектуры протестированных систем имеют много различий в плане масштабируемости и гибкости в использовании.
Например, первая конфигурация уже имеет максимально возможный размер оперативной памяти (при использовании 1-гигабитных модулей). Дальнейшее увеличение объема памяти возможно только за счет наращивания узлов. Но это сразу же повлечет за собой рост сетевого обмена при расчете, а следовательно, снизится ускоряемость расчета.
У сервера на основе Intel Itanium2 та же проблема: максимальный размер оперативной памяти составляет 32 Гбайт. Дальнейшее увеличение производительности тоже связано с наращиванием узлов и без применения специализированного сетевого интерконнекта будет неэффективным.
Серверы SGI Altix 350 обладают принципиально иными решениями. Даже если сервер состоит из нескольких отдельных процессорных блоков, технология общей адресации памяти SGI NUMAflex фактически превращает его в сервер с SMP-архитектурой. Это заметно улучшает его масштабируемость для задач различных типов. Встроенный сетевой интерконнект SGI NUMAlink (6,4 Гбит/с) позволяет не терять производительность при увеличении числа узлов.
Выбор двухпроцессорных серверов для тестов связан с тем, что для таких конфигураций не нужно использовать дополнительный модуль Parallel Performance — достаточно лицензии ANSYS для одного рабочего места.
Модуль Parallel Performance снимает ограничение на число процессоров.
На рис. 5 представлена диаграмма, показывающая ускорение расчета вследствие увеличения числа узлов.
Размерность тестовой задачи составила 1,2 млн. элементов. Применялся Sparse-реша- тель. При расчете использовался сервер SGI Altix на основе Itanium2.
Из рисунка видно, что увеличение числа узлов с одного до двух (и до четырех) дает больший прирост ускорения, чем с четырех до восьми. Это объясняется доминирующей функцией обмена данными между узлами и свойствами решателя.
Подводя некоторые итоги, отметим, что проблема решения больших задач с использованием параллельной техники весьма многогранна и таит в себе немало подводных камней. Даже имея в своем распоряжении большие вычислительные ресурсы, нельзя пренебрегать адекватной постановкой задачи и созданием качественной расчетной сетки. Выбор типа решателя с учетом характеристик задачи и вычислительных ресурсов также позволяет значительно сократить время счета.
Благодарим специалистов центра высокопроизводительных решений компании ARBYTE Александра Иванова, Алексея Нечаева и Юрия Афанасьевича Дороненко за помощь, оказанную при подготовке статьи.