PARMONC
PARMONC - библиотека программ для распределенных вычислений по методу Монте-Карло.
Автор - к.ф.-м.н. Михаил Марченко, ИВМиМГ СО РАН.
Библиотека PARMONC (сокращение от PARallel MONte Carlo) предназначена для использования на кластерах ССКЦ КП СО РАН для распараллеливания широкого круга трудоемких приложений метода Монте-Карло.
"Ядром" библиотеки является тщательно протестированный, быстрый и надежный длиннопериодный генератор псевдослучайных чисел, разработанный в Лаборатории методов Монте-Карло ИВМиМГ СО РАН.
Библиотечные подпрограммы могут быть использованы в пользовательских программах, написанных на языках C, C++ и Fortran, причем от пользователя не требуется знание языка MPI. В процессе счета происходит автоматическое получение выборочных средних и границ погрешностей для статистических оценок, алгоритм моделирования которых задается в пользовательской подпрограмме. Имя такой подпрограммы передается в качестве аргумента в соответствующую библиотечную подпрограмму. В процессе счета результаты вычислений периодически сохраняются на жестком диске в удобном для дальнейшей обработки виде. Библиотечные подпрограммы автоматически распределяют вычислительную нагрузку по процессорам кластера. С помощью библиотеки PARMONC можно легко организовать продолжение ранее проведенных расчетов с автоматическим учетом их результатов. Также с помощью библиотеки можно получать коррелированные статистические оценки различных функционалов.
Библиотека установлена на кластере НКС-30Т ССКЦ СО РАН в директории /ifs/apps/parmonc/.
Библиотека PARMONC состоит из следующих подпрограмм и исполняемых файлов:
  • rnd128 - функция для получения одного случайного числа, равномерно распределенного в интервале от 0 до 1, с помощью параллельного генератора случайных чисел;
  • parmoncf - процедура, осуществляющая распределенное статистическое моделирование (для программ на Fortran-е);
  • parmoncc - процедура, осуществляющая распределенное статистическое моделирование (для программ на C);
  • manaver - программа для осреднения выборочных средних, независимо рассчитанных на разных процессорах;
  • genparam - программа для расчета параметров параллельного генератора случайных чисел.
Здесь rnd128, parmoncf и parmoncc являются библиотечными подпрограммами для использования в пользовательских программах на Fortran-е, C или C++, genparam и manaver являются исполняемыми файлами для запуска из командной строки. Объектные файлы PARMONC упакованы в статическую библиотеку libparmonc.a.
Пользователь вставляет вызовы процедур rnd128 и parmoncf/parmoncc в свои программы. Главная пользовательская программа, в которой находится вызов parmoncf/parmoncc, рассматривается компилятором как MPI-программа, несмотря на то, что в самой пользовательской программе нет явных вызовов директив MPI. Это означает, что такая программа должна компилироваться и собираться с использованием команд mpiicc или mpiifort.
Результаты расчетов, выполненных с использованием процедур parmoncf/parmoncc, сохраняются в файлы, которые находятся в специальной поддиректории в рабочей директории пользователя. Все эти файлы обновляются всякий раз, когда центральный процессор получает данные с других процессоров, осредняет их и сохраняет на диск.
В файл .bashrc, который находится в домашней директории пользователя, необходимо добавить следующую строку:
source /ifs/apps/parmonc/bin/parmoncvars.sh
Тем самым объявляются три переменные окружения $PRMCBIN, $PRMCLIB and $PRMCINC. Эти переменные используются при компиляции и сборке приложений с помощью PARMONC, а также при запуске команд.
Для компиляции и сборки пользовательских программ с использованием библиотеки PARMONC следует использовать следующие команды:
  • для программ на Fortran-е:
    $ mpiifort -o test -L$PRMCLIB -I$PRMCINC test.f90 -lparmonc
  • для программ на C:
    $ mpiicc -o test -L$PRMCLIB -I$PRMCINC test.c -lparmonc
Здесь test - имя исполняемого файла, test.f90 и test.c - пользовательские программы.
Свои вопросы и предложения можно отправлять автору по следующим электронным адресам:
mamosmf.sscc.ru, mamarchenkomail.ru
Старый сайт