Speedcode: Software performance engineering education via Coding of didactic exercises

Published in the 14th NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-24), in conjunction with IPDPS 2024, 2024

This paper introduces Speedcode, an online programming platform that aims to improve the accessibility of software performance-engineering education. At its core, Speedcode provides a platform that lets users gain hands-on experience in software performance engineering and parallel programming by completing short programming exercises. Speedcode challenges users to develop fast multicore solutions for short programming problems and evaluates their code’s performance and scalability in a quiesced cloud environment. Speedcode supports parallel programming using OpenCilk, a task-parallel computing platform that is open-source and easy to program, teach and use for research. Speedcode aims to reduce barriers to learning and teaching software performance engineering. It allows users to run and evaluate their code on modern multicore machines from their own computer without installing any software. This provides users an easy introduction to the topic, and enables teachers to more easily incorporate lessons on software performance engineering into their courses without incurring the onerous overhead of needing to setup computing environments for their students.

Recommended citation: Tim Kaler, Xuhao Chen, Brian Wheatman, Dorothy Curtis, Bruce Hoppe, Tao B. Schardl, and Charles E. Leiserson, Speedcode: Software performance engineering education via Coding of didactic exercises, 14th NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-24), in conjunction with IPDPS 2024.
Download Paper