МЕТОД ПРЕОБРАЗОВАНИЯ ИМПЕРАТИВНОГО КОДА ДЛЯ ПЛАТФОРМ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ

Авторы: 
В. С. Симонов*. М.С. Xaйpeтдинов*,**
УДК: 
004.89
DOI: 
10.24412/2073-0667-2023-3-68-80
Аннотация: 

 

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

В данной статье описывается формальный метод, результатом применения которого на им-перативном коде являются эквивалентные инструкции, пригодные для исполнения в системе параллельной обработки данных, например, Hadoop, реализующей парадигму MapReduce. Метод применяется для вывода высокоуровневой сводки, выраженной на нашем языке спецификации программы, которая затем компилируется для выполнения в Apache Spark [1]. Было показано, что метод позволяет преобразовать императивный код в пригодный для исполнения на платформе Apache Spark . Приведенные результаты выполняются в среднем в 3,3 раза быстрее, чем последовательные реализации, а также лучше масштабируются для больших наборов данных.

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

1.            Apache Spark. [Electron res.]: https://spark.apache.org. Accessed: 2023-01-19.

2.            Apache Hadoop. [Electron res.]: http://hadoop.apache.org. Accessed: 2023-01-19.

3.            Apache Storm. [Electron res.]: http://storm.apache.org. Accessed: 2023-01-19.

4.            GraphLab Create. [Electron res.]: https://dato.com/. Accessed: 2023-01-20.

5.            MongoDB [Electron res.]: https://www.mongodb.org. Accessed: 2023-01-19.

6.            Akidau T., Bradshaw R., Chambers C., Chernyak S., Fernandez-Moctezuma R. J., Lax R., McVeety S., Mills D., Berry F., Schmidt E., Whittle S. The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing // Proceedings of the VLDB Endowment 8, 2015. P. 1792-1803.

7.            TensorFlow. [Electron res.]: http://tensorflow.org/. Accessed: 2023-01-20.

8.            Ragan-Kelley J., Barnes C., Adams A., Paris S., Durand F., Amarasinghe S. Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines // Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2013. PLDIT3, ACM, New York, NY, USA. P. 519-530, DOL 10.1145/2491956.2462176.

9.            Apache Hive. [Electron res.]: http://hive.apache.org. Accessed: 2023-01-20.

10.          Solar-Lezama A., Arnold G., Tancau L., Bodik R., Saraswat V., Seshia S. Sketching Stencils // Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2007. PLDI ’07, ACM, New York, NY, USA. P. 167-178, DOI: 10.1145/1273442.1250754.

11.          Arvind K. Sujeeth A.K., Kevin J. Brown K. J., Lee H., Rompf T., Chafi H., Odersky M., Olukotun K. Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific. 2014. 

12.          Hoare С. A. R. An Axiomatic Basis for Computer Programming // Communications of the ACAI 12(10), 1969. P. 576-580, DOI: 10.1145/363235.363259.

13.          Cheung A., Solar-Lezama A., Madden S. Optimizing Database-backed Applications with Query Synthesis // Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2013. PLDI ’13, ACM, New York, NY, USA. P. 3-14, DOL 10.1145/2491956.2462180.

14.          Kamil S., Cheung A., Itzhaky S., Solar-Lezama A. Verified Lifting of Stencil Computations // SIGPLAN Not. 2016. 51(6), P. 711-726, DOL 10.1145/2980983.2908117.

15.          Radoi C., Fink S. J., Rabbah R., Sridharan M. Translating Imperative Code to MapReduce // Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA T4, 2014. ACM, New York, NY, USA. P. 909-927, DOL 10.1145/2660193.2660228.

16.          Ernst M. D., Perkins J.H., Guo P. J., McCamant S., Pacheco C., Tschantz M.S., Xiao C. The Daikon System for Dynamic Detection of Likely Invariants. Sci. Comput. Program. 2007.

17.          Srivastava S., Gulwani S. Program Verification Using Templates over Predicate Abstraction // Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation, ‘09, 2009. ACM, New York, NY, USA. P. 223-234, DOL 10.1145/1542476.1542501.

 

Ключевые слова: 
императивный код, параллельная обработка данных.
Номер журнала: 
3(60) 2023 г.
Год: 
2023
Адрес: 
*Новосибирский государственный технический университет, 630087, Новосибирск, Россия *,**Институт вычислительной математики и математической геофизики СО РАН, 630090, Новосибирск, Россия
Библиографическая ссылка: 
​​​​​​​Симонов В. С., Хайретдинов М. С. Метод преобразования императивного кода для платформ параллельной обработки данных //"Проблемы информатики", 2023, № 3, с. 68-80. DOI: 10.24412/2073-0667-2023-3-68-80.