МЕТОД МОНТЕ-КАРЛО В ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЯХ Лямаев И. В. Беловский институт (филиал) КемГУ E-mail: liv@belovo.kemsu.ru Среди многообразия численных методов в математических расчетах, в последнее время, можно говорить о возрождении такого метода – как метод Монте-Карло. Связано это в первую очередь с тем, что применение метода Монте-Карло требует больших вычислительных мощностей, что до поры до времени было весьма проблематично. Методы Монте-Карло - это общее название группы методов для решения различных задач с помощью случайных последовательностей. Эти методы (как и вся теория вероятностей) выросли из попыток людей улучшить свои шансы в азартных играх. Этим объясняется и тот факт, что название этой группе методов дал город Монте-Карло - столица европейского игорного бизнеса. Следует немного пояснить сам метод Монте-Карло. Идея очень проста, если требуется найти решение задачи, почему бы ни решить эту задачу случайным образом? С помощью монеты (орел или решка), с помощью игральных костей, с помощью рулетки казино. Всегда существует вероятность, что случайно выпавшее число или вариант решения будет правильным. Конечно, трудно себе представить современного ученого, аспиранта, студента с рулеткой из казино на столе или с игральными костями, решающего уравнения термодинамики или вычисляющего объемный интеграл с их помощью, но существуют электронные вычислительные машины, программное обеспечение которых позволяет генерировать псевдослучайные последовательности чисел. Далее, на основании полученного «случайным» образом числового значения осуществляется выборка определяющего параметра из допустимого диапазона чисел, найденное значение подставляется в уравнение, которое решаем, уравнение, моделирующее исследуемый процесс. В результате математических вычислений получаем значение f(x), которое необходимо проверить на так называемую допустимую погрешность вычислений - определяющую требуемую точность. Вот так коротко можно описать саму реализацию алгоритма вычислений с помощью метода Монте-Карло. Точность вычислений метода очень сильно зависит от качества используемого генератора псевдослучайных чисел, скорость вычислений определяется функцией, описывающей анализируемый процесс и, конечно же, производительностью самого «вычислителя», что уже отмечалось выше. В наше время тактовая частота современных процессоров уже перешла предел ГГц, а объем оперативной памяти персональных компьютеров легко довести до единиц Гбайт, производительность «вычислителя» не является больше сдерживающим фактором (или определяющим, как угодно) для применения требовательных к мощности «вычислителя» числовых алгоритмов при решении задач. Упрощенно схему алгоритма можно представить в виде, показанном на рис. 1. Генератор случайных чисел Вычислитель Анализатор Рис. 1. Схема вычислений по методу Монте-Карло Применение этого метода дает возможность по-новому взглянуть и на идею распараллеливания вычислений, применения кластерных технологий вычисления. Действительно, промежуточные расчеты в методе Монте-Карло могут осуществляться независимо на разных, отдельно взятых «вычислителях», а результаты уже обрабатываться на каком-то тоже отдельно взятом «анализаторе» (рис. 2). Вычислитель Генератор случайных чисел Вычислитель Анализатор .... Вычислитель Рис. 2. Упрощенный алгоритм параллельного вычисления по методу Монте-Карло Согласно рис. 2, генератор случайных чисел один для системы и, «проходя» сверху вниз по «вычислителям», «выдает» каждому из «вычислителей» сгенерированное случайное число. Вот тут кроется подводный камень, снижающий производительность данной параллельной системы. Информация должна быть передана между компьютерами. Передаваться она будет средствами, доступными в настоящее время. Как сказано в [1], скорость передачи будет определяться для технологии Fast Ethernet (до 12 Мбайт/с), более современные технологии SCI или Myrinet (от 80 Мбайт/с). Кроме значительной разницы в пропускной способности, последние высокоскоростные технологии имеют значительно меньшую латентность (5-10 мкс против 150-300 мкс Fast Ethernet). Основной недостаток этих технологий - стоимость, превышающая, порой, стоимость вычислительных элементов. Но, если числа случайные, существует вероятность и довольно высокая того, что среди их последовательности будут возникать повторения или очень близкие значения, что не повлияет на (нашу допустимую погрешность вычислений.) Следовательно, появляется возможность несколько видоизменить саму схему вычислений (рис. 3), предоставив каждому «вычислителю» отдельный, свой собственный генератор случайных чисел. Генератор случайных чисел Вычислитель Генератор случайных чисел Вычислитель Анализатор .... Генератор случайных чисел Вычислитель Рис. 3. Видоизмененный алгоритм параллельного вычисления по методу Монте-Карло Применяя данную схему, мы избавляемся от непременного присутствия между генератором случайных чисел и «вычислителем» маршрутизатора-коммутатора (который на рис. 2 просто не показан). Сам маршрутизатор может реализоваться как программно [2], так и аппаратно. Очевидно, что такое решение ускорит процесс вычислений. На сколько ускорит? Необходимо экспериментировать. Оптимизируя далее реализацию алгоритма на рис. 3, можно предложить объединить генератор случайных чисел и сам «вычислитель», а почему бы и нет? Выигрыш в производительности тоже можно определить экспериментально. 1. Хисамутдинов Р.А. «Повышение производительности кластерных систем» - Материалы конференции "Высокопроизводительные вычисления и их приложения" (30 октября - 2 ноября 2000 года, Черноголовка) стр. 62. 2. Агеев В.М., Кулида С.В. «Реализация маршрутизатора для однородной сети процессоров, связанных линиями связи типа «точка- точка» - Материалы конференции "Высокопроизводительные вычисления и их приложения" (30 октября - 2 ноября 2000 года, Черноголовка) стр. 64.