Научная статья на тему 'ОСОБЕННОСТИ ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ В ОБЛАЧНОЙ ИНФРАСТРУКТУРЕ ИСОД МВД РОССИИ'

ОСОБЕННОСТИ ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ В ОБЛАЧНОЙ ИНФРАСТРУКТУРЕ ИСОД МВД РОССИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Булгаков Дмитрий Юрьевич

При решении аналитических задач или задач, использующих технологии искусственного интеллекта, когда вычислительных ресурсов одного сервера оказывается недостаточно, возникает потребность в распределенных вычислениях. В статье описывается подход решения данного класса задач, использованный в ФКУ «ГИАЦ МВД России» при решении задачи построения биометрических шаблонов для сотен миллионов фотоизображений.

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

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

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

FEATURES OF THE DISTRIBUTED COMPUTING ORGANIZATION IN THE CLOUD INFRASTRUCTURE OF ISOD OF THE MIA OF RUSSIA

When solving analytical problems or tasks that use artificial intelligence technologies, when the computing resources of a single server are not enough, there is a need for distributed computing. The article describes the approach to solving this class of problems used in the FGI «MIAC of the MIA RF» in solving the problem of constructing biometric templates for hundreds of millions of photo images.

Текст научной работы на тему «ОСОБЕННОСТИ ОРГАНИЗАЦИИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ В ОБЛАЧНОЙ ИНФРАСТРУКТУРЕ ИСОД МВД РОССИИ»



Особенности организации распределенных вычислений в облачной инфраструктуре ИСОД МВД России

ДМИТРИЙ ЮРЬЕВИЧ БУЛГАКОВ,

первый заместитель начальника (ФКУ «ГИАЦ МВД России») E-mail: [email protected]

Features of the distributed computing organization in the cloud Infrastructure of ISOD of the MIA of Russia

DMITRY YURYEVICH BULGAKOV,

First deputy Chief (FGI «MIAC of the MIA RF») E-mail: [email protected]

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

В статье описывается подход решения данного класса задач, использованный в ФКУ «ГИАЦ МВД России» при решении задачи построения биометрических шаблонов для сотен миллионов фотоизображений.

Ключевые слова и словосочетания: распределенные вычисления; облачная инфраструктура; распознавание лиц; биометрия; ИСОД; Python; Celery; система массового обслуживания.

Annotation. When solving analytical problems or tasks that use artificial intelligence technologies, when the computing resources of a single server are not enough, there is a need for distributed computing.

The article describes the approach to solving this class of problems used in the FGI «MIAC of the MIA RF» in solving the problem of constructing biometric templates for hundreds of millions of photo images.

Key words and phrases: distributed computing; cloud infrastructure; face recognition; biometrics; ISOD; Python; Celery; queuing system.

УДК 004.75

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

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

Данная задача возникла и была решена в подсистеме ИБД-Ф «Опознание (биометрическая идентификация)», разработанной силами

сотрудников МВД России и введенной в эксплуатацию в 2020 г.1

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

Суммирование показателей всех отчетов происходит быстро и почти не занимает времени,

1 Свидетельство о государственной регистрации программы для ЭВМ № 2020617585 Российская Федерация. ИБД-Ф «Опознание (биометрическая идентификация)» / Д. Ю. Булгаков, Д. А. Забавников; правообладатель МВД России - № 2020616375 заявл. 17 июня 2020 г.; зарегистр. 8 июля 2020 г.

но формирование отчета для одного региона на одном сервере занимает 1 час. Таким образом, последовательное формирование отчетов для 94 регионов2 на одном сервере займет 94 часа.

Можно предположить, что мы могли бы формировать эти отчеты параллельно, если бы в нашем распоряжении было несколько серверов. При наличии 2 серверов время формирования отчетов составило бы 47 часов, 4 серверов — 23,5 часа, 8 серверов — 11,75 часов, 16 серверов — менее 6 часов.

Т. е. имея в распоряжении 16 серверов, можно было бы сократить время формирования федерального отчета с 94 до 6 часов.

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

Процедура извлечения биометрического шаблона из фотоизображения лица является задачей, требующей для своего выполнения значительных вычислительных ресурсов, а именно ресурсов центрального процессора. Выполнение этой задачи занимает в среднем 0,2 секунды на одном ядре процессора типа Intel Xeon CPU E5-2630 2.40 GHz, которые используются в облачной инфраструктуре центра обработки данных ИСОД МВД России [4]. Если требуется обработать большое количество фотографий (более 100 млн) и для всех этих фотографий создать биометрические шаблоны, то на это может потребоваться значительное время. С подобными проблемами приходится иметь дело всем разработчикам алгоритмов распознавания лиц [2].

Предположим, что мы имеем один типовой виртуальный сервер с 8 ядрами, который строит один биометрический шаблон за 0,5 секунды на одном ядре. В этом случае построение 100 млн биометрических шаблонов при задействовании всех ядер данного сервера займет не менее (100 млн фотографий x 0,5 секунд) / 60 секунд / 60 минут / 24 часов / 8 ядер « 72 суток.

200 млн фотографий — это уже 140 суток, т. е. полгода при условии непрерывной, стабильной работы сервера, каналов связи и иного инфраструктурного программного обеспечения.

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

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

2 84 региональных информационных центра и 10 информационных центров полиции на транспорте.

фотографии. Соответственно, можно обрабатывать их одновременно независимо друг от друга.

Можно предположить, что если бы мы имели в своем распоряжении распределенную вычислительную систему из 72 серверов с 8 ядрами каждый, то мы смогли бы решить задачу обработки 100 млн фотографий за одни сутки.

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

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

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

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

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

Взаимодействие компонентов распределенной вычислительной системы происходит следующим образом.

Взаимодействие «клиента» и «вычислительной системы» происходит в соответствии со спецификацией REST [8] через отправку «клиентом» запросов «диспетчеру» по протоколу HTTP. В отправляемых запросах «клиент» сообщает «диспетчеру» «задание» — фотографию, для которой необходимо сформировать биометрический шаблон.

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

«Воркеры» извлекают «задания» из «очереди заданий» и выполняют их. Результат выполнения «заданий» (построенные биометрические шаблоны) «воркеры» сообщают «диспетчеру». «Клиент» получает от «диспетчера» результат выполнения «заданий».

Celery позволяет эффективным образом создать требуемую вычислительную систему. В качестве брокера сообщений, необходимого для формирования «очереди заданий», используется RabbitMQ, в качестве системы управления базами данных (далее — СУБД) для кратковременного сохранения результатов выполнения «заданий» — резидентная СУБД типа «ключ-значение» Redis; в качестве СУБД для долговременного сохранения результатов выполнения заданий — реляционная СУБД PostgreSQL.

В облачной инфраструктуре ИСОД МВД России, основанной на использовании программного обеспечения OpenStack, добавление новых серверов-воркеров происходит через копирование имеющихся виртуальных серверов с «воркерами» в несколько щелчков мышью. За одну операцию можно сразу создать необходимое количество виртуальных серверов — «воркеров». Новые серверы-воркеры не требуют никакой дополнительной настрой-

ки — после создания запускаются, получают по DHCP внутренние IP-адреса, подключаются к инфраструктуре Celery и сразу начинают выполнять поступающие «задания».

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

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

Количество обрабатываемых изображений выросло до 10 млн фотоизображений в сутки при задействовании 20 серверов с 8 vCPU каждый. В полученной вычислительной системе, целиком функционирующей в виртуальной инфраструктуре, возможно использование соответствующих подходов к защите информации [3]. За счет сохранения результатов обработки в транзакционной реляционной СУБД PostgreSQL и использовании брокера сообщений RabbitMQ с долговременными очередями типа «durable» вычислительная система стала устойчива к сбоям оборудования и потерям связи между компонентами системы.

Список литературы:

1. Булгаков Д. Ю. Об особенностях создания биометрических систем распознавания лиц на основе нейросетевых моделей // Стратегическое развитие системы МВД России: состояние, тенденции, перспективы: сборник статей Междунар. науч.-практ. конф. (Москва, 30 октября 2019 г.). Москва, 2019.

2. Булгаков Д. Ю. Современные подходы к тестированию систем биометрической идентификации по изображению лица // Искусственный интеллект (большие данные) на службе полиции: сборник статей Междунар. науч.-практ. конф. (Москва, 28 ноября 2019 г.). Москва, 2020.

3. Минаков С. С. Основные криптографические механизмы защиты данных, передаваемых в облачные сервисы и сети хранения данных // Вопросы кибербезопасности. 2020. № 3 (37).

4. Шапкин А. В., Кубасов И. А. Основные направления дальнейшего развития ИСОД МВД России на период с 2020 по 2024 годы // Стратегическое развитие системы МВД России: состояние,

тенденции, перспективы: сборник статей Междунар. науч.-практ. конф. (Москва, 30 октября 2019 г.). Москва, 2019.

5. Nguyen G. и др. Machine Learning and Deep Learning frameworks and libraries for large-scale data mining: a survey // Artif. Intell. Rev. Springer Netherlands, 2019. Vol. 52, No 1.

6. Kaggle, Crawford C, Montoya A. O'Connell M M. P. 2018 Kaggle ML & DS Survey. The most comprehensive dataset available on the state of ML and Data Science [Электронный ресурс]. 2018. URL: https://www.kaggle.com/ kaggle/kaggle-survey-2018 (дата обращения:

14.11.2020).

7. Solem A. Celery: Distributed Task Queue [Электронный ресурс]. 2020. URL: https://docs.celeryproject.org/en/stable/ (дата обращения: 15.07.2020).

8. Fielding R. T. Architectural Styles and the Design of Network-based Software Architectures [Электронный ресурс]. 2000. URL: https://www.ics.uci.edu/~fielding/ pubs/dissertation/top.htm (дата обращения:

26.01.2021).

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