Математические методы моделирования, управления и анализа данных
N. A. Sergeeva, A. V. Strel'nikov Siberian State Aerospace University named after academician M. F. Reshetnev, Russia, Krasnoyarsk
GENERATOR OF RANDOM NUMBERS WITH WEIBULL DISTRIBUTION
The problem of random number production with various distributions generation is considered. The Weibull distribution is considered in the current article.
© Сергеева Н. А., Стрельников А. В.. 2009
УДК: 519.85:519.676
Р. Б. Сергиенко
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск
ПАРАЛЛЕЛИЗАЦИЯ КОЭВОЛЮЦИОННОГО АЛГОРИТМА В МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Рассматривается возможность параллелизации работы коэволюционного алгоритма в многопроцессорных вычислительных системах. Показаны результаты исследования повышения быстродействия алгоритма при использовании двухядерных персональных компьютеров, а также при их объединении в локальную сеть.
В коэволюционном алгоритме параллельно работают, при этом взаимодействуя между собой, индивидуальные генетические алгоритмы с различными настройками (подпопуляции). «Конкуренция» и «кооперация» индивидуальных алгоритмов обеспечивает самонастройку эволюционного поиска на решаемую задачу в ходе ее однократного решения и снимает проблему «ручного» выбора наилучшего алгоритма. Ключевыми этапами работы коэволюционного алгоритма являются перераспределение ресурсов и миграция, которые обеспечивают «конкуренцию» и «кооперацию» между индивидуальными генетическими алгоритмами соответственно.
Разработаны коэволюционные алгоритмы для решения задач безусловной и условной оптимизации, однокритериальной и многокритериальной оптимизации.
Коэволюционный алгоритм обладает широкими возможностями для параллелизации на многопроцессорных вычислительных системах с целью ускорения вычислений за счет того, что отдельные алгоритмы (подпопуляции) значительную часть времени работают независимо друг от друга.
Параллелизация коэволюционного алгоритма заключается в распределении отдельных алгоритмов по узлам многопроцессорной вычислительной системы.
При этом целесообразно не закреплять алгоритмы по узлам вычислительной системы в течение всей работы алгоритма, а динамически распределять алгоритмы после каждого интервала
адаптации с целью более равномерной загрузки узлов системы. Это объясняется тем, что за счет перераспределения ресурсов между алгоритмами размер популяций может существенно изменяться как в сторону увеличения, так и в сторону уменьшения.
В данной работе динамическое распределение ресурсов реализуется при предположении примерно равной мощности узлов вычислительной системы: алгоритмы распределяются таким образом, чтобы общее число индивидов на каждом вычислительном узле наименее отличалось от общего числа индивида на любом другом.
В программе, выступающей сервером, осуществляется настройка всех параметров коэволюци-онного алгоритма условной оптимизации, определяются индивидуальные алгоритмы, а также осуществляется обработка информации от всех алгоритмов, перераспределение ресурсов и миграция лучших индивидов по окончании каждого интервала адаптации.
В программе, выступающей клиентом, происходит работа индивидуальных алгоритмов (под-популяций) в течение интервала адаптации.
Для корректного обмена информацией между сервером и клиентом используются специальные идентификаторы начала и конца отсылки команды. Работа системы «клиент-сервер» осуществляется по следующим этапам:
1. Сервер отсылает первичную информацию об общих настройках коэволюционного алгоритма.
Решетневские чтения
2. Перед каждым интервалом адаптации динамически распределяются алгоритмы по узлам вычислительной системы. Сервер высылает всем клиентам соответствующие популяции и некоторые вспомогательные переменные.
3. Сервер и клиенты независимо друг от друга работают в течение интервала адаптации. Перед началом работы клиент высылает сигнал о начале работы. По окончании работы клиент высылает сигнал о конце работы и готовности принять новую информацию.
По окончании интервала адаптации сервер ожидает готовности всех клиентов (за счет этого достигается синхронизация работы узлов вычислительной системы). Только после этого происходит обработка информации от всех подпопуля-ций и переход к этапу 2. В случае выполнения всех поколений завершаем работу.
Далее приведены результаты исследований параллелизации коэволюционного алгоритма при различных вариантах конфигурации вычислительной системы (см. таблицу). Исследования проводились на двух тестовых задачах условной оптимизации нелинейного программирования с ограничениями в виде неравенств.
Использовались двухядерные центральные процессоры (ЦП) типа Pentium Dual-Core c тактовой частотой 1,86 ГГц (при имитации работы одноядерного процессора нагружается только одно ядро процессора), сетевой кабель для формирования локальной сети с пропускной способностью 100 Мбит/с.
Использование одного клиента позволяет повысить быстродействие на 20...30 % при использовании интервала адаптации, равного 10. Ускорение быстродействия зависит от решаемой задачи. Использование двуядерного ЦП позволяет достичь несколько большего быстродействия,
нежели использование второго вычислительного узла в локальной сети, так как обмен информации между ядрами одного ЦП осуществляет быстрее, чем между отдельными ПК в локальной сети.
Конфигурация Среднее время работы, с
Задача 1 Задача 2
Одноядерный 21,40 19,08
процессор
Двухядерный 14,86 13,06
процессор
Два одноядерных 15,20 15,50
процессора в локальной
сети
Одноядерный и двух- 11,10 10,95
ядерный процессоры
в локальной сети
Использование двух клиентов в локальной сети позволяет достичь быстродействия по сравнению с использование одного сервера на 40...50 %, по сравнению с использование сервера и одного клиента в локальной сети на 25...30 %.
Очевидно существенное увеличение производительности работы при увеличении узлов вычислительной системы, однако это увеличение нелинейное, поскольку увеличиваются затраты на обмен информацией и синхронизацию вычислительных узлов.
Таким образом, проведенные исследования показывают эффективность использования парал-лелизации коэволюционного алгоритма на многопроцессорных вычислительных системах с целью ускорения вычислений.
R. B. Sergienko
Siberian State Aerospace University named after academician M. F. Reshetnev, Russia, Krasnoyarsk
COEVOLUTIONARY ALGORITHM PARALLELIZATION IN MULTIPROCESSOR COMPUTER SYSTEMS
Possibility of coevolutionary algorithm parallelization for multiprocessor computer systems is considered. Results of computing boost researches using double-core personal computers and also their connecting to local net are illustrated.
© Сергненко Р. E., 2009