Метод преобразования императивного кода для платформ параллельной обработки данных

Бесплатный доступ

Существует множество платформ для обработки данных, которые позволяют последовательным программам получать доступ к возможностям параллельной обработки. Чтобы извлечь выгоду из преимуществ таких платформ, существующий код приходится переписывать на языки, специфичные для конкретной предметной области, которые поддерживает каждая платформа. Данное преобразование - утомительный и подверженный ошибкам процесс - также требует от разработчиков выбора нужной платформы, которая оптимизирует производительность с учетом конкретной рабочей нагрузки. В данной статье описывается формальный метод, результатом применения которого на императивном коде являются эквивалентные инструкции, пригодные для исполнения в системе параллельной обработки данных, например, 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.
Еще
Статья научная