А = ^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.