В данной статье я рассмотрю метод распараллеливания на ядра нескольких версий autodyn: autodyn 6.1 и ansys autodyn 11 в MS Windows XP.
Краткая справка
Ни для кого не секрет, что задачи численного интегрирования являются сверх ресурсоемкими. Особенно это ощутимо, когда речь идет о 3-х мерных задачах, на вычисление которых уходят недели. Для решения таких задач в промышленных масштабах используются специальные высокопроизводительные системы. Но такие системы далеко не всегда доступны, поэтому часто приходится использовать обычные персональные компьютеры для решения такого рода задач. Многоядерные процессоры сегодня широко распространены на рынке компьютерной техники и являются достаточно доступными. Применение такого рода процессоров позволяет значительно сократить время расчета. Но для этого требуется правильная настройка численных пакетов. Так, если запустить решение задачи в autodyn можно заметить, что будет загружено всего одно ядро. В случае если у вас дома, например, 4-х ядерный Intel Core 2 Quad, то процессор будет загружен примерно на 25%. В данном обзоре я не буду вдаваться в подробности о различиях кластеров, устройстве памяти, конфигурации сети или типов процессоров. Я приведу лишь инструкции по запуску autodyn в параллельном режиме.
Особенности autodyn
Для реализации параллелизма на ОС MS Windows Autodyn использует стороннее приложение WMPI (Critical Software), требующее отдельной лицензии. Некоторые ранние версии Autodyn 11 имеют проблемы с реализацией функционала параллелизма, поэтому обладателям нелицензионных копий скорее всего не повезет.
Общий процесс установки и запуска.
Процесс установки состоит из нескольких частей:
- установка и настройка WMPI 1.6 под Windows;
- настройка файлов конфигурации кластера для autodyn;
- тестовые задачи.
Стоит отметить, что в WMPI и autodyn старших версий имеют проблемы с локализированными версиями Windows. Если вы используете стандартную для русской версии windows учетную запись с именем «Администратор», то я рекомендую создать новую запись администратора с английским названием, например, root. Для корректной работы WMPI требуется также задать пароль для учетной записи.
Установка и настройка WMPI
В системные требования Autodyn входит WMPI 1.5.8. На текущий день самым последним релизом первой ветки WMPI является версия 1.6.1.
Скачать ее можно на сайте производителя:
http://www.criticalhpc.com/downloadswmpi.php?download_os=win
Теперь немного о лицензиях. Для проверки работоспособности я рекомендую зарегистрироваться и получить временную лицензию, хоть она и имеет ряд ограничений: 40 суток использования, максимальное кол-во процессоров — 4. Собственно, для задач на ПК этого как раз достаточно. Файл с временной лицензией высылается в приложении к письму сразу после скачивания. При установке следуйте рекомендациям мастера. Сразу после установки необходимо указать от какого пользователя должен запускаться WMPI. Для этого нужно провести следующие операции:
Start — programs — WMPI — User Register

Username — имя учетной записи;
Domain name — сетевое имя компьютера или домена;
User password — пароль учетной записи;
Verify password — подтверждение пароля;
После заполнения нажать «Register».
После чего попробуйте запустить тесты WMPI:
Start — run
Cmd
C:\Program Files\WMPI\examples\VisualCPP\Hello_World_cpp\Release\
Hello_World_cpp.exe
В результате на экране вы должны получить следующее:

В моем случае WMPI установлен в папку C:\Program Files\WMPI\, имя компьютера anick.
В случае если возникают какие-либо ошибки, воспользуйтесь утилитой отладки конфигурации wmpitestconf.exe, которая устанавливается вместе с WMPI.

Настройка конфигурации autodyn 11.
Для того чтобы настроить autodyn необходимо скопировать файлы wmpi.clusterconf и wmpi.dll (из папки C:\Program Files\WMPI\bin) в папку с установленным autodyn (в моем случае, C:\ansys\v110\AISOL\AUTODYN\intel\ , при стандартной установке: C:\Program Files\ANSYS Inc\v110\ ).
В папке запускаемых файлов autodyn нужно создать файл wmpi.pg
ANICK 2 C:\ansys\v110\AISOL\AUTODYN\intel\adslave.exe
Настройка конфигурации autodyn 6.
Настройка выполняется несколько проще. Нужно скопировать файл конфигурации wmpi.clusterconf (C:\Program Files\WMPI\bin) в папки с autodyn 6 (в моем случае E:\autodyn\adv61 и E:\autodyn\adv61dp).
Запуск тестовой задачи.
В качестве тестовой задачи я использую пример sph_birdstrike из поставки autodyn. Операции аналогичны на 11-ой и на 6-ой версии autodyn.
Технические характеристики испытуемого компьютера:

Сначала для примера запустим вычисления в обычном serial-режиме. Нагрузка на процессор в данном случае:

Шаг 1. Активирование параллельного вычисления

Шаг 2. Активация параллельного режима

Шаг 3. Создание декомпозиции
Decomposition set — add

Шаг 4. Просмотр результата декомпозиции

Шаг 5. Добавление хоста
Host configuration sets — add

Настройка задачи для параллельного вычисления завершена

Т.к. параметры для параллельного вычисления заданы, то можно запустить расчет и посмотреть нагрузку процессора в данном случае.

Возникает резонный вопрос, а почему загрузка не 100%? Это связано с особенностями декомпозиции. Существуют такие задачи, в которых 100% загрузки ядер удается получить даже автоматической декомпозицией без каких-либо трудностей. При ручном задании декомпозиции приростом производительности (speedup) можно управлять. Существуют много методов увеличения производительности систем, например, создание очереди на ядро или же специфические сетевые конфигурации для сетей компьютеров. Но как я говорил выше, анализ производительности в данной статье я производить не буду. Хотя бы даже по тому что «все тесты врут», да и компетентным, в такого рода вопросах, меня можно назвать лишь с большой натяжкой.
Некоторый анализ прироста производительности был опубликован на конференции «Решения ANSYS для ВПК и электроники». Скачать презентацию «Распараллеливание решателей программных продуктов ANSYS. Применение решений HPC (высокопроизводительных вычислений) для решения задач больших размерностей.»
Если есть какие-либо вопросы или просто есть что сказать, то не стесняйтесь использовать форму под этой статьей по ее прямому назначению.
2 comments ↓
Могу добавить лишь, что процесс, описанный для распараллеливания 12-ой версии ANSYS такой же как и для 11-ой версии.
…
Только интонация убеждает. …
Leave a Comment