Мунерман В.И.1, Мунерман Д.В.2, Синицын И.Н3., Чукляев И.И.4
Смоленский государственный университет (СмолГУ), к.т.н., доцент, vimoon @gmail.com 2Смоленская общественная организация содействия науки и образованию «Региональный союз ученых», младший научный сотрудник, danvmoon@gmail . com 3Институт проблем информатики РАН (ИПИ РАН), д.т.н., заведующий отделом,
4Военная академия войсковой противовоздушной обороны вооруженных сил Российской Федерации им. Маршала Советского Союза А.М. Василевского (ВА ВПВО ВС РФ),
nil va@ pochta . ru
Параллельная реализация задач интегрированной логистической поддержки (CALS)
КЛЮЧЕВЫЕ СЛОВА
CALS, Big Data, модели данных, параллельное программирование. АННОТАЦИЯ
В статье рассматривается проблема повышения эффективности вычислительных средств при решении задач интегрированной логистической поддержки наукоемкой продукции. Предлагается метод построения программно-аппаратных вычислительных комплексов, основанный на применении теоретико-множественной модели данных и принципе симметричного горизонтального распределения данных. Предложенный метод позволяет сократить время решения задач в системах послепродажного обслуживания за счет использования паралельной обработки данных.
В статье рассматривается подход к повышению эффективности решения задач в системах интегрированной логистической поддержки наукоемкой продукции (CALS) [1]. Одна из составляющих таких систем - это система послепродажного обслуживания (СППО), которая является виртуальным предприятием, включающим в себя материальную инфраструктуру и организационно-управленческие структуры всех участников жизненного цикла изделия на стадии их эксплуатации. Это означает, что процессы, протекающие в СППО, охватывают весь комплекс обслуживания и ремонта изделия наукоёмкой продукции, поставок оборудования, запасных частей и материалов, хранения и транспортировки материальных средств, обучение персонала и многие другие вспомогательные процессы. СППО - комплексная система, однако в силу сложности управления ею как единым целым реально она состоит из подсистем.
Одна из подсистем обеспечивает техническое обслуживание (ТО) по состоянию, которое является преимущественно двухуровневым. На первом
уровне осуществляется оперативное ТО, устраняются неисправности (заменой блоков, агрегатов). На втором уровне специалистами технических центров (при наличии лицензии) осуществляется ТО и, после оценки технического состояния, восстановительный ремонт. Одна из важнейших задач, которую должен решать технический центр, обеспечивающий ТО, состоит в заказе и получении запчастей для восстановления отказавших агрегатов, узлов, приборов, блоков по заявкам эксплуатирующих и ремонтных подразделений.
Суть задачи состоит в том, чтобы на основе данных о сроках проведения регламентных работ для некоторой совокупности изделий и данных о потребности ремонтных комплектов запчастей для каждого вида работ укомплектовать необходимыми запчастями сервисные центры.
Если для решения задачи использовать в качестве модели данных реляционную модель SQL, исходные документы можно представить в виде трех отношений (таблиц): План, Сроки и Комплект, со следующими схемами:
• План(Изделие, Вид_ТО, Дата_нач, Дата_кон);
• Сроки(Заказчик, Изделие, Вид_ТО, Дата, Количество);
• Комплект(Изделие, Вид_ТО, Ремкомплект).
Таблицы План и Сроки содержат не менее одной строки, в каждой из которых поля Изделие и Вид_ТО имеют одинаковые значения. Операция естественного соединения (JOIN) этих таблиц, порождает таблицу Факт(Заказчик, Изделие, Вид_ТО, Дата, Количество). Строки таблицы Факт формируются в процессе вычисления декартовых произведений групп строк таблиц План и Сроки с одинаковыми значениями полей Изделие и Вид_ТО, в том случае, когда поле Дата в записи файла Сроки находится в интервале, заданном полями записи Дата_нач и Дата_кон файла План.
Таблицы Факт и Комплект также содержат не менее одной строки с одинаковыми значениями полей Изделие и Вид_ТО. Поэтому таблица-результат Комплект_ТО(Заказчик, Изделие, Вид_ТО, Ремкомплект, Дата, Количество) может быть получена в результате аналогичной операции. Так как строки таблицы Комплект_ТО порождаются из строк таблиц Факт и Комплект во время вычисления декартовых произведений, для получения окончательного результата необходимо применить операцию группировки по полям Факт.Заказчик, Факт.Изделие, Факт.Вид_ТО, Комплект.Ремкомплект.
Задача решается с помощью двух SQL-запросов.
В результате первого запроса:
SELECT
Сроки.Заказчик, Сроки.Изделие, Сроки.Вид_ТО, Сроки.Дата,
Сроки.Количество
FROM Сроки INNER JOIN План ON
(Сроки.Вид_ТО = План.Вид_ТО) And
(Сроки.Изделие = План.Изделие)
WHERE
((([Сроки]![Дата]) Between [План]![Дата_нач] And План]![Дата_кон])); формируется отношение Факт(Заказчик, Изделие, Вид_ТО, Дата, Количество).
Второй запрос: SELECT
Факт.Заказчик, Факт.Изделие, Факт.Вид_ТО, Комплект.Ремкомплект,
Min(Факт.Дата) AS [Дата], 5мш(Факт.Количество) AS [Количество]
FROM Факт INNER JOIN Комплект ON
(Факт.Вид_ТО = Комплект.Вид_ТО) And
(Факт.Изделие = Комплект.Изделие)
GROUP BY
Факт.Заказчик, Факт.Изделие, Факт.Вид_ТО, Комплект.Ремкомплект; приводит к отношению-результату Комплект_ТО(Заказчик, Изделие, Вид_ТО, Ремкомплект, Дата, Количество).
Очевидно, что когда необходимо обслуживание сложных наукоемких изделий, при решении этой задачи неминуемо проявится эффект больших данных, что приведет большим затратам времени и к потере актуальности полученных результатов. Решение проблемы лежит в использовании принципов распределенной и параллельной обработки данных.
Параллельная система баз данных поддерживает очень большие базы данных и использует свойства параллелизма архитектуры мультипроцессорных вычислительных комплексов, в средах которых она функционирует.
Распределенная система баз данных функционирует в сетевой среде, и данные в ней физически распределены между несколькими узлами. На каждом узле данные управляются собственной СУБД, которая работает независимо от СУБД, используемых на других узлах [2].
Одна из важнейших проблем этих видов систем баз данных -оптимизация запроса. Решение этой проблемы обычно осуществляется на интуитивном уровне, опирающемся на опыт и искусство прикладного программиста.
Вместе с тем повышение эффективности решения рассмотренной задачи возможно путем создания для нее специализированного программно-аппаратного комплекса. Предпосылками для создания таких комплексов в современных условиях служат:
- гибкость вычислительных средств, вытекающая из многоядерности процессоров;
- высокая скорость передачи данных в локальных вычислительных сетях;
- наличие недорогих быстродействующих внешних запоминающих устройств большой емкости;
- многофункциональные системы программирования, обеспечивающие простую связь с различными СУБД и позволяющие
достаточно просто проектировать программы для параллельной обработки данных.
В качестве модели данных, позволяющей строить такие программно-аппаратные комплексы, можно использовать теоретико-множественную модель (алгебру файлов) [3]. Основной агрегат данных в теоретико-множественной модели - файл, который определяется как фактормножество множества однотипных записей X по отношению эквивалентности порожденному множеством K и обозначается - Xк. Каждому файлу в теоретико-множественной модели можно поставить в соответствие отношение в реляционной модели данных.
Соответствие операций реляционной алгебры и операций в теоретико-множественной модели данных приведено в таблице 1.
Таблица1. Соответствие алгебраических операций в моделях данных
Реляционная алгебра Алгебра файлов
неявная операция сортировка
selection выборка
projection сжатие
теоретико-множественные операции слияние строго упорядоченных файлов
join слияние нестрого упорядоченных файлов
В рамках теоретико-множественной модели возможны различные эффективные алгоритмы распараллеливания унарных операций сортировки, выборки и сжатия и бинарной операции слияния строго упорядоченных файлов. Распараллеливание операции слияния нестрого упорядоченных файлов - гораздо более сложная проблема. Ее решение можно найти в использовании метаданных, описывающих распределение записей файла по классам эквивалентности. Такой подход называется индексно-последовательным и основан на одноименном методе доступа -ISAM.
В операции слияния нестрого упорядоченных файлов участвуют два
файла Хк и Ук. Файл-результат ¡-i .и - классы
эквивалентности (группы записей с одинаковыми значениями экземпляров множества ключей) файлов Хк и YK. Файлу Хк можно поставить в
соответствие индексный файл тс17м = ^ >>-> < Г(ю> >)■
Здесь Ijx - индекс первой записи класса эквивалентности xr, mjX -количество записей в этом классе эквивалентности. Аналогично файлу Ym соответствует индексный файл В обоих индексных файлах, если класс
^ к* O'V ) ~
эквивалентности А|М Л<.-> состоит из единственной универсальной неопределенной записи Э, то значение IjX (7,т) не определено, а т]Х{т]У)=0.
Естественно, реализации файлов и ™dYM не СОдержат записи с
неопределенными значениями. Тогда в файл результат будет содержать только те классы эквивалентности, множества ключей которых
принадлежат пересечению индексных файлов операндов ^ п 1П<$УМ ).
Исходя из сказанного оба исходных файла разбиваются на пары подфайлов.
Число пар равно числу процессоров вычислительного комплекса, которые
выделяются для процессов, реализующих операцию слияния. Классы
эквивалентности файлов Хы и Уы распределяются между подфайлами пар
по следующему правилу: для любого у классы эквивалентности
л Х¥. Г„.
1. ,1 *К1,'1
2. хк* и Yк* находятся в подфайлах одной и только одной пары.
Процесс, реализующий обработку пары, подфайлы которой содержат
по р классов эквивалентности файлов Хм и Ум, должен сформировать
р
2-1 записей файла-результата Zк. Поэтому распараллеливание б
дной пары.
Процесс, реализующий обработку пары, подфайлы которой содержат по р классов эквивалентности файлов Хк и Ук, будет тем эффективнее, чем будет меньше значение разности Rmax и Rmin.
Такой способ распределения данных называется симметричным горизонтальным распределением.
Предложенная задача снабжения и комплектации сервисных центров для проведения технического обслуживания (ТО) и ремонта может служить примером применения подхода, основанного на принципе симметричного горизонтального распределения данных.
Рис. 1. Конвейерный вычислительный комплекс для решения задачи снабжения и комплектации сервисных центров Один из способов параллельного решения задачи состоит в использовании конвейерной архитектуры вычислительного комплекса, которую часто относят к классу MISD (множественный поток команд, одиночный поток данных) [4], где несколько функциональных модулей (два или более) выполняют различные операции над одними данными. Архитектура такого комплекса приведена на рисунке 1. Вычислитель 1 выполняет операцию JOIN над таблицами План и Сроки. После того, как сформирован очередной фрагмент таблицы Факт (результат вычисления
декартова произведения), он передается Вычислителю 2. Вычислитель 2 вычисляет декартово произведение этого фрагмента и соответствующей ему группы строк таблицы Комплект а затем сохраняет его в таблице-результате Комплект_ТО.
Другой способ решения рассмотренной задачи основан на построении вычислительного комплекса с архитектурой SIMD (одиночный поток команд, множественный поток данных), представленной на рисунке 2. В этой архитектуре несколько (более двух) вычислителей, имеющих свою собственную (в некоторых случаях общую) оперативную и внешнюю память, связаны с вычислительной машиной, осуществляющей общее управление (хост-машиной). В современных комплексах возможны связи и между вычислителями. Тройки специальным образом подготовленных фрагментов таблиц План, Сроки и Комплект, которые содержат одинаковые значения полей Изделие и Вид_ТО, собираются на одном внешнем запоминающем устройстве, связанном с одним из N вычислителей.
Рис. 2. SIMD-вычислительный комплекс для решения задачи снабжения и комплектации сервисных центров Если число троек равно N, то на каждом запоминающем устройстве будет единственная тройка. В общем случае, число M^N таких троек на каждом запоминающем устройстве может быть больше единицы (k + l + ...+ m=M ). Равномерность распределения достигается в результате применения алгоритма бустрофедона [3]. Каждый вычислитель выполняет одинаковую для всех вычислителей операцию соединения фрагментов таблиц, расположенных в его внешней памяти. Полученные в результате строки отношения Комплект_ТО передаются на хост-машину, где собираются в таблицу результат.
Рассмотренные способы распараллеливания обработки больших объемов данных были реализованы на различных виртуальных программно-аппаратных вычислительных комплексах, построенных на основе локальных рабочих станций с многоядерными процессорами, локальных вычислительных сетях, и облачной системе Windows Azure [3, 5]. Было получено значительное ускорение при выполнении запросов, содержащих операцию JOIN.
Таким образом, можно утверждать, что достигается существенное
повышение эффективности решения задач интегрированной логистической поддержки наукоемких изделий, объемы данных в которых чрезвычайно велики. При этом, поскольку для построения программно-аппаратных комплексов используются только стандартные вычислительные средства и программное обеспечение, затраты на их создание минимальны.
Литература
1. Синицын И.Н., Шаламов А.С. Лекции по теории систем интегрированной логистической поддержки. - М: ТОРУС ПРЕСС, 2012. - 624 с.
2. Когаловский М. Р. Энциклопедия технологий баз данных. М.: Финансы и статистика, 2002. 800 с. ISBN 5-279-02276-4.
3. Мунерман В.И. Реализация обработки больших объемов данных на симметричных мультипроцессорных системах. - М.; Системы высокой доступности, 2, 2013, т. 9. - с. 39-36.
4. Flynn M.J. Rudd K. W. Parallel architectures // ACM Computing Surveys. 1996. - Vol. 28, No. 1. - P. 67-70.
5. Мунерман В.И. Опыт массовой обработки данных в облачных системах (на примере Windows Azure). - Системы высокой доступности, № 2, 2014, т.9, с. 3-8.