NSM Mini-Course on

Concurrent Programming

July 25 -- 30, 2022


Home   |   Registration   |   Schedule   |   Speakers

Concurrent Programming is an upcoming area in Computer Science. In the recent past, chip manufacturers are moving towards simultaneous multi-threaded architectures because of their advantages in simultaneously utilizing and sharing multiple resources, such as ALUs, and memory hierarchy, etc. Currently, researchers and software engineers are focusing on scalable and energy-efficient algorithms for multi-threaded architectures. As a result, the role of Concurrent Programming in designing scalable and energy-efficient multi-threaded implementations is increasing.


Introduce fundamentals of concurrent programming and develop skills to implement efficient parallel programs.


  • Introduction to Concurrent Objects and Linearizability Concepts
  • Memory Consistency Models and Coherency Protocols
  • Synchronization Primitives: Locks and Barriers
  • Implementation of Locks: Mutex and Spin Locks
  • Synchronization Techniques: Coarse-grain, Fine-grain, Optimistic, Lazy, and Non-blocking
  • Implementation of Concurrent Data Structures: Stacks, Queues, Trees, Skiplists, and Hashing
  • Restructuring applications for Memory Hierarchies and Work Distribution

Who should attend?

  • Students interested in parallel programming
  • Practitioners working with parallel programming models
  • Instructors teaching parallel programming and data structures

What do I get from the workshop?

  • Understanding of the fundamental principles of concurrency
  • Pointers to tools and techniques for practical use
  • Possible research topics for further exploration
After successful completion of the workshop, a certificate will be awarded to each participant attending all the sessions.

Register Now.


Praveen Alapati

Mahindra Ecole Centrale

Saurabh Kalikar

Intel Labs

Kalyan T V

IIT Ropar

Debiprasanna Sahoo

IIT Roorkee

Powered by NSM Nodal Centre for Training in HPC and AI