Научная статья на тему 'Глобальная безусловная оптимизации роем частиц на графических процессорах архитектуры CUDA'

Глобальная безусловная оптимизации роем частиц на графических процессорах архитектуры CUDA Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
275
126
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЛОБАЛЬНАЯ ОПТИМИЗАЦИЯ / МЕТОД РОЯ ЧАСТИЦ / ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Карпенко А. П., Селиверстов Е. Ю.

В работе рассмотрен параллельный метод GIPSO глобальной оптимизации роем частиц для ГПУ, а также соответствующий алгоритм GIPSO и его программная реализация с использованием технологии CUDA. Выполнено широкое экспериментальное исследование различных аспектов эффективности метода. На представительном классе тестовых функций показано, что, по сравнению с классическим последовательным методом роя частиц, метод GIPSO обеспечивает более высокую скорость сходимости. Исследование показало также, что метод обеспечивает значительное ускорение по сравнению с последовательным аналогом и хорошую масштабируемость относительно размера задачи. На основе результатов работы можно констатировать, что многие задачи глобальной оптимизации могут быть эффективно решены на графических процессорах методом GIPSO. В развитие работы предполагается разработка и реализация методов метаоптимизации метода GIPSO.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Глобальная безусловная оптимизации роем частиц на графических процессорах архитектуры CUDA»

УДК 519.6

МГТУ им. Н.Э. Баумана [email protected]

Введение

Методы решения задачи глобальной безусловной оптимизации делятся на детерминированные, стохастические и эвристические [0]. Среди эвристических методов выделяются эволюционные и поведенческие (имитационные) методы, которые представляют собой относительно новый и быстро развивающийся класс методов глобальной оптимизации

Известность получили следующие поведенческие методы решения задачи глобальной оптимизации - метод поведения пчёл, метод колонии муравьев, метод роя частиц. В работе рассматривается параллельный метод глобальной оптимизации роем частиц (particle swarm optimization - PSO). Обзор как последовательных, так и параллельных вариантов метода PSO приведен в работе [0].

Предложенный в данной работе параллельный метод GIPSO (от GPU Island Particle Swarm Optimization) ориентирован на использование графических процессорных устройствах (GPU). Основу GIPSO составляет известный метод IPSO (Island Particle Swarm Optimization), использующий островную модель параллелизма [0].

Современные графические процессорные устройства (ГПУ) являются мощными специализированными вычислительными устройствами, которые могут быть использованы для решения целого ряда сложных вычислительных задач. В настоящее время одно ГПУ позволяет получить до 900 Гфлопс реальной производительности и обеспечить примерно десятикратное ускорение по сравнению центральным процессором хост-ЭВМ. Важно, что помимо высокой производительности ГПУ обладают низким энергопотреблением и низкой относительной стоимостью. Основная идея использования ГПУ в

качестве универсального вычислителя состоит в использовании пиксельных шейдеров как универсальных сопроцессоров для операций с плавающей точкой [4].

В настоящее время существует два основных производителя ГПУ для высокопроизводительных вычислений - компании AMD и NVidia. Архитектуры ГПУ этих производителей существенно отличаются. Работа ориентирована на ГПУ производства компании Nvidia.

С точки зрения программирования вычислительная система на основе ГПУ представляет собой сложную иерархическую структуру, имеющую несколько адресных пространств и ряд специфических механизмов. Широкому использованию ГПУ для решения вычислительных задач до недавнего времени препятствовало отсутствие адекватных средств программирования, не связанных с программированием графики. Ситуация изменилась с появлением в 2008 году библиотеки CUDA (Compute Unified Driver Architecture) компании NVidia [4]. Основу библиотеки (нижний уровень программирования) составляет ассемблер ГПУ, верхний уровень библиотеки представляет собой параллельный диалект языка C, отражающий архитектурные особенности ГПУ.

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

Отметим, что эффективность алгоритма GIPSO сравнивается с эффективностью последовательной реализации алгоритма IPSO на однопроцессорном компьютере архитектуры x86. В работе [3] описаны похожие реализации алгоритма IPSO в классических параллельных средах с использованием технологии MPI.

1. Постановка задачи и схема метода GIPSO

Рассмотрим задачу глобальной безусловной минимизации целевой функций

F(X), определенной в n -мерном арифметическом пространстве Rn (пространстве поиска):

minF(X) = F(X*), X е Rn . (1)

x

Множество частиц (рой, популяцию) обозначим S = {р, i е [1,N]}, где N -количество частиц в рое (размер популяции). Частица Pi определяется n -

мерными векторами координат Xi t и скоростей Vi t. Здесь t е [0, T] -дискретный момент времени (номер итерации); T - общее число итераций. Начальные координаты и скорости частицы Pi известны и равны Xi 0 = X0,

Vi 0 = Vi0 соответственно.

Метод GIPSO (как и метод IPSO) основан на каноническом методе PSO, итерации в котором выполняются по следующей схеме [0]:

xi,t+1 = xi ,t + vi ,t+1; (2) Vt,t+1 = а¥г,t + U[0, Ф1 ] ® (Xl - Xl,t) + U[0, ф2 ] ® (Xg,t - Xt,). (3) Здесь U[a, b] - n -мерный вектор псевдослучайных чисел, равномерно распределенных в интервале [a, b]; ® - символ покомпонентного умножения

векторов; Xbt - вектор координат частицы Pi с наилучшим (в смысле

формулы (1)) значением целевой функции F(X) за все время поиска [0, ? ];

Xё г - вектор координат соседней с данной частицы с наилучшим за то же

время значением целевой функции F(X); а, ф15 ф2 - свободные параметры

алгоритма; соседство частиц определяется используемой топологией соседства [0].

В методе GIPSO весь рой частиц 5 разбивается на К суброев Sk, k = [1, К],

число частиц в каждой из которых равно v так, что N = vK. Суброи обрабатываются независимо на протяжении «сезона», состоящего из Tmig

итераций, Tmig < T. По окончании каждого из сезонов выполняется процедура

миграции частиц между суброями, которая может осуществляться с использованием стратегии перемещения и стратегии репликации.

Миграция перемещением частиц заключается в обмене наилучшей частицы из одного суброя и наихудшей частицы из другого суброя: для каждого суброя

Sk лучшая частица Pyest меняется местами с частицей Plorst из суброя Sl;

к, l = [1, K]; к Ф l. Выбор суброя назначения St может происходить случайным образом либо в соответсвие с заданной топологией соседства частиц [0].

В миграции репликацией сначала в каждом из суброев Sk осуществляется

поиск лучшей частицы Pjkest и худшей частицы PWkorst; к = [1, K ]. Из всех

частиц Pjkest выбирается наилучшая частица всего роя P£est. Затем из суброя SK

осуществляется репликация (копирование) частицы P^ во все остальные

суброи Sk на место частиц PWkorst.

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

2. Основные особенности архитектуры и программирования ГПУ

Основу ГПУ компании NVidia, таких как видеокарта nVidia GeForce 8 и выше, составляет массив, включающий в себя от четырех до тридцати двух SIMD-мультипроцессоров. Мультипроцессор состоит из восьми суперскалярных потоковых процессоров, каждый из которых имеет свой

модуль памяти. В соответствии со спецификацией Compute Capability 1.2 емкость этой памяти равна Greg =16 KB [4].

Мультипроцессор включает в себя независимую кэш-память команд и аналогичную память данных (констант), планировщик потоков и модуль памяти, разделяемой между всеми восемью потоковыми процессорами. По спецификации Compute Capability 1.2 емкость разделяемой памяти составляет Gshm =16 КБ.

Помимо собственно ГПУ, видеокарта содержит также модули глобальной оперативной памяти емкостью до 1 ГБ.

Модель CUDA-программы представляет собой сеть вычислительных блоков, состоящих из большого количества потоков. Планировщик потоков ГПУ осуществляет динамическое распределение вычислительных блоков на мультипроцессоры, а потоки внутри блока - на потоковые процессоры. Эффективно распараллелена может быть только та задача, которая допускает представление в виде множества независимо и одновременно (на логическом уровне) выполняемых копий функции, обрабатывающих разные наборы данных.

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

Известной проблемой современных процессоров является дисбаланс между скоростью работы процессора и скоростью обмена с памятью. Для ГПУ эта проблема стоит еще более остро, поскольку задержка доступа потокового процессора к глобальной памяти может составлять до 300 тактов. ГПУ позволяет снизить латентность доступа к памяти путем планирования исполнения на мультипроцессоре совокупности 32 потоков, которая называется варпом (warp). При блокировании на доступе к памяти потоков одного из варпов, исполнение быстро переключается на следующий варп. Важно, что при этом переключение контекста занимает только один такт. Отметим, что для эффективной работы указанного механизма количество потоков в блоке

должно многократно превышать количество потоковых процессоров в мультипроцессоре.

3. Отображения алгоритма GIPSO на архитектуру ГПУ

Поскольку частицы внутри каждого из суброев Sk достаточно интенсивно коммутируют (после каждой итерации выбирается лучшая частица), в алгоритме GIPSO частицы каждого из суброев обрабатываются одним вычислительным блоком. Каждой из частиц ставится в соответсвие свой СЦОА-поток. Для уменьшения влияния латентности глобальной памяти, целесообразно использовать число блоков (а значит и суброев), которое значительно превосходит число мультипроцессоров ГПУ.

В СЦОА нет средств явного управления объемом памяти, используемой потоком. Если локальные данные потока не помещаются в регистровую память, то СЦОА-компилятор (КУСС) использует для этих данных разделяемую память мультипроцессора (очень медленную, по сравнению с регистровой памятью). Поэтому при отображении алгоритма GIPSO на архитектуру ГПУ важен предварительный анализ требуемых для реализации алгоритма объемов памяти.

Пусть потоку для его выполнения требуется Rs[ регистров. Тогда для вычислительного блока, состоящего из V потоков, число требуемых регистров равно

Rb = round

G

Rst • round(v,32), reg

< Greg (4)

32

\ у

где round(p, q) - ближайшее целое, меньшее p и кратное целому q.

Объем общей памяти (в байтах), используемой алгоритмом GIPSO для одного суброя, равен

Qshm =4(3nv + v + n +1) < Gshm. Отсюда имеем следующее ограничение на число частиц в суброе:

_ (п +

V < —-. (5)

3п +1

Таким образом, на размеры суброев V накладываются ограничения (4), (5), в то время как число суброев К практически неограничено. Отметим, что величины КV связаны между собой очевидным соотношением N = Kv.

В соответствии с рекомендациями работы [5] в алгоритме GIPSO скорости частиц ограничены сверху величиной Ктах = /Хтах, где Xтах - размер области

поиска: X; < Xi,t < XJ; XJ - X; < Xmax; i = [1,n], t = [1,T]. Параметр уе[0,01;1].

Метод PSO отличается от многих других эволюционных методов оптимизации наличием большого количества свободных настраиваемых параметров. Значения этих параметров могут оказывать существенное влияние на основные характеристики алгоритма такие, как скорость сходимости, сам факт сходимости, объем исследованной части пространства поиска и др. Рекомендации по выбору параметров метода PSO приведены в работе [5].

Поскольку алгоритмы IPSO и GIPSO основываются на классическом алгоритме PSO, они наследуют указанные выше параметры, но также добавляют несколько новых параметров: - число суброев K;

число частиц в одном суброе - v; интервал миграции - Tmig;

стратегия миграции.

4. Программная реализация алгоритма GIPSO

Основу программы GIPSO составляют два типа вычислительных блоков, которые называются вычислительными ядрами.

Вычислительное ядро первого типа реализует движение частиц соответствующего суброя в течение одного сезона. Вычислительное ядро второго типа осущетсвляет миграцию частиц между суброями.

Вычислительные ядра первого типа образуют К вычислительных блоков, а

вычислительные ядра второго типа - один блок, состоящий из K потоков. Программа GIPSO включает в себя две реализации ядра движения частиц:

- в реализации PsoV1 поток соответсвует одной частице, так что общее число потоков равно N, а число потоков в блоке - V;

- в реализации PsoV2 поток отвечает за движение одной частицы по одной размерности области поиска; общее число потоков равно Ып , а число потоков в одном блоке - тп .

Ядро миграции в программе GIPSO реализует стратегию миграции, как репликацией, так и перемещением. Ядро миграции призвано обеспечить распараллеливание операций миграции и переноса данных непосредственно в глобальную память ГПУ, не копируя их в память host-процессора. Структура программы GIPSO имеет следующий вид.

a) Инициализация суброев (на хост-процессоре) - задание начальных положений и скоростей частиц.

b) Копирование начальных положений и скоростей частиц в глобальную память ГПУ.

c) Генерация на host-процессоре двух массивов, содержащих по пЫТ случайных чисел, двухравномерно распределенных в интервалах [0,^],

[0,^2] соответственно (см. формулу (2)).

d) Копирование указанных массивов в глобальную память ГПУ.

e) Выполнение на ГПУ цикла оптимизации на протяжении первого сезона:

е1) выполнение на ГПУ вычислительной сети из ядер движения роя; е2) передача host-процессору информации о лучших и худших частицах каждого из суброев (путем копирования соответствующих данных из глобальной памяти ГПУ в память host-процессора); е3) построение на host-процессоре плана миграции частиц; е4) передача соответствующих данных ГПУ;

е5) выполнение на ГПУ вычислительной сети из ядер миграции суброев, которая в соответствии с разработанным планом осуществляет

перемещение частиц между суброями.

1 По схеме п0 е) выполнение на ГПУ цикла оптимизации на протяжении второго сезона и т.д. до последнего сезона, который завершается передачей host-процессору информации о лучших частицах каждого из суброев.

g) Нахождение host-процессором результата оптимизации - положения наилучшей частицы среду лучших частиц всех суброев, а также соответсвующего значения критерия оптимальности F (X). Заметим, что необходимость предварительной генерации на host-процессоре случайных чисел (см. шаг с), обусловлена тем обстоятельством, что ГПУ не способно генерировать такие числа.

Рассмотренная структура программы GIPSO показывает наличие значительного количества последовательных фрагментов, которые не могут быть распараллелены - шаги а - d, е2 - е4, g. По закону Амдала наличие таких фрагментов значительно снижает максимально возможное ускорение алгоритма.

Для оптимизации отображения алгоритма GIPSO на архитектуру СЦОА следует соблюдать следующие требования:

_ доступ потоков в варпе к глобальной памяти и памяти констант должен быть выровненным по адресам и осуществляться по определенным шаблонам; _ доступ различных потоков должен осуществляться к различным

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

В программе GIPSO обеспечены требования по доступу к разделяемой памяти с состоянием роя и к глобальной памяти с массивами случайных частиц на время итераций. Однократные чтение и запись начального состояния роя в глобальной памяти при инициализации (см. шаг Ь) не выравниваются, что

9

уменьшает производительность. Поскольку операция выполняется однократно, это уменьшение производительности не является критичным.

5. Исследование эффективности алгоритма GIPSO

При экспериментальном исследовании алгоритма GIPSO в качестве тестовых функций использованы функции известного набора CEC, который широко используется для анализа эффективности методов глобальной оптимизации. Рассмотрены функции Экли (Ackley), Растригина (Rastrigin), Розенброка (Rosenbrock) и сферическая функция (Sphere) [6].

В качестве области поиска рассмотрен гиперкуб - 20 < Xi < 20, i = [1,n]. Таким образом, принято X- = Xг+ = Xmax = 20 (см. п04). Длительность сезона миграции Tmig = 50.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5.1. Влияние свободных параметров. В работе исследовано влияние на характеристики алгоритма следующих его свободных параметров: число суброев K; размер популяции N.

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

Размер популяции. Для классического метода PSO размер популяции оказывает слабое влияние на скорость сходимости. Так метод практически нечувствителен к увеличению размера роя свыше 50 частиц. Общие рекомендации сводятся к использованию не более 50 частиц в рое для сложных задач оптимизации и 20 - 50 частиц - для простых задач [5].

По отношению к методу GIPSO такие рекомендации, вообще говоря, неприменимы. Дело в том, что, во-первых, многороевая структура метода и миграции частиц между суброями меняют смысл термина "размер популяции". Во-вторых, ограничения, рассмотренные в п03, не позволяют использовать

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

Результаты исследования скорости сходимости алгоритма GIPSO в зависимости от размера популяции N для четырехмерного пространства поиска приведены на рисунке 2.

асНеу, 6РЭ0

газМдт. ОРЭО

1 N8=2 N5=4 ■ ■ N5=8

Ю=32

N

V -

V,-- - - *

40 60

итерация

гонепЬгоск. ЭРвО

1 1 \ 1 1 1 N5=2 N5=4 ■ ■ N5=8

:< \ : \ Ю=32 ^=64

\ 4—

1

у -— ^__

1 N5=2 N5=4 ■ ■ N5=8

Ю=32 ^=64

г 1

1П уд т

200 300

итерация

арИете. ЭРвО

■ 1 ' 1 1 N5=2 N5=4 ■ ■ N5=8

■ :1 1! : 1 \ Ю=32 ^=64

V1 V 1 А \

■■'Л ГЛ

^ л •

200 300

итерация

20 30

итерация

Рис. 1. Зависимость скорости сходимости алгоритма от числа суброев

п-

N=2 N=4 ■ N=8 - N=16 N=32 ■ N=125 ■

40 60

итерация

газепЬгоск. ОРЭО, п=4

¡; 1 N=2 - N=4---- N=8

¡: 11 N=32------ -1=125 -

¡: ¡: •г '""■------

5 ; !' : 1

Г....... - _,,.

240 360

итерация

I N=2 - N=4---- N=8

N=32------ -1=125 -

\

" ~ • =. - — ■

200 300

итерация

зрИеге. ОРЭО. п=4

I 1 1= ■ , ; 1 N=2 - N=4---- N=8

! ; 1 !: . 1 1: 1 ¡: ■ N=32------ -1=125 -

¡: \ ■ ■1: 1 '¡: '

' И: I1-: '

!1 ; \ й - « \ _________

60 90

итерация

Рис. 2. Зависимость скорости сходимости от размера популяции (п = 4)

Количество суброев К во всех случаях равно четырем, количество частиц V в суброях меняется от двух до 32, так что общее число частиц в популяции N меняется от восьми до 64.

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

Аналогичные результаты для восьмимерного пространства поиска (п = 8) приведены на рисунке 3.

Рис. 3. Зависимость скорости сходимости от размера популяции (n = 8)

Рисунок показывает, что для пространства большей размерности (n = 8) размер роя начинает оказывать существенное влияние не только на скорость сходимости, но и на величину достигаемого минимума. Оказывается, что маленькие рои из 2 - 4 частиц неспособны вывести процесс поиска из локального минимума для функций Экли, Растригина и Розенброка. Минимальный размер роя, способного отыскать глобальный минимум всех рассматриваемых тестовых функций, составляет 8 частиц.

5.2. Оценка производительности. В работе выполнено также сравнительное исследование скорости сходимости алгоритмов GIPSO и IPSO (рисунок 4).

1 GIPSO, N=32 — CPSO - - - ■

V-.

---Ц

3D 25 20 15 10 5 0

0 10 20 30 40 50 60 70 BO 90 100 итерация

rosenbmck. CPSO и GIPSO, N=32

GIPSO. N=32 ■ CPSO ■

1 1

CPSO

г.

у.

у

\ ■

\

ч,

-

100 95 90 35 B0 75 70 65 30 55 50 45 40 35 30 25 20 15 10 5 0

40 B0 120 160 200 240 280 320 360 400 итерация

sphere. CPSO u GIPSO, N=32

1 1 GIPSO, N=32--

1

,

1

1

\ 1

1 1

\ ,

\ 1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1

1 1

\ \

t k

50 100 150 200 250 300 350 400 450 500 итерация

10 15 20 25 30 35 40 45 итерация

Рис. 4. Скорость сходимости алгоритмов GIPSO, IPSO

Исследование выполнено при следующих значениях свободных параметров:

v = 32 (IPSO); v = 32; K = 4; Tmig = 50 (GIPSO).

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

Выполнено также исследование производительности алгоритма GIPSO по сравнению с алгоритмом IPSO, реализованным, напомним, на центральном процессоре системы с архитектурой x86.

Исследование выполнено для двух размеров популяции N = 32, N = 64 и размерности простанства поиска n = 4,8,16. В алгоритме GIPSO использовано

ядро Pso V2 при количестве суброев K = 4 .

Обозначим tgipso время решения задачи с указанной точностью

алгоритмом GIPSO, а tipso - то же время, но при использовании алгоритма

IPSO. В качестве меры производительности алгоритма GIPSO использовано ускорение

E = tipso

^ gipso

Результаты исследования иллюстрирует рисунок 5. Рисунок показывает, что в рассмотренном диапазоне изменения величины n ускорение линейно растет с ростом этой величины. Важно, что увеличение размера популяции с N = 32 до N = 64 (поскольку K = 4, для GIPSO это означает увеличение размеров суброев с 8 до 16) увеличивает ускорение почти в два раза. Этот эффект объясняется ростом загрузки мультипроцессоров с ростом числа частиц и / или размерности пространства поиска.

Е

acktey-32 - rastrigin-32 * - - * rosenbroek-32

sphere-32 ---- ackley-64 rastrigin-64 - - * •

rosenbrock-64 sphere-6-1 -

^ -''' - *'''

......■'*......

Рис. 5. Ускорение алгоритма GIPSO

5.3. Масштабируемость алгоритма. Выполнено исследование

зависимости приведенного времени TGIPSO, необходимого для решения задачи алгоритмом GIPSO, от количества суброев К при фиксированном размере популяции N = 16. Здесь

I TGIPSO

TGIPSO =

К

Отметим, что из-за ограничений (4), (5) при большой размерности пространства поиска п размер популяции снижался до N = 8.

Использовалось ядро алгоритма PsoV2. В качестве тестовой функции рассмотрена функция Розенброка.

Результаты исследования иллюстрирует рисунок 6. Рисунок показывает, что в алгоритме GIPSO возможно увеличение количества суброев, сопровождающееся линейным ростом времени решения задачи - величина

TGIPSO практические не меняется при числе роев более 16. Это обстоятельство позволяет при увеличении сложности решаемой задачи оптимизации увеличивать количество суброев для повышения эффективности алгоритма. Конечно, при этом не следует допустить преждевременной стагнации процесса поиска.

Таким образом, исследование показывает, что алгоритм GIPSO хорошо масштабируется при реализации его на ГПУ с использованием технологии ОТБА.

Заключение

В работе рассмотрен параллельный метод GIPSO глобальной оптимизации роем частиц для ГПУ, а также соответствующий алгоритм GIPSO и его программная реализация с использованием технологии СЦБА.

Выполнено широкое экспериментальное исследование различных аспектов эффективности метода. На представительном классе тестовых функций показано, что, по сравнению с классическим последовательным методом роя частиц, метод GIPSO обеспечивает более высокую скорость сходимости.

Исследование показало также, что метод обеспечивает значительное ускорение по сравнению с последовательным аналогом и хорошую масштабируемость относительно размера задачи.

т <ШО 6

32

64

гойепЬгоск,

96

126

160

п-1(; : I----

1 : • 1 1 • 1 -1 1 ■ 1 ■

1 1 \ ■ 1 ■ \ ■ \| и ш - ■ 4 Л Л Л * <11 * * 1 1 1 .1 .... ■

192

224

К

256

Рис. 6: Масштабируемость алгоритма GIPSO

На основе результатов работы можно констатировать, что многие задачи глобальной оптимизации могут быть эффективно решены на графических процессорах методом GIPSO.

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

Литература

1. Weise, T. Global Optimization Algorithms - Theory and Application: Ph.D. thesis / University of Kassel. — 2008.

2. Карпенко А.П., Селиверстов Е.Ю. Глобальная оптимизация методом роя частиц. Обзор // Информационные технологии, 2010, 2, с. 25-34.

3. Chu, S.-C. Intelligent parallel particle swarm optimization algorithms / S.- C. Chu, J.-S. Pan // Parallel Evolutionary Computations. — Springer, 2006. — Pp. 159175.

4. NVIDIA. — Nvidia CUDA Programming Guide Version 3.0, 2010.

5. Li-ping, Z. Optimal choice of parameters for particle swarm optimization / Z. Li-ping, Y. Huan-jun, H. Shang-xu // Journal of Zhejiang University Science. — 2005. — 06. — Vol. 6, no. 6. — Pp. 528-534.

6. Benchmark functions for the cec'2008 special session and competition on large scale global optimization: Tech. rep. / K. Tang, X. Yao, P. N. Suganthan et al.: Nature Inspired Computation and Applications Laboratory, USTC, China, 2007.

i Надоели баннеры? Вы всегда можете отключить рекламу.