Научная статья на тему 'Ускорение работы алгоритма для решения задачи оптимизации при разработке системы управления мобильными роботами'

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

CC BY
112
25
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ / CUDA / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / EVOLUTIONARY ALGORITHMS / PARALLEL COMPUTING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Захаров Дмитрий Никанорович, Шмалько Елизавета Юрьевна

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Захаров Дмитрий Никанорович, Шмалько Елизавета Юрьевна

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

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

А = ^ln— = — ln— = 0.0108 ч"\ опт t Ропт 10 0.78

А = ilnl = — ln — = 0.0023 ч-1. t P 10 0.95

Из выражения (1) и (2) определяем С

у1-

опт

с = С [-Ы М = 1041 00155 I • 2 = 24400 РУб.

у1 оU™J 10.01081

0.55

Если применить только одно устройство (Мо = 1) с Рз = 0.95, то его стоимость будет:

(\ Л" An m i i Л0 55

с„„ = с

Аз

М = 10410.0155 | = 28600 РУб.

,0.0023,

Так как СУ1 < Суо, то обеспечить оптимальную надежность Р = 0.95 можно путем повышения надежности устройства конструкторско-производственными способами от Ро = 0.7 до Ропт = 0.78 и применением двух устройств (М = 2).

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

Литература

1. Шишонок Н. А., Репкин В. Ф., Барвинский Л. Л. Основы теории надежности и эксплуатации радиоэлектронной техники. М., «Советское радио», 1964. 246 с.

2. Ллойд, Д. К., Липов М. Надежность. М., «Советское радио», 1969. 328 с.

3. Хачатрян С. А. Надежность горнотранспортных машин и оборудования. Пенза, 2015 г., 124 с.

4. Хачатрян С. А., Киборт А. Н. Экономическая эффективность применения многоприводных ленточных конвейеров. М.: Горный информационно-аналитический бюллетень (научно-технический журнал). 2013 № 3. 385-388 с.

Ускорение работы алгоритма для решения задачи оптимизации

при разработке системы управления мобильными роботами1

1 2 Захаров Д. Н. , Шмалько Е. Ю.

1Захаров Дмитрий Никанорович / Zakharov Dmitry Nikanorovich - кандидат технических наук,

научный сотрудник;

2Шмалько Елизавета Юрьевна / Shmalko Elizaveta Yur 'evna - кандидат технических наук,

научный сотрудник, Вычислительный центр им. А. А. Дородницына, Российская академия наук, Федеральный исследовательский центр «Информатика и управление», г. Москва

Аннотация: в статье рассмотрены аспекты применения технологии CUDA для ускорения эволюционного алгоритма, решающего задачу оптимизации скалярной функции.

Abstract: the article discusses aspects of CUDA technology to accelerate the evolutionary algorithm to solve the optimization problem of a scalar function.

1 Работа выполнена при поддержке РФФИ МК-6277.2015.8.

66

Ключевые слова: эволюционные алгоритмы, CUDA, параллельные вычисления. Keywords: evolutionary algorithms, CUDA, parallel computing.

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

При разработке системы управления мобильными роботами [1, с. 1] потребовалось решить задачу оптимизации скалярной функции. Цель функционирования системы управления заключается в максимально оперативной обработке поступающей от роботов информации и отправки им новых данных. Применение технологии CUDA и направлено на решение проблемы ускорения вычислений системой управления.

Постановка задачи

Имеется некоторая функция F(X), где X - вектор, удовлетворяющий ограничениям для каждого компонента B.

XminiB) < Х(В) < Хтах(В)

Изменяя вектор X, необходимо максимизировать значение M функции F(X). В нашем случае рассматривается функция:

Xl-X1*X2+X3=M. (1)

Ограничения заданы в диапазонах:

О < Х1 < 5 О < X2 < 5 . (2) —2 < Хъ <2

Решение задачи

Решение поставленной задачи с помощью генетического алгоритма потребовало разработки программы на языке C++. Предпочтение отдано данному языку также по причине того, что NVIDIA CUDA SDK ориентировано на языки C/C++, и отсутствует необходимость в дополнительной разработке модулей для работы на других языках.

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

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

Непосредственно перенос выполнения вышеперечисленных функций на GPU потребовал разработки дополнительных функций для подготовки областей памяти, доступной на CPU и GPU. Технология CUDA не подразумевает использование общей с центральным процессором памяти. Именно этим и обусловлена их разработка.

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

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

Учитывая вышеупомянутые особенности - при решении задачи с помощью технологии CUDA преимущество перед алгоритмом для CPU может быть получено только после разработки алгоритма, позволяющего учитывать особенности работы с GPU.

На Рис. 1 приведена блок схема CPU версии генетического алгоритма.

Рис. 1. Блок схема алгоритма для CPU

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

Код CUDA ядра для вычисления функции живучести: _global_

void evaluate_cuda(genotype *population) { //определение индекса нити int idx = blockIdx.x * blockDim.x + threadldx.x; //вычисление живучести

population[idx].fitness = (population[idx].gene[0] * population[idx].gene[0]) -

(population[idx].gene[0] * population[idx].gene[1]) + population[idx].gene[2];

}

Результаты проведенных экспериментов показали, что скорость работы алгоритма с применением CUDA оправдана только на популяциях большого размера. Преимущество в скорости начинает проявляться при размере популяции более 2000 хромосом.

Для того чтобы обработать популяцию на GPU, необходим ряд дополнительных действий:

процедуры объявления указателей на области памяти CPU и GPU, непосредственно выделение памяти на GPU, копирование данных из CPU в GPU, вызов CUDA ядра,

копирование результатов обратно в память CPU.

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

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

Размер популяции

Рис. 2. Время выполнения программы, в зависимости от размера популяции Результат

Преимущество, полученное от применения технологии CUDA, начинает проявляться после размера популяции в 2000 элементов. На популяциях малого размера алгоритм, выполняющийся на CPU, работает быстрее, т. к. он содержит ряд вспомогательных процедур, направленных на подготовку и пересылку данных по шине PCI-E от процессора к видеокарте.

Выводы

Применение технологии CUDA к решению задач с использованием генетических алгоритмов оправдано, но с учетом размера данных, обрабатываемых алгоритмом. Подобные алгоритмы, с частичной параллелизацией вычислений, успешно применяются [2, c. 2] [3, c. 1] для решения широкого спектра задач.

Литература

1. Дивеев А. И., Шмалько Е. Ю. Синтез системы управления мобильным роботом методом интеллектуальной эволюции // НиКСС . 2013. №3. [Электронный ресурс]. Режим доступа: URL: http://cyberleninka.m/article/n/sintez-sistemy-upravleniya-mobilnym-robotom-metodom-intellektualnoy-evolyutsii (дата обращения: 27.09.2015).

2. Пугин К. В., Ефимов С. С. Генетические алгоритмы с частичной параллелизацией в системах с общей памятью на примере задачи коммивояжёра // МСиМ. 2012. № 2 (26). [Электронный ресурс]. Режим доступа: URL: http://cyberleninka.ru/article/n/geneticheskie-algoritmy-s-chastichnoy-parallelizatsiey-v-sistemah-s-obschey-pamyatyu-na-primere-zadachi-kommivoyazhyora (дата обращения: 27.09.2015).

3. Pospichal Petr GPU-Based Acceleration of the Genetic Algorithm. In: Proceedings of the 16th Conference Student EEICT 2010 Volume 5. Brno: Faculty of Information Technology BUT, 2010, pp. 234-238. ISBN 978-80-214-4080-7.

Инновационные технологии хлопкопрядения Бондарчук М. М.1, Грязнова Е. В.2, Голайдо С. А.3, Федорова Н. Е.4

1Бондарчук Марина Михайловна /Bondarchuk Marina Mihajlovna - кандидат технических наук,

доцент;

2Грязнова Елена Валентиновна / Gryaznovа Elena Valentinovna - кандидат технических наук,

доцент;

3Голайдо Светлана Александровна / Golaydo Svetlana Aleksandrovna - кандидат технических

наук, доцент;

4Федорова Наталья Евгеньевна /Fedorova Natalia Evgenyevna - кандидат технических наук,

доцент,

кафедра текстильных технологий, Текстильный институт им. А. Н. Косыгина (факультет), Московский государственный университет дизайна и технологии, г. Москва

Аннотация: в статье рассматриваются современные ресурсосберегающие технологии для приготовления пряжи из хлопка и смесей с химическими волокнами с использованием автоматизированного и высокоскоростного оборудования фирм «Schlafhorst», «Zinser», «Trutzschler», «Rieter».

Abstract: the article considers the modern resource-saving technologies for the manufacture of yarn from cotton and blends with chemical fibers, using automated equipment and high-speed firms «Schlafhorst», «Zinser», «Trutzschler», «Rieter».

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

Keywords: spinning technology, product spinning, range, competitiveness, system spinning, spinning process automation, economic efficiency.

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