Students utilize CARC resources through Parallel Processing course
By Mariah Rosales
Parallel processing is a method used in computer science to speed up the execution of tasks by dividing them into smaller parts and processing these parts simultaneously. This is a process that allows computers to tackle complex problems more efficiently and quickly, making it an essential tool for various applications in our daily lives, such as video editing, gaming, and scientific simulations. Introduction to Parallel Processing (CS442/542) is a course offered every other Fall semester at the University of New Mexico. The course enables students to grasp the complexities of parallel processing while using resources from the Center for Advanced Research Computing (CARC).
UNM Computer Science Assistant Professor Amanda Bienz currently teaches the Introduction to Parallel Processing course in-person at UNM’s main campus. CARC systems are used in Bienz’s course, and students attend a CARC workshop on the basics of supercomputers. Students use Wheeler for programming assignments and to complete homework. They are required to write code and describe their code’s performance in an essay. However, Xena and Hopper have also been used in previous student projects.
In his role supporting users at CARC, UNM Computer Science Research Assistant Professor Matthew Fricke regularly teaches high performance and parallel computing workshops, including the one that supported the Introduction to Parallel Processing course. Fricke taught more than 20 workshops in the past year for academic courses ranging from Computational Immunology to Radio Astronomy as well as workshops for the general CARC research community. “High performance computing can be daunting at first. The workshops we offer allow CARC users to overcome the initial HPC learning curve and focus on their research.” says Fricke.
Introduction to Parallel Processing is a senior and graduate-level class that focuses on parallel programming systems for various computing architectures such as shared memory machines, distributed memory machines, co-processor systems like GPUs, and big data systems. The course emphasizes understanding, reasoning about, and optimizing the way parallel and big data programs are mapped to their respective computing systems. Topics covered in the class include parallel architectures and classifications, parallel performance models and laws, parallel toolchains and runtime systems, programming motifs and patterns, different programming paradigms, threads-based parallelism on modern CPUs, message/process-based parallelism on clusters, tools for program and system performance analysis and more. The course primarily focuses on scientific computing problems but also introduces students to recent parallel informatics and data processing techniques and systems when possible.
Parallel processing has become increasingly important in today's technology-driven world due to the exponential growth of data and the need for efficient processing. It enables developers to harness the full potential of modern hardware architectures, which are designed with multiple cores and processors. As a result, parallel processing helps industries optimize operations, researchers advance scientific discoveries, and consumers enjoy improved user experiences across a wide range of applications and devices.
Ahsan Ali, a UNM Mathematics & Statistics PhD student, completed Bienz’s Introduction to Parallel Processing course in Fall 2022. “Parallel processing opened up a whole new world for me. It's incredible how efficiently we can solve complex problems by breaking them down into smaller tasks and working on them simultaneously. I enjoyed the hands-on approach and the satisfaction of seeing my code run,” says Ali.
This course offers a variety of benefits, one of the most important being the resources that are provided to the students. Throughout this course, students are exposed to cutting-edge research and technology, like supercomputers, which are essential tools in various scientific fields.
Students are also provided with resources such as visiting lectures that create future opportunities. Bienz says “The big thing is that we set students up to be qualified to work closely with the national labs.” Collaborating with national labs allows students to work with leading experts in their respective fields, enhancing their learning process and understanding of complex concepts, which can also lead to valuable connections and more extensive references for future employment or academic pursuits. This practical experience is invaluable when transitioning from an academic environment to a professional one, as it helps build a more robust and well-rounded skill set. Providing resources and access to opportunities at national labs empowers students to gain hands-on experience, expand their professional network, enhance their understanding of complex subjects, develop essential skills and improve their career prospects.
UNM Mechanical Engineering PhD candidate Mohamed Abuhegazy, who also took the course, says “I would highly recommend taking an introduction to parallel processing course because it gives you a solid understanding of how multiple processors can work together to solve complex problems more efficiently. It's an essential skill for anyone interested in high-performance computing or working with large data sets. The Center for Advanced Research Computing plays a crucial role in this course by providing access to cutting-edge resources, expert guidance, and a collaborative environment where students can learn and grow together.”
Introduction to Parallel Processing is expected to be offered again in Fall 2024.