Practical Aspects of Teaching Parallel Programming at the Lobachevsky University
摘要
In today's rapidly changing technological landscape, proficiency in parallel programming has become a critical skill for modern software developers. Modern desktop processors now feature dozens of cores, while server processors boast hundreds, and cluster computing systems are becoming ubiquitous. As a result, the demand for high-performance computing (HPC) software continues to grow, requiring not only knowledge of theoretical principles but also practical experience in parallel programming techniques. This article presents an academic course focused on parallel programming for both shared and distributed memory systems, developed at the Lobachevsky University and adapted for third-year students of the Institute of Information Technology, Mathematics and Mechanics. Designed to introduce students to the core technologies used in modern multicore and cluster parallel applications, the course emphasizes practical applications along with theoretical foundations. We describe the course structure, target audience, and relevance before delving into practical aspects including course content, project workflows, assessment methodologies, automated testing process, and real-world results achieved by students over the past few years.