DIGITAL LIBRARY
AUTO-GENERATION OF PROGRAMMING EXERCISES FOR EDUCATION OF MPI AND AVX PARALLEL PROGRAMMING
1 Konan University (JAPAN)
2 Hannan University (JAPAN)
About this paper:
Appears in: INTED2023 Proceedings
Publication year: 2023
Pages: 841-849
ISBN: 978-84-09-49026-4
ISSN: 2340-1079
doi: 10.21125/inted.2023.0261
Conference name: 17th International Technology, Education and Development Conference
Dates: 6-8 March, 2023
Location: Valencia, Spain
Abstract:
As semiconductor technology advances, parallel systems using parallel programming environments such as AVX and MPI are becoming popular in many application fields. Not only knowledge of many APIs and their usage, but also a lot of practical programming experience including inter-computer data transfer is necessary for beginners to master parallel programming. To cope with such a problem, we develop the three educational exercises for parallel programming.

The important issues of parallel programming education include grammatical knowledge such as the functions and APIs. First, debugging exercises are provided to improve your understanding of the syntax, such as understanding APIs and removing syntax-related program bugs, thereby improving your programming comprehension. Second, in order to write appropriate programs for parallel computers using MPI and AVX, it is essential to understand SIMD programming and how to write programs that transfer data between computation nodes in distributed memory systems. To improve these capabilities, an output estimation exercise is provided. The output estimation exercise is to estimate the data transfer and SIMD calculation results of an MPI program by simply looking at the program without actually executing it. Finally, a comprehensive programming exercise on both syntactic and semantic comprehension is performed with fill-in-the-blank questions in order to improve overall parallel programming skills. The integration exercises are fill-in-the-blank questions. This makes it easy to perform exercises repeatedly.

To evaluate for AVX programming education, the class will be divided into the two groups (Regular class and Flipped class). Fortunately, there is no apparent difference between the results, that is, the flipped class is not inferior to the normal class. If preliminary study of the flipped class is carried out at home in advance, students perform their programming projects in at most 180 minutes, and they can try to solve a higher-level programming project at the class.

The experiment to evaluate the effectiveness of our system in MPI programming education will be conducted in the following four steps.
1) Preparatory study with video material with audio to learn about MPI,
2) Pre-test to assess the level of prior understanding,
3) Programming exercises using web tools (fill-in-the-blank questions). and
4) Post-test to measure post-test level of understanding. The post-test results showed that 4 out of 6 correct answers were equal to or better than the pretest, confirming the improvement in MPI comprehension and the effectiveness of this web tool (fill-in-the-blank questions).

Experiments with electronic teaching materials and web applications confirmed the effectiveness of the system in supporting AVX and MPI. We confirmed that the system is useful for beginners to learn many types of parallel programming. Our future work is to extend our system so that it can be applied to other practical parallel programming learning systems and evaluate its learning effectiveness. We also plan to extend the system to the latest programming environments, such as artificial intelligence, to contribute to further progress in programming and software education.
Keywords:
PHP, web application, flipped teaching, parallel processing, MOOC.