Учебный курс "Программирование с использованием модели oneAPI"

Александр Владимирович Сысоев, Антон Валерьевич Горшков, Валентин Дмитриевич Волокитин, Наталья Валерьевна Шестакова, Иосиф Борисович Мееров

Аннотация


Современные высокопроизводительные вычислительные системы в массе своей являются гетерогенными. Разработка параллельных программ, способных использовать весь потенциал таких систем, сопряжена со значительными сложностями — требуется не только применять соответствующие языки и технологии программирования, но и учитывать особенности центральных и графических процессоров, влияющие в том числе на схемы организации параллелизма и работу с памятью. На упрощение процесса разработки таких программ направлена модель гетерогенного программирования oneAPI, представленная компанией Intel, и ее ключевой компонент — язык Data Parallel C++, позволяющий разрабатывать переносимые высокопроизводительные программы для CPU, GPU, FPGA и других устройств. В статье представлен учебный курс по oneAPI, разработанный в ННГУ им. Н. И. Лобачевского. Курс направлен на изучение широкого спектра вопросов, связанных с высокопроизводительными вычислениями с использованием моделей, методов и инструментов параллельного программирования на платформах Intel. В статье представлена концепция курса, описана его структура, категории слушателей, которым он может быть интересен, и варианты построения курса в зависимости от уровня подготовки аудитории.

Ключевые слова


образование; высокопроизводительные вычисления; параллельное программирование; гетерогенные вычислительные системы; Data Parallel C++; SYCL

Полный текст:

PDF

Литература


Reinders J., Ashbaugh B., Brodman J., et al. Data Parallel C++ Mastering: DPC++ for Programming of Heterogeneous Systems using C++ and SYCL. Apress Berkeley, CA, 2021. 548 p. DOI: 10.1007/978-1-4842-5574-2.

Voevodin V.V. Parallel Computing and Mathematics Education. Mathematics in higher education. 2005. Vol. 3. P. 9–26. URL: https://www.mathedu.ru/text/mvo_2005_3/p9/ (in Russian).

Nevison C.H. Parallel computing in the undergraduate curriculum. Computer. 1995. Vol. 28, no. 12. P. 51–56. DOI: 10.1109/2.476199.

El-Rewini H., Lewis T.G. Distributed and parallel computing. Manning Publications Co., 1998.

Crichlow J.M. An introduction to distributed and parallel computing. Prentice-Hall, 1988.

Grama A., Gupta A., Karypis G., Kumar V. Introduction to parallel computing. Addison-Wesley, 2003. 664 p.

Zymbler M.L., Sokolinsky L.B., Lepihov A.V. Prototyping a Parallel DBMS as the Basis for a Training Course on Parallel Database Systems. Supercomputer systems and their applications. 2004. P. 212–217. (in Russian).

Sokolinsky L.B., Zymbler M.L. Training course "Parallel database systems". URL: https://pdbs.susu.ru/CourseManual.html (accessed: 14.09.2022) (in Russian).

Billig V.A. Parallel Computing and Multithreaded Programming. Moscow: INTUIT, 2016. (in Russian).

Gergel V.P. High performance computing for multiprocessor multicore systems. Moscow: Moscow University Press, 2010. 534 p. (in Russian).

Barkalov K.A., Meyerov I.B., Bastrakov S.I. About the experience of developing and teaching the course of lectures "Parallel Numerical Methods". Russian Supercomputer Days in Russia: Proceedings of the international conference, September 28–29, 2015. Moscow: Moscow State University, 2015. P. 772–775. (in Russian).

Antonov A.S., Voevodin V.V., Popova N.N. Parallel structure of algorithms and training of specialists in computing technologies. Actual problems of applied mathematics, informatics and mechanics. 2017. P. 4–11. (in Russian).

Plaksin M.A. On propaedeutics of parallel computing in school informatics. Computer science and education. 2016. No. 10. P. 27–36. (in Russian).

Antonov A.S., Voevodin V.V., Gergel V.P., Sokolinsky L.B. A systematic approach to supercomputing education. Bulletin of the South Ural State University. Computational Mathematics and Software Engineering. 2013. Vol. 2, no. 2. P. 5–17. (in Russian) DOI: 10.14529/cmse130201.

Voevodin V.V., Gergel V.P., Sokolinsky L.B., et al. Development of the system of supercomputer education in Russia: current results and prospects. Bulletin of the Nizhny Novgorod University. 2013. Vol. 2, no. 2. P. 203–209. (in Russian).

Voevodin V.V., Gergel V.P. Supercomputer education: the third component of supercomputer technologies. Computational methods and programming. 2010. Vol. 11. P. 117–122. (in Russian).

Gergel V.P., Demkin V.P., Konkov K.A., et al. Project "Supercomputer Education": 2012. Bulletin of the Nizhny Novgorod University. 2013. No. 1(1). P. 12–16. (in Russian).

Fuentes J., López D., González S. Teaching Heterogeneous Computing Using DPC++. IEEE International Parallel and Distributed Processing Symposium, IPDPS Workshops 2022, Lyon, France, May 30 - June 3, 2022. IEEE, 2022. P. 354–360. DOI: 10.1109/ipdpsw55747.2022.00069.

Heterogeneous programming with SYCL. URL: https://enccs.github.io/sycl-workshop/ (accessed: 14.09.2022).

Vladimirov K. A brief overview of modern heterogeneous programming in OpenCL and SYCL, as well as extensions from Intel that are part of DPC++. URL: https://www.youtube.com/watch?v=fAVOPJLu2qA (accessed: 14.09.2022) (in Russian).

SYCL Training. URL: https://www.codeplay.com/solutions/sycl- training/ (accessed: 14.09.2022).

Stroustrup B. The C++ Programming Language (4th Edition). Addison-Wesley, 2013. 1376 p.

Josuttis N.M. The C++ Standard Library – A Tutorial and Reference, second edition. Addison-Wesley, 2012. 1136 p.

C++ FAQ. URL: https://isocpp.org/wiki/faq (accessed: 14.09.2022).

Patterson D., Hennessy J. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 2011. 856 p.

Tanenbaum A. Structured Computer Organization. Pearson, 2012. 704 p.

Tanenbaum A., Bos H. Modern Operating Systems. Pearson, 2014. 1136 p.

Konkov K., Karpov V. Fundamentals of operating systems: a course of lectures: a textbook for universities. NOU INTUIT, 2016. (in Russian).

Hi-Chi. URL: https://github.com/hi-chi/pyHiChi (accessed: 14.09.2022).

About project. URL: http://hpc-education.unn.ru/en/research/overview/laserplasma (accessed: 14.09.2022).

Volokitin V., Bashinov A.V., Efimenko E., et al. High Performance Implementation of Boris Particle Pusher on DPC++. A First Look at oneAPI. Parallel Computing Technologies - 16th International Conference, PaCT 2021, Kaliningrad, Russia, September 13-18, 2021, Proceedings. Vol. 12942 / ed. by V. Malyshkin. Springer, 2021. P. 288–300. Lecture Notes in Computer Science. DOI: 10.1007/978-3-030-86359-3_22.

Meyerov I.B., Sysoyev A., Pirova A., et al. Bridging the Gap Between Applications and Supercomputing: A New Master’s Program in Computational Science. Supercomputing - 5th Russian Supercomputing Days, RuSCDays 2019, Moscow, Russia, September 23-24, 2019, Revised Selected Papers. Vol. 1129 / ed. by V.V. Voevodin, S. Sobolev. Springer, 2019. P. 529–541. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_43.

Programming with oneAPI. URL: https://hpc-education.unn.ru/ru/центр-компетенций-oneapi-в-ннгу/курс-oneapi (accessed: 14.09.2022) (in Russian).

Programming with oneAPI. URL: https://hpc- education.unn.ru/en/the- oneapicenter-of-excellence/programming-with-oneapi (accessed: 14.09.2022).




DOI: http://dx.doi.org/10.14529/cmse220303