Programming with oneAPI: New Course Heterogenious Computing
DOI:
https://doi.org/10.14529/cmse220303Keywords:
education, high performance computing, parallel programming, heterogeneous computing systems, Data Parallel C , SYCLAbstract
Modern high-performance computing systems are mostly heterogeneous. The development of parallel programs that can use the full potential of such systems is fraught with significant difficulties. It is required not only to use the appropriate programming languages and technologies, but also to take into account the features of central and graphic processors that affect, among other things, the implementation of parallel schemes and memory management. The oneAPI heterogeneous programming model presented by Intel is aimed at simplifying the process of developing such programs, and its key component is the Data Parallel C ++ language, which allows developing portable high-performance programs for CPU, GPU, FPGA and other devices. The article presents a training course on oneAPI, developed at the Lobachevsky University. The course is aimed at studying a wide range of issues related to high-performance computing using models, methods and tools for parallel programming on Intel platforms. The article presents the concept of the course, describes its structure, categories of listeners who may be interested in it, and options for building a course depending on the level of preparation of the audience.References
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).


