Метод преобразования императивного кода для платформ параллельной обработки данных
Автор: Симонов В.С., Хайретдинов М.С.
Журнал: Проблемы информатики @problem-info
Рубрика: Параллельное системное программирование и вычислительные технологии
Статья в выпуске: 3 (60), 2023 года.
Бесплатный доступ
Существует множество платформ для обработки данных, которые позволяют последовательным программам получать доступ к возможностям параллельной обработки. Чтобы извлечь выгоду из преимуществ таких платформ, существующий код приходится переписывать на языки, специфичные для конкретной предметной области, которые поддерживает каждая платформа. Данное преобразование - утомительный и подверженный ошибкам процесс - также требует от разработчиков выбора нужной платформы, которая оптимизирует производительность с учетом конкретной рабочей нагрузки. В данной статье описывается формальный метод, результатом применения которого на императивном коде являются эквивалентные инструкции, пригодные для исполнения в системе параллельной обработки данных, например, Hadoop, реализующей парадигму MapReduce. Метод применяется для вывода высокоуровневой сводки, выраженной на нашем языке спецификации программы, которая затем компилируется для выполнения в Apache Spark [1]. Было показано, что метод позволяет преобразовать императивный код в пригодный для исполнения на платформе Apache Spark. Приведенные результаты выполняются в среднем в 3,3 раза быстрее, чем последовательные реализации, а также лучше масштабируются для больших наборов данных.
Императивный код, параллельная обработка данных
Короткий адрес: https://sciup.org/143181008
IDR: 143181008 | DOI: 10.24412/2073-0667-2023-3-68-80
Список литературы Метод преобразования императивного кода для платформ параллельной обработки данных
- Apache Spark. [Electron res.]: https://spark.apache.org. Accessed: 2023-01-19.
- Apache Hadoop. [Electron res.]: http://hadoop.apache.org. Accessed: 2023-01-19.
- Apache Storm. [Electron res.]: http://storm.apache.org. Accessed: 2023-01-19.
- GraphLab Create. [Electron res.]: https://dato.com/. Accessed: 2023-01-20.
- MongoDB [Electron res.]: https://www.mongodb.org. Accessed: 2023-01-19.
- 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.
- TensorFlow. [Electron res.]: http://tensorflow.org/. Accessed: 2023-01-20.
- 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.
- Apache Hive. [Electron res.]: http://hive.apache.org. Accessed: 2023-01-20.
- 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.
- 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.
- Hoare С. A. R. An Axiomatic Basis for Computer Programming // Communications of the ACAI 12(10), 1969. P. 576-580, DOI: 10.1145/363235.363259.
- 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.
- 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.
- 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.
- 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.
- 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.