The Use of The High-Performance Computing in The Learning Process

— The need for specialists with high-performance computing skills is growing day by day. This is due to the fact that the high-performance process of processing big data is one of the most pressing problems today. This is especially important in science, economics, physical modeling, medicine, bioinformatics, weather forecasting, etc. This article analyzes the conditions for teaching high-performance computing, the experience of leading universities in the world, and it is established that teaching high-performance computing requires study. High performance computing training was carried out on 3 different hardware equipment (a personal computer, a supercomputer “Param-Bilim” India – Kazakhstan Centre of Excellence in ICT [IKCOEICT] at L.N. Gumilyov Eurasian National University and a quantum computer in the cloud IBM Quantum Experience) using different algorithms in the C ++ and Phyton programming languages. The effectiveness of the calculation results in the educational process was determined as a result of the completed questionnaire. Paper Computing in The Learning Process hardware for teaching high-performance computing, and teaching high-performance computing.


Introduction
It is known that in the modern world great changes and innovations are taking place in the field of computer technology, computing systems and computation methods. Especially multi-core computing systems, clusters, supercomputers, client-server technologies [1] began to be used in all areas of education and science, economics and industry. Problem solving and learning methods are also changing, and computing systems and computation methods are improving. In this regard, it is necessary to periodically update the features of training in high-performance computing.
High Performance Computing (HPC) is now accepted as a key enabling technology for scientific and industrial research; the phrase 'To Out-Compute is to Out-Compete' having been coined in the early 2000's and reinforced since by European, Chinese, Japanese and American initiatives in this area [2].
hardware for teaching high-performance computing, and teaching high-performance computing.
Currently, in universities, while studying the discipline of programming, we have introduced into the educational process topics related to high performance, learning a language and programming methods that are effective in high-performance computing and have demonstrated how to use computational tools.

Literature review
Currently, a large number of research papers and textbooks on the use of highperformance computing in the educational process in higher education are published.
In the book, «High performance computing: Modern systems and practices» Sterling T., Anderson M., Brodowicz M. authors domain scientists will learn how to use supercomputers as a key tool in their quest for new knowledge [7].
In the article, «High Performance Computing education in an Indian engineering institute» authors discusses the evolution and continuous upgrading of the HPC courses along with the issues and challenges experienced [8].
In the work, «Setting up and implementation of the parallel computing cluster in education» the authors describe in detail the setting up and implementation of the parallel computing cluster for education in the MatlLab environment and how they solved the problems arising on this way [9].
In the paper, «Introducing High Performance Computing concepts into engineering undergraduate curriculum: A success story» the authors discusses the process of teaching and evaluating the students with respect to HPC concepts [10].
In the work «Model of education and training strategy for the high performance computing» the authors focuses on the issue of a high performance computing education based on systems such as grid, cloud, HPC cluster or systems with hybrid environments [11].
In the work «Jupyter notebooks and user-friendly HPC access» the authors discusses a basic understanding of high performance computing is critical even for undergraduate students. Authors give students their own personal HPC sandbox, including access to a fully functional, personalized Jupyter Notebook server [12].
In the paper «High-Performance Computing and Engineering Educational Development and Practice» the authors show unique perspectives and practical experiences on student capability, oriented toward HPC curricular development [13].
Analysis of scientific literature and Internet resources shows that high performance computing still requires scientific research in Higher education.

Materials and methods
High performance computing training in higher educational institutions has a number of features. Various programming languages can be used in teaching high performance computing. In the definition of high-performance computational features of each of the programming languages, there are the following scientific studies published earlier.
Authors of work «Library for evolutionary algorithms in Python (LEAP)» pose here a new Python-based EC framework that uses an established generalized unified approach to EA concepts [14].
In the paper «Speeding-up the odetta calculation code for solving particle transport problems», authors consider and analyze a parallel version of the ODETTA calculation code using the Message Passing Interface library technology [15].
In the paper «Private and rateless adaptive coded matrix-vector multiplication» authors develop a private and rateless adaptive coded computation (PRAC) algorithm for distributed matrix-vector multiplication by taking into account [16] the privacy requirements of IoT applications and devices, and [17] the heterogeneous and time-varying resources of edge devices. They show that PRAC outperforms known secure coded computing methods when resources are heterogeneous [18].
Computing has been advanced to HPC throughout the past decades. However, undergraduate students are still lacking of experience in how HPC functions, because curricula do not adequately cover HPC contents [19]. To solve this problem, we have included in the content of disciplines topics about high-performance computing hardware and the basics of working with them. which were implemented in the educational process. As a means of implementing our calculations were taken a personal computer, a supercomputer Kazakh-Indian Training Center for Information and Communication Technologies, Param-Bilim IKCEICT in Eurasian National University L. N. Gumilyov and a 5-qubit quantum computer in the cloud IBM Quantum Experience.

Param bilim HPC facility is based on indigenous technologies developed by C-DAC.
The HPC facility includes the nodes equipped with 5110p Xeon Phi, nVidia K20X Card, NAS storage with 20 TB of usable storage space and RCS cards. The facility has HPC Portal 'CHReME' for resource management and 'ONAMA' for scientific and engineering applications installation and execution. It will have applications ported in broad areas like Weather Forecasting and Bioinformatics [20]. 3. IBM Quantum Experience -it is an online platform that provides users with cloudbased access to the most advanced quantum computers [21].
All calculations were performed on this hardware using various algorithms and the results were compared.

Results of research
In the experiment on the introduction of high-performance computing in the educational process, took part the students of L. N. Gumilyov Eurasian National University on the educational program of the Bachelor of Informatics and Shakarim University on the educational programs of the Bachelor of Information Systems and Computer Engineering and Software. The number of respondents is about 100 people. The content of several courses of these educational programs is supplemented by several topics on high-performance computing.
In the syllabus of the course "Algorithmization and Programming" on the educational program informatics of L.N. Gumilyov Eurasian National University introduced topics: methods of sorting arrays, high-performance methods of sorting arrays, methods for calculating a definite integral (number pi), multiplying a matrix by a vector, increasing the speed of multiplying a matrix by a vector using the vectorization method.
For these topics in the educational process, task programs were developed on C ++ и Python, the results were compared, effective algorithms and programming environment were determined.
Depending on the type of task, a high-performance programming language, hardware, and an efficient method were selected. As one of such problems in our article, we gave several options for calculating the value of a definite integral (known number pi) up to 10,000 characters and indicated a rational method, an efficient algorithm and a programming language. The calculations were carried out on several computing devices.
We can say that calculating the value of a definite integral (number pi) up to a trillion symbols has no significant practical value. It turns out, that to launch a rocket, the value of the number pi up to 15 characters [22] is enough. However, improving its calculating formula, the value of offering up to a trillion characters, install world records in computing its value.
The most accurate alue of pi is 50 trillion digits, and was achieved by Timothy Mullicam on 29 January 2020 [23].
There are many known ways to determine the value of a definite integral (pi), such as the Bailey-Borwein-Plouffe method, the Chudnovsky method, the Monte Carlo's method, the Bellard's method, etc. In our article, we examined several of these methods and identified an effective algorithm. First, the calculations were carried out in languages С++ и Python using the formula Bailey-Borwein-Plouffe We noticed that a program written in C ++ according to a given algorithm can calculate the value of a definite integral (pi) only up to 48 characters, bur in language Python up to 10,000 characters. However, it should be noted that C++ is a more productive language than Python.
At the second stage, the calculations were performed first on a personal computer (figure 1).

Fig. 1. Computing in language Python on a personal computer and its result (n=100)
Then the calculations were carried out on the second hardware -a supercomputer «Param-Bilim» of Eurasian National University L. N. Gumilyov. Its use was organized remotely. Due to the current pandemic, faculty members have been given VPN access to use university resources for their discipline. Thus, we were able to connect to a supercomputer.
For working with a supercomputer Param-Bilim as a program that provides work with the server, was used Putty. It allows you to Linux connect to the server using the protocol SSH (figure 2):  The third hardware is a quantum computer located on a cloud platform IBM Quantum Experience. There, the calculations were carried out using Quantum lab. First, we register on the cloud platform IBM Quantum Experience and go to the section Quantum lab (figure 5). Results of calculations performed on a personal computer, supercomputer and quantum computer located in the cloud on an online platform IBM Quantum Experiences, are presented in the following tables (table 1, table 2).  Comparison of the results of finding the value of a definite integral (number pi) up to 10,000 characters on a personal computer and a quantum computer is represented by a diagram ( figure 7). (2) In our case, we compared the results of the Bailey-Borwein-Plouffe and Bellard algorithms, and note that the Bailey-Borwein-Plouffe algorithm is fast on both hardware. (table 3). Comparing the above results (figure 8), you can notice that the speed of a quantum computer located in the cloud on an online platform IBM Quantum Experience higher than a personal computer. So, in our case, a quantum computer has become an effective hardware tool. As the result of the calculation showed, as the value of n increased, the speed coefficient also increased. In our case, with a value of n = 10000, the speed factor was 4. The most efficient of the two algorithms was the Bailey-Borwein-Plouffe algorithm.
Apart from these methods, at the we have shown a vectorization method for calculating the multiplication of matrices by a vector.
When studying the discipline "Algorithmization and Programming" to calculate a definite integral (number pi), sorting algorithms by bubble method, Shell and Hoare sorting (quick sort), applications of the vectorization method for calculating the multiplication of a matrix by a vector we used 3 hardware devices.

Discussions and conclusions
As a result of the set goal of "Determining the theoretical foundations and practical implementation of the training of future specialists in the field of information technology for high-performance calculations": 1. The conditions for teaching high-performance computing, the experience of the world's leading universities and scientific papers published in research journals with a high rating are analyzed. As a result, it was found that learning high performance computing requires learning; 2. It was found that in higher educational institutions it is possible to use various hardware equipment used in teaching high-performance computing, as well as various programming languages. As a result, methods were chosen for constructing programs using 3 different hardware equipment for the educational process, using various high-performance computing algorithms in the C ++ and Phyton programming languages; 3. In the content of the discipline "Algorithmization and Programming" of L.N.
Gumilyov Eurasian National University themes included: methods for sorting arrays, high-performance methods for sorting arrays, methods for calculating a definite integral (number pi), multiplying a matrix by a vector, increasing the speed of multiplying a matrix by a vector using the vectorization method. Shows how to use a personal computer, a Param-Bilim supercomputer and a quantum computer on the IBM Quantum Experience cloud platform in the educational process.
Based on the results of the survey, it was found that the method of teaching highperformance computing is effective.