WebGPU: A Scalable Online Development Platform for GPU Programming Courses

The popularity of computer science classes offered through Massive Open On-line Courses (MOOCs) creates both opportunities and challenges. Programming-based classes need to provide consistent development infrastructures that are both scalable and user friendly to students. The "Heterogeneous Parallel Programming" class offered through Coursera teaches GPU programming and encountered these problems. We developed WebGPU -- an online GPU development platform -- providing students with a user friendly scalable GPU computing platform throughout the course. It has been used as the CUDA, OpenACC, and OpenCL programming environment for large Coursera courses, short-running summer schools, and traditional semester-long graduate and undergraduate courses. WebGPU has since replaced our traditional development infrastructure for the GPU classes offered at UIUC. This paper presents the original, revised, and upcoming WebGPU designs that address the requirements and challenges of offering sophisticated computing resources to a large, quickly-varying number of students.

[1]  Sandra Gesing,et al.  Enhancing the Usability and Utilization of Accelerated Architectures via Docker , 2015, 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing (UCC).

[2]  Hong Lin Teaching Parallel and Distributed Computing Using a Cluster Computing Portal , 2013, 2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum.

[3]  Paul Roe,et al.  A Web Based Environment for Learning to Program , 2003, ACSC.

[4]  Brian E. Granger,et al.  IPython: A System for Interactive Scientific Computing , 2007, Computing in Science & Engineering.

[5]  I. E. Allen,et al.  Changing Course: Ten Years of Tracking Online Education in the United States. , 2013 .

[6]  Tomáš Dulík,et al.  Docker as Platform for Assignments Evaluation , 2015 .