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

Международный электронный научный журнал ISSN 2307-2334

А. П. Н ицулЕНко

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

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

Ключевые слова: Распараллеливание процессов, ресурсы системы, потребление ресурсов, данные, процесс, обработка

Адрес статьи: pnojournal.wordpress.com/archive17/17-04/ Дата публикации: 1.09.2017 № 4 (28). С. 58-61. УДК 81.23

Perspectives of Science & Education. 2017. 4

International Scientific Electronic Journal ISSN 2307-2334

Available: psejournal.wordpress.com/archive17/17-04/ Accepted: 1 July 2017 Published: 1 Septemer 2017 No. 4 (28). pp. 58-61.

A. P. NITSU LEN КО

Parallel calculation of data, on the example of the software to find the optimum mathematical model with the account of its information capacity

In this article, we consider the problem of the lack of computational resources of one computer (the results of a practical experiment) within the framework of applying a software product to find the optimal mathematical model, taking into account its information capacity. As a solution to this problem, the article considers the MapReduce paradigm, examines the merits and demerits of the proposed concept, and discusses the distributions of the paradigm. An additional part of the study was the study of alternative paradigm concepts. At the end of the analysis of the concepts examined, the architecture of the software implementation of the parallelization of the data computation processes based on the MapReduce paradigm architecture was proposed, but using the elements of the modern paradigm of distributed computations. The paper presents a partial description of the functional composition of the modules of the proposed parallel computing architecture. The application of the process of distribution of data processing in the framework of the master's work of creating a software product for finding the optimal mathematical model taking into account its information capacity

Keywords: Process parallelization, system resources, resource consumption, data, process, processing

«Распараллеливание программ - процесс адаптации алгоритмов, записанных в виде программ, для их эффективного исполнения на вычислительной системе параллельной архитектуры...», поисковая система Google вернет именно эти строки, на запрос: «распараллеливание программ», и как нельзя лучше охарактеризует необходимость в данном процессе программного продукта по нахождению оптимальной математической модели с учетом ее информационной емкости (прим. - разработка программного обеспечения для нахождения оптимальной математической модели с учетом ее информационной емкости).

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

Для наглядности был проведен эксперимент, в процессе которого были взяты 2 (два) массива данных различного объема, критериями для сравнения стали показания затраченных на выполнение программы ресурсов системы:

• Время;

• Оперативная память;

• Количество перебираемых моделей.

Данные критерии определены не случайно:

скорость выполнения для программного продукта является одним из ключевых показателей; показатели потребления оперативной памяти позволяет адекватно оценить потребности программного продукта в ресурсах системы; количество перебираемых моделей - демонстрирует трудоёмкость выполняемых процессов. За основу эксперимента были взяты 2 выборки данных объемами: 1368X60 и 5305X92 (строк/столбцов) в результате обработки данных первая выборка дала результаты:

• затраченное время - 24 секунды,

• затраченная оперативная память - 18428 KB,

• полученное кол-во моделей - 9216.

Вторая выборка дала результаты:

• затраченное время - более 2 часов,*

• затраченная оперативная память - более 1 GB,*

• полученное кол-во моделей - 2799360.

(* После 2 часов работы программного продукта была исчерпана оперативная память компьютера, в связи с чем эксперимент был прекращен).

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

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

Решением поставленной задачи, на первый взгляд, является применение парадигмы MapReduce, данная технология была описана в статье «MapReduce: Simplified Data Processing on Large Clusters» компанией Google в 2004 году. MapReduce — это парадигма для вычисления некоторых наборов распределенных задач с использованием большого количества компьютеров, образующих кластер. В статье была описана технология, но не было реализации, наиболее мощным инструментом реализующим парадигму является проект Hadoop.

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

• Cloudera;

• Hortonworks;

• MapR.

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

Согласно определению парадигмы проблема с которой столкнулся ранее упомянутый программный продукт должна быть решена, но насколько правильно будет его применение? Достоинством дистрибутива Hadоop является его вычислительные алгоритмы, способные работать с колоссальными объемами данных, и файловой системой, которая может работать с петабайтами неструктурированных данных, но в случае если объем данных помещается на компьютере или задача является рекуррентной (т.е. вычисления производятся на основе ранее выполненных вычислений), применение Hadoop явно окажется излишним, к тому же затратным.

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

Hadoop следует использовать:

• Вычисления должны быть компонуемыми;

• Объем обрабатываемых, неструктурирован-

ных данных должен исчисляться в терабайтах.

Hadoop не следует использовать:

• Для некомпонуемых задач — например, для задач рекуррентных;

• Если весь объем данных умещается на одной машине;

• Hadoop, основанный на MapReduce, система для пакетной обработки и не подходит для анализа в режиме реального времени.

Альтернативы парадигмы MapReduce:

• Spark;

• Tez;

• Elasticsearch.

Среди альтернатив рассматривался проект Spark, с версии Hadoop 2.0 является уже его составляющей. Проект использует отличную от MapReduce парадигму обработки данных, вынося вычисления данных в память, а не на диск. Несмотря на новизну проект, в рамках исследования, обладает схожими проблемами, как и ранее рассмотренная парадигма в Hadoop.

Проект Tez - является программным продуктом компании Hortonworks. Tez представляет задачу в виде направленного ациклического графа (DAG) компонентов-обработчиков. Планировщик запускает вычисление графа и при необходимости динамически переконфигурирует его, оптимизируя под данные. К сожалению применение данного инструмента мало описано, что не позволяет остановить выбор на последнем. Elasticsearch при детальном изучении является инструментом для обработки текстовой информации, (например обработка логов программ). Действующей альтернативой технологии MapReduce, является технология Cascading, (после версии 2.0.) Данная технология предложена как альтернатива MapReduce в проекте Hadoop. Технология широко применяется в интернет сервисах Twitter, Amazon. Но на данный момент Hadoop развивает ответвление Spark, как наиболее перспективное.

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

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

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

Блоки предложенной архитектуры являются модулями программного продукта. Основное деление в программном обеспечении происходит на 2 модуля:

• Центральный (первичный) модуль, в котором происходит первичная обработка данных -блоки:

o Считывание данных (модуль Excel); o Создание корреляционных таблиц (модуль Correl);

o Создание плеяд (модуль Pleiades); o Подсчет возможных последовательностей и определение количества необходимых на вычисление ЭВМ (модуль Sequences);

o Сортировка полученных моделей, определение 10 наилучших моделей (модуль Sorting result).

• Рабочий (вторичный) модуль, сочетающий в себе обработку данных 2 (второго) порядка -блоки:

o Обработка последовательности ММСБ (модуль MMSB);

o Проверка последовательности на адекватность (модуль Approximation);

o Получение информационной емкости модели (модуль Information capacity).

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

ЛИТЕРАТУРА

1. Шестопал О. Разработка программного обеспечения для нахождения оптимальной математической модели с учетом ее информационной ёмкости. / О. В. Шестопал, А.П. Ницуленко / Михаило-Архангельские чтения: ст., XI международная научн. -практ. конф.

2. Static.googleusercontent.com [сайт^-URL: https://static.googleusercontent.eom/media/research.google.com/ru//archive/ mapreduce-osdi04.pdf (дата обращения: 15.03.2017).

3. Osp.ru [сайтЬ-URL: https://www.osp.ru/os/2014/05/13041818/

4. Habrahabr.ru [сайт^-URL: https://habrahabr.ru/company /dca/blog/268277/.(дата обращения: 16.03.2017).

5. Habrahabr.ru [сай^.-URL: https://habrahabr.ru/post/122514/ (дата обращения: 17.04.2017).

6. APACHE HADOOP [сай^.-URL: http://spark.apache.org/docs/latest/

7. Data Science Central [сайт^-URL: http://www.datasciencecentral.com/forum/topics/how-to-use-hadoop-for-data-science

8. ACM Digital Library [сайт^-URL: http://dl.acm.org/citation.cfm? id=1251264

9. Communications of ACM [сайт^-URL: https://cacm.acm.org/magazines/ 2010/1/55744-mapreduce-a-flexible-data-processing-tool/fulltext

10. Dzone/Big Data Zone [сайт^-URL: https://dzone.com/articles/how-hadoop-mapreduce-works

REFERENCES

1. Shestopal O.V. Razrabotka programmnogo obespecenia dlya nahojdenia optimalinoi matematiceskoi modeli s ucetom ee informationoi emkosti [software to find the optimum mathematical model with the account of its information capacity] / O. V. Sestopal, A.P. Nitsulenko/Mihailo-Arhangeliskie citenia, [Mikhailo-Arkhangelsk readings] st., XI mejdunarodnia naucin-pract. konf.

2. Static.googleusercontent.com (2017). Available at: https://static.googleusercontent.com/media/research.google.com/ru// archive/mapreduce-osdi04.pdf (accessed 15 March 2017).

3. Osp.ru

4. Habrahabr.ru (2017). Available at: https://habrahabr.ru/company /dca/blog/268277/.( accessed 16 March 2017).

5. Habrahabr.ru (2017). Available at: https://habrahabr.ru/post/122514/ (accessed 17 April 2017).

6. APACHE HADOOP

7. Data Science Central

8. ACM Digital Library

9. Communications of ACM

10. Dzone/Big Data Zone

Информация об авторах

Information about the authors

Nizolenko, A. P.

(Ribnita, Transnistria) Undergraduate The branch of Pridnestrovian State University named after T. G. Shevchenko E-mail: sasha09081994@mail.ru

Ницуленко А.П.

Магистрант Филиал Приднестровского

государственного университета

им. Т.Г. Шевченко

E-mail: sasha09081994@mail.ru