PRMP

CSE513 OVERVIEW

Computing hardware is becoming more and more complex. Today and in the foreseeable future, performance will be delivered principally by increased hardware parallelism. Modern multicore processors scale to over one hundred cores, have wide vector units, maintain a complex memory hierarchy and even share the memory with accelerators such as GPU. Conventional programming models using threads impose significant complexity to organize code into multiple threads of control and balance work amongst threads to ensure proper utilization of computing resources. This shortcoming has helped the advent of parallel runtimes that assist the programmer by efficiently scheduling the parallel tasks over available resources. This course introduces the design and implementation of such a parallel runtime and explores the challenges in achieving performance and energy efficiency over modern processors. This course is offered in the spring semester at IIIT Delhi for undergraduate and postgraduate students. Students interested in taking this course should have prior experience with C/C++ programming.


LECTURE TOPICS



  1. Introduction to the course [PDF]
  2. Introduction to parallel programming [PDF]
  3. Parallel runtime systems [PDF]
  4. Context switching inside the user space [PDF]
  5. Boost fibers and Argobots [PDF]
  6. Managing overheads from blocking tasks & deques [PDF]
  7. Controlling task granularity [PDF]
  8. Introduction to memory consistency [PDF]
  9. Hardware memory consistency [PDF]
  10. Language memory model [PDF]
  11. Non Uniform Memory Access architecture [PDF]
  12. Recursive task parallelism on NUMA architecture [PDF]
  13. Trace and replay of task parallel programs [PDF]
  14. Mid semester review [PDF]
  15. Parallel programming using SIMD vector units [PDF]
  16. Introduction to GPU computing [PDF]
  17. Heterogeneous parallel programming [PDF]
  18. Power management in multicore processors [PDF]
  19. Cache coherency [PDF]
  20. False sharing [PDF]
  21. Resilience in the exascale era [PDF]
  22. Runtime techniques for data race detection
  23. End semester review [PDF]
  24. Research seminar-1
  25. Research seminar-2

ASSESSMENT PLAN



  • Pair programming based project (50%)
    The project is released after week two and runs throughout the semester. These projects teach runtime techniques for achieving performance and energy efficiency over modern processors for task-based parallel programming models.
  • Quizzes (10%)
    Quizzes happen roughly after every six lectures. Each quiz is of 20 minutes duration and is scheduled during the lecture hours towards the end of the lecture. The quiz consists of multiple-choice questions, fill in the blanks, and reasoning based questions.
  • Midterm exam (20%)
  • Endterm exam (20%)

HELPFUL RESOURCES


PAST OFFERINGS


INSTRUCTOR

Vivek Kumar

Copyright © Vivek Kumar