Teaching parallel programming using Java

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...

Full description

Saved in:
Bibliographic Details
Published in:2014 Workshop on Education for High Performance Computing pp. 56 - 63
Main Authors: Shafi, Aamir, Akhtar, Aleem, Javed, Ansar, Carpenter, Bryan
Format: Conference Proceeding
Language:English
Published: Piscataway, NJ, USA IEEE Press 16.11.2014
IEEE
Series:ACM Conferences
Subjects:
ISBN:9781479970216, 1479970212
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary: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 including multicore and Symmetric Multi-Processor (SMP) systems. In this section, Java threads API was taught as a viable programming model 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 conducting programming assignments and lab work for this section. The third and the final section introduced advanced topics including the MapReduce programming model using Hadoop and the General Purpose Computing on Graphics Processing Units (GPGPU).
ISBN:9781479970216
1479970212
DOI:10.1109/EduHPC.2014.7