Foundations of Parallel Programming

CSE101 , CSE102 ,CSE201

Constrained by the heat and power usage, today all computing devices are composed of multicore processors, with little or no increase in clock speed per core. In order to harness the power of the multicore processors, software applications being developed also needs to be parallelized. This makes parallel programming a very important paradigm of computing.This course introduces the fundamentals of parallel programming. It will cover both traditional approaches and new advancements in the area of parallel programming. A key aim of this course is to provide hands-on knowledge on parallel programming by writing parallel programs in different programming models taught in this course.

  1. Understand the fundamentals of parallel programming and different programming models for parallel programming that are supported by wide range of industry
  2. Write shared memory parallel programs using the traditional thread based approach, widely used OpenMP library and the modern asynchronous dynamic task programming model
  3. Write distributed memory parallel programs as well as hybrid distributed-shared memory parallel program
  4. Reason between the productivity and performance offered by different parallel programming models

Course Offering