Teaching Parallel Computing Online with MATLAB
By Chiranjoy Chattopadhyay, Indian Institute of Technology Jodhpur
Second-year post-graduate students in the Department of Computer Science and Engineering at IIT Jodhpur are required to take a foundation course on computer architecture. Students learn about the components in modern computer systems, use benchmark data to compare performance across systems, and develop the skills needed to write, debug, and execute parallel programs on GPUs.
Last spring, when we were more than halfway through the course, the COVID-19 lockdown began. Like other instructors at IIT Jodhpur and around the world, I suddenly found myself having to adapt a course designed for in-person attendance to distance and online learning.
I implemented a strategy based on MATLAB Online™ for browser-based access to MATLAB®, MATLAB Onramp for self-paced online training, and MATLAB Grader™ for automated grading of programming assignments. This combination of tools, training, and technology enabled the students to achieve all learning outcomes for the course: An overwhelming majority reported that, despite the extraordinary circumstances imposed by the pandemic, they now understood the usefulness of parallel computing and the kinds of problems it can help solve.
Establishing Baseline MATLAB Skills
The computer architecture course, which can be taken as an elective by undergraduates, attracts students from a wide range of backgrounds. When it transitioned to online learning, I needed to ensure that every student had a baseline proficiency in MATLAB. To address this need, I asked the students to spend a week completing self-paced online training courses. Students who were new to MATLAB learned the basics with MATLAB Onramp. Once they were comfortable with simple MATLAB coding, they completed additional MATLAB online training courses, including Introduction to Linear Algebra with MATLAB, in which they learned to solve systems of linear equations and perform eigenvalue decomposition, and Solving Ordinary Differential Equations with MATLAB, in which they learned to numerically solve ODEs.
My students come from many different regions across India. When they returned home following the lockdown, some had only limited internet access and slow or unreliable connections while others had no connectivity issues. Because IIT Jodhpur has a Campus-Wide License, however, they all had access to MATLAB and MATLAB Online. Students with faster internet connections could download and install MATLAB directly on their laptops. Those with poor connections could access MATLAB from a browser via MATLAB Online, which requires no installation or downloads.
Using either MATLAB or MATLAB Online, the students completed assignments on parallel programming and technical computing. I worked with the MathWorks team to build these interactive assignments in MATLAB Grader, which automatically graded the code that the students submitted. In addition to saving me time, the automated grading provided students with instant feedback, enabling them to assess their own progress.
Delivering a Virtual Workshop
My original plan for the course included a workshop to explain the theoretical foundations of parallel programming, and lab sessions for the students to complete hands-on parallel programming exercises. After the lockdown, we replaced the in-person lab sessions with virtual lab sessions conducted via WebEx.
Over three consecutive days, students learned how to perform computationally intensive operations in parallel on multicore workstations, GPUs, clusters, and clouds using Parallel Computing Toolbox™ and MATLAB Parallel Server™. Topics covered included using
parsim to parallelize tasks and scaling up parallel computing to Amazon Web Services using the MathWorks Cloud Center. The workshop also covered parallel computing in the context of deep learning, including the implementation of deep learning techniques for image processing on GPUs and multicore processors.
Evaluating the Transition to Online Learning and Preparing for More
During the course, students told me that they were happy overall with the transition to online learning. These reports were confirmed by a follow-up survey in which students expressed near-unanimous agreement on the usefulness of MATLAB online training resources and MATLAB Grader (Figure 1).
For the current academic year, IIT Jodhpur has committed fully to online learning—all classes are now taught completely online. My colleagues and I learned invaluable lessons from our initial transition, including the importance of supporting students from different backgrounds who rely on internet connections of widely varying quality. Our department is using MATLAB Online, MATLAB Grader, and MATLAB online training to teach machine learning, signal processing, and other topics. I have also used MATLAB online training for a course on data visualization in the Digital Humanities program; I’ve found that even students with no background in computer science learn from and complete the training courses successfully. Perhaps the biggest realization we’ve come to is that during a lockdown, learning objectives do not need to change, as long as you adapt to the situation by implementing the right infrastructure and tools.