НА ГЛАВНУЮГЕНЕРАТОРPARMONCMONCОБ АВТОРЕ
 

 

Библиотека программ MONC для распределенного статистического моделирования в grid-сети

Оглавление

Описание системы MONC
Основные сведения
Начало раздела
Начало
На главную

Для широкого круга задач, решаемых методом Монте-Карло, оценка с заданной точностью   функционала  выборочным  средним  от  независимых  реализаций случайной оценки требует моделирования очень большого числа реализаций. Во многих случаях моделирование большого числа независимых выборочных реализаций является слишком трудоемким даже при использовании современных мощных однопроцессорных рабочих станций. Эта проблема, как указано в [1], может быть решена путем распределения моделирования независимых реализаций по независимым процессорам с финальным осреднением.

Цель создания системы MONC (сокращение от "Monte Carlo") - разработка универсальной высокопроизводительной системы параллельных вычислений для методов Монте-Карло на базе сети персональных компьютеров. Эта задача актуальна для научных коллективов имеющих в наличии, персональные компьютеры с процессорами, соответствующими по быстродействию процессорам Pentium II - IV и объединенные локальной сетью с протоколом TCP/IP.  

Система MONC является универсальной, ориентированной на пользователя, которым выступает математик-вычислитель. По сути, система MONC является системой "клиент-сервер"   с   несколькими   "серверами"   и  одним "клиентом".  Система реализована   для   выполнения   на  персональных компьютерах,  работающих  под управлением  операционных  систем Windows 98/2000 и объединённых локальной сетью на  основе  протокола TCP/IP. Система  MONC распределяет  независимые копии задания  по персональным компьютерам в сети,  отдает  команды на их исполнение, следит за ходом выполнения   заданий   и по  завершению выполнения  заданий выполняет копирование,  и  осреднение  файлов с  результатами расчетов. В системе MONC для распределения псевдослучайных чисел по процессорам рекомендуется использовать bf-генератор. В программе пользователя для распределения псевдослучайных чисел по испытаниям целесообразно использовать lf-генератор.  

Методология расчетов с использованием системы MONC

Далее предлагается специальная методология организации расчетов в рамках системы MONC, позволяющая добиться максимальной эффективности.

1. Программа пользователя, входные параметры, формат файла с результатами расчетов должны быть подготовлены с учетом простых требований, изложенных ниже.

2. Поскольку заранее трудно сделать точную оценку количества моделируемых реализаций на каждом компьютере, то целесообразно это количество не ограничивать. При необходимости следует воспользоваться возможностью системы прерывать расчеты одновременно на всех процессорах в любой момент времени. Такая методика позволит все компьютеры в составе системы использовать оптимально, с максимальной загрузкой, независимо от различий в их быстродействии.

3. Для продолжения расчетов следует лишь подготовить новые начальные значения подпоследовательностей для bf-генератора и запустить задание с этими параметрами. Система автоматически будет использовать данные предыдущих расчетов.

4. Целесообразно, чтобы результаты расчетов не пропадали при непредвиденном нарушении в работе каких-либо компьютеров в составе системы. Для этого следует допускать возможность, чтобы программа пользователя периодически сохраняла промежуточные результаты расчетов. В частности, достаточно частое сохранение промежуточных реультатов полезно для точной оценки времени расчетов на каждом компьютере.

 

Требования к Проекту пользователя
Начало раздела
Начало
На главную

"Проект пользователя" - это совокупность программы пользователя, написанной с соблюдением описанных далее простых и необременительны требований; входных файлов, необходимых для выполнения программы пользователя; файла с начальными значениями подпоследовательностей для bf-генератора (далее - файл bf-генератора), имеющего описанный далее формат; и информации о файле с результатами расчетов программы пользователя (далее -файл с результатами расчетов), который также должен иметь определенный формат.

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

  • Быть консольным приложением для Windows (или "DOS"-овским приложением).

  • Не требовать интерактивного ввода информации пользователем.

  • В числе "входных" файлов должно иметь файл с начальными значениями подпоследовательностей для генератора псевдослучайных чисел. Имя этого файла должно совпадать с именем файла для bf-генератора и сам он должен иметь описанный далее формат.

  • Сохранять результаты расчетов в файле (файле с результатами расчетов) описанного далее формата. Целесообразно также периодически сохранять текущие промежуточные результаты расчетов в этом файле для обеспечения возможности осреднения во время счета и для "аварийного" осреднения "Клиентом"

  • Не использовать файлы и библиотеки, находящиеся в каталогах, отличных от рабочего каталога программы пользователя.

  • Не записывать никаких файлов в каталоги, отличные от рабочего каталога программы пользователя.

  • Объем информации, заносимой программой пользователя в оперативную память компьютера, должен быть разумным, исходя из аппаратных возможностей каждого из компьютеров, входящих в систему MONC. То же относится ко "входным" файлам и к "выходным" файлам программы пользователя.

Файл для bf-генератора должен иметь следующий формат:

  • Он должен состоять из строк с одинаковым количеством числовых значений в каждой из них.

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

  • Количество строк должно соответствовать количеству "Серверов", входящих в систему MONC, включая и "Клиента".

Служебное ПО на "Клиенте", при формировании копий "Проекта Пользователя" для рассылки по "Серверам", автоматически "вырежет" соответствующую строку из этого файла, чтобы получить начальные значения для подпоследовательностей генератора псевдослучайных чисел, который будет использоваться в копии программы пользователя, запускаемой на этом "Сервере". Далее приведем для примера распечатку файла для bf-генератора с длиной "прыжка" m = 10^{26}

Пример распечатки файла для bf-генератора.

1   0       0      0      0      0      0      0      0      0

1   0   7916   6769   8113   7234   4142   5015   3567   1526

1   0   7640   5347   2291   4799    945   6715   5714    914

1   0   7364   3925   7109    884   2888   4164   3748   1899

1   0   7088    2503   6183   3683   6066   4620   7519   1298

1   0   6812   1081   7705   5003   6576   7149   6654   1302

1   0   6536   7851   3482   4845    514   2625   3325   1280

1   0   6260   6429   1708   3208    360   6496   4053   1876

1   0   5984   5007   2382     92   2210   1444   3331    915

1   0   5708   3585   5504   3689   2159   2919      0   1593

Файл с результатами расчетов программы пользователя должен иметь следующий формат:

  • Первая строка должна содержать количество фактически смоделированных программой пользователя независимых реализаций (испытаний).

  • Остальные строки содержат числовые значения расчитанных функционалов, соответствующие указанному в первой строке количеству смоделированных реализаций.

  • Эти строки должны содержать одинаковое количество числовых значений, разделенных пробелами или символами табуляции.

  • В конце любой строки обязателен символ перевода каретки (return).

  • Количество строк и количество числовых значений в каждой из них не лимитировано (но должно находиться в разумных пределах), и должно быть заранее определено до начала выполнения программы.

Пример распечатки файла с результатами расчетов.

    100000    // Количество смоделированных реализаций

    1.0e-10        1.239e-5    // Значения функционала

    -23.558e-1     41.025e1    // -''-

    11.532e-0      -3.131e2    // -''-

    1.277e-0       7.309e1     // -''-

Описание служебного программного обеспечения системы MONC. Инструкции по инсталляции
Начало раздела
Начало
На главную

Для реализации системы MONC необходимы персональные компьютеры, работающие под управлением ОС Windows 98/2000 и объединенные в локальную сеть, работающую по протоколу TCP/IP. Среди них выделяется один компьютер - "Клиент", остальныестановятся "Серверами". Отметим, что под "Клиента" может выделяться любой из компьютеров в сети, что позволяет максимально удобно для пользователя работать с системой MONC. На "Клиент" и на "Серверы" ставится соответствующее служебное программное обеспечение (ПО), отвечающее их функциям в процессе решения задачи - "Проекта пользователя". Функционально "Клиент" "организует" диалог с пользователем; "организует" ввод необходимой информации; ее первоначальный анализ; запуск копий программы из Проекта пользователя на "Серверах" и финальное осреднение результатов счета. Отметим, что копия программы пользователя может выполняться и на "Клиенте", т.е. "Клиент" может выполнять функции "Сервера". "Серверы" "выполняют" программу пользователя, "организуя" доставку информации о ходе выполнения программы "Клиенту". Детально взаимодействие компьютеров в рамках системы MONC станет понятным из описанных ниже задач служебного ПО, установленного на "Клиенте" и "Серверах".

Служебное ПО состоит из следующих программ:

  • программа, запускаемая на "Клиенте" - client.exe,

  • программа, запускаемая на "Сервере" - server.exe,

  • служебный файл с настройками программы 'client.exe'  - Monc.ini,

  • служебный файл с параметрами "Серверов" - Servers.lst.

Служебное ПО на каждом из компьютеров в составе системы MONC (как на "Клиенте", так и на "Сервере") устанавливается в произвольные каталоги на жестких дисках каждого из компьютеров. При необходимости, на рабочем столе Windows создаются ярлыки. Также на жестком диске "Клиента" создается рабочий каталог системы MONC.   На каждом из "Серверов" запускается программа 'server.exe'. На "Клиенте" запускается программа 'client.exe', а при необходимости запускать на нем самом копию программы пользователя - запускается еще и программа 'server.exe'.

Программа 'client.exe' обеспечивает ввод пользователем информации о "Проекте Пользователя", а также прочие функции служебного ПО "Клиента". Программа 'server.exe' обеспечивает функции служебного ПО "Сервера".

Служебный файл 'Monc.ini' содержит информацию о рабочем каталоге системы MONC (переменная MoncDir) и специальную информацию о формате чтения из файла с результатами расчетов программы пользователя (переменная ReadFormat), и информацию о формате записи в файл с осредненными значениями (переменная WriteFormat). Переменная ReadFormat содержит длину строки, которая считывается из файла с результатами расчетов. Переменная WriteFormat содержит информацию о формате записи в файл с осредненными значениями: число до точки задает длину поля вывода числа, число после точки - количество знаков после десятичной запятой. Переменная PreviousResultFileDirectory содержит имя директории для сохранения файла с результатами предыдущих расчетов.

Служебный файл 'Monc.ini'.

[в именах каталогов косая черта "\" в конце обязательна!]

[в квадратных скобках "[]" пишутся комментарии]

[Рабочий каталог системы MONC]

MoncDir = d:\MoncWorkDir\

[Имя директории для сохранения файла с результатами предыдущих расчетов]

PreviousResultFileDirectory = __PreviousResultFileDirectory

[Формат ввода-вывода для обработки результатов]

ReadFormat = 100

WriteFormat = 20.10

Служебный файл 'Severs.lst' содержит информацию о "Серверах", входящих в систему MONC. Каждая секция содержит:  

  • адрес "Сервера" (переменная NetworkName),

  • тип операционной системы (ОС) на "Сервере" (переменная OS),

  • имя каталога копии Проекта на "Сервере" (переменная MoncDir),

  • имя этого каталога как сетевого ресурса (переменная NetworkResName),

  • имя пользователя для доступа к сетевому ресурсу (только если ОС на "Сервере" - Windows 2000) (переменная UserName)

  • пароль для доступа к сетевому ресурсу (переменная Password).

При необходимости запускать на "Клиенте" копию программы пользователя, в соответствующей секции в переменной MoncDir записывается имя локального каталога, причем при этом переменные NetworkResName, UserName, Password задавать не надо.  

Далее для примера приведен файл 'Servers.lst'. В этом примере компьютер monc.sscc.ru является "Клиентом".

Служебный файл 'Servers.lst'.

[в именах каталогов косая черта "\" в конце обязательна!]

[в квадратных скобках "[]" пишутся комментарии]

[monc]

NetworkName = monc.sscc.ru

OS = Win2000

MoncDir = d:\ForMonc\

NetworkResName =

UserName =

Password =

[mam]

NetworkName = mam.sscc.ru

OS = Win98

MoncDir = c:\ForMonc\

NetworkResName = ForMonc

UserName =

Password = 123

[mih]

NetworkName = mih.sscc.ru

OS = Win2000

MoncDir = d:\ForMonc\

NetworkResName = Formonc

UserName = monc_user

Password = 12345

 

Описание интерфейса системы MONC. Инструкции по использованию
Начало раздела
Начало
На главную

 Пользователь должен организовать ввод следующей информации:

  • Количество "Серверов", на которых пользователь планирует запустить свое задание (на рис. 1 - поле ввода "Количество серверов").

  • Имя исполняемого файла своей программы (на рис. 1 - поле ввода "Имя программы" в рамке "Программа пользователя").

  • Имя файла для bf-генератора (на рис. 1 - поле ввода "Имя файла" в рамке "Файл для bf-генератора").

  • Имя файла с результатами расчетов своей программы (на рис. 1 - поле ввода "Имя файла" в рамке "Файл с результатами расчетов").

  • Количество числовых значений в каждой строке файла с результатами расчетов своей программы (не считая первой строки с количеством смоделированных реализаций (на рис. 1 - поле ввода "Размерность строки" в рамке "Файл с результатами расчетов").

  • Количество строк в файле с результатами расчетов своей программы (не считая первой строки с количеством смоделированных реализаций) (на рис. 1 - поле ввода "Количество строк" в рамке "Файл с результатами расчетов").

  • Указать, собирается ли он использовать результаты предыдущих расчетов (на рис. 1 - флажок "Использовать результаты предыдущих расчетов" ).

Рис. 1

После ввода описанной выше информации, пользователь нажимает кнопку "Подготовить" (см. рис. 1). При этом происходит создание подкаталогов в рабочем каталоге системы MONC, их имена соответствуют адресам "Серверов" файла 'Servers.lst' , их количество соответствуют количеству, определенному пользователем. В каждом из подкаталогов находится скопированный из рабочего каталога системы MONC Проект пользователя, но уже содержащий правильным образом сформированный файл с начальными значениями подпоследовательностей для генератора псевдослучайных чисел. После этого пользователь может, к примеру, подкорректировать информацию о количестве моделируемых реализаций на каждом из "Серверов", находящуюся в соответствующем файле или другие необходимые параметры.

После выполнения указанных действий пользователь нажимает кнопку "Выполнить" (см. рис. 1). При этом происходит копирование подготовленных копий Проекта пользователя, находящихся в описанных выше подкаталогах, в соответствующие каталоги копий Проекта на "Серверах" и запуск копий программы пользователя на каждом из "Серверов".

Для осреднения промежуточных результатов расчета копий программ пользователя предусмотрена кнопка "Опер. осреднение" (см. рис. 1). Для остановки выполнения копий программ пользователя на "Серверах" в диалоговом окне предусмотрена кнопка "Остановить всё" (см. рис. 1).

По окончании выполнения программы пользователя или же после остановки всех копий программ пользователем на каждом из "Серверов", происходит осреднение результатов вычислений. После финального осреднения будет создан файл с тем именем, какое пользователь задал для файла с результатами расчетов для своей программы в "Проекте Пользователя", но содержащий уже осредненные со всех "Серверов" значения, информацию о общем количестве смоделированных реализаций,  и информацию о времени выполнения копий программы пользователя на каждом из "Серверов".

Для осреднения уже расчитанных результатов при непредвиденном аварийном завершении выполнения программ на "Серверах" в предусмотрена кнопка "Авар. осреднение" (см.рис. 1 ).

Для продолжения расчетов нужно создать файл с новыми начальными значениями подпоследовательностей для bf-генератора. Перед запуском нужно установить флажок "Использовать результаты предыдущих расчетов" (см. рис. 1) и затем запустить систему. Система автоматически будет использовать данные предыдущих расчетов.

Публикации
Начало
На главную

[1]  Марченко М.А. Комплекс программ MONC для распределенных вычислений методом Монте-Карло, 2003 (принята в печать в СибЖВМ)  загрузить статью в pdf формате (265 Kb)

 

Загрузить программы
Начало
На главную

Ниже можно по отдельности загрузить файлы, необходимые для установки "Клиента" и "Сервера". В архиве для "Клиента" находятся примеры файлов 'Monc.ini' и 'Servers.lst'.

Rambler's Top100