![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Применение MPI для расчета
Расчет модели с одним ядром не дает достаточной скорости вычислений, поэтому обычная практика в таких случаях запускать расчет на нескольких узлах кластера. Это позволяет ускорить вычисления задач, решаемых прецизионными кодами, в разы. Расчет проводился на узле кластера с 80 Гб оперативной памяти и 32 нодами(вычислительными узлами). В задаче было задано 15 предварительных циклов по 50000 нейтронов для подготовки среды и 30 циклов расчетов. В работе продемонстрировано распараллеливание от 2 до 12 вычислительных узлов и соответствующее ускорение. Данное распараллеливание было проведено с помощью использования технологии MPI и планировщика задач PBS/Torque. Для этого был написан соответствующий скрипт для PBS, позволяющий проводить вычисления и запускать их в очередь(см. Приложение Б). Для того, чтобы корректно запустить работу, необходимо было создать соответствующий скрипт. Сначала с помощью программы «touch» был создан пустой файл, после чего в этом файле были записаны все необходимые команды: · «#PBS -N mcnp» — команда создания названия исполняемой работы для отображения в очереди; · «#PBS -l nodes=node4.basnet.by: ppn=14» — количество используемых узлов и их имя в кластере; · «#PBS -e mcnp_job.err» — имя для файла ошибок; · «#PBS -o mcnp_job.log» — имя файла лога работы; · «WORKDIR=/home/ivanton» — имя рабочей директории(где будет находиться исполняемый файл и выходные файлы) · «INPUT=dipl» — имя входного файла модели; · «NCORE=14» — суммарное количество используемых узлов; Командой «cd `pwd`» программа переходила в домашний каталог пользователя. Команды «cat < < EOF >.mpd.conf» и «cat < < EOF > mpd.hosts» записывали в указанные файлы «MPD_SECRETWORD=mr45-j9z» и «node4». Данные файлы являются специальными и нужны для корректного запуска MPI. Для корректной работы скрипта переда запуском программы необходимо было прописать расположение переменных среды, где находились библиотеки для MPI, исполняемые файлы среды, для чего в скрипт были добавлены следующие строки: export PATH=$PATH: /opt/exp_soft/any/mpich2/1.5/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/lib64/mpich/lib export DATAPATH=/opt/exp_soft/nuclearby/mcnp/5/data Команда «chmod +r mpd.hosts» давала всем пользователям право читать данный файл без ограничений. Команда «cd $WORKDIR» делала текущей директорией скрипта указанную рабочую директорию, а команда «mpirun -np $NCORE /opt/exp_soft/nuclearby/mcnp/5/bin/mcnp5.mpi i=$INPUT» запускала выполнение параллельного алгоритма. Сам скрипт запускался с помощью команды «qsub имя_скрипта». Данная команда ставит исполнение скрипта в очередь задач и позволяет планировщику задач задать корректно выполнение команд, указанных в скрипте. Последние две команды в скрипте удаляют промежуточные файлы. Команды, начинающиеся со знака «#», но без символов «PBS» — закомментированы. В результате работы данного скрипта были получены следующие значения времени расчетов: Таблица 4.1 — Результаты моделирования АЭС на разном количестве вычислительных узлов
Значение Keff при этом равнялось 1.00131, а дисперсия σ = 0.00071.
|