Teaching Parallel Programming Using Java
Aamir Shafi, Aleem Akhtar, Ansar Javed, Bryan Carpenter

TL;DR
This paper describes a course that teaches parallel programming to final year students using Java, covering shared and distributed memory systems, and advanced topics like MapReduce and GPGPU.
Contribution
It introduces a comprehensive Java-based curriculum for parallel programming, integrating practical tools and techniques for shared and distributed systems.
Findings
Students gained hands-on experience with Java threads and MPI.
The course successfully integrated advanced topics like Hadoop and GPGPU.
The approach facilitated practical understanding of parallel computing concepts.
Abstract
This paper presents an overview of the "Applied Parallel Computing" course taught to final year Software Engineering undergraduate students in Spring 2014 at NUST, Pakistan. The main objective of the course was to introduce practical parallel programming tools and techniques for shared and distributed memory concurrent systems. A unique aspect of the course was that Java was used as the principle programming language. The course was divided into three sections. The first section covered parallel programming techniques for shared memory systems that include multicore and Symmetric Multi-Processor (SMP) systems. In this section, Java threads was taught as a viable programming API for such systems. The second section was dedicated to parallel programming tools meant for distributed memory systems including clusters and network of computers. We used MPJ Express-a Java MPI library-for…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
