Workshop on “Parallel Programming Concepts”
Today, multithreading is a core technology on the basis of software projects in any branch of applied computer science. Multi-core machines are now common and we can no longer expect clock speeds or transistor densities to increase by orders of magnitude. The price of computation will continue to fall due to parallelism and we need to find a way to take advantage of this. Computers are now heavily networked and success of modern applications heavily rely on the ability to fetch rich information from a variety of sources through multithreading. In this context, a workshop titled “Parallel Programming Concepts” was held at CCSE, IUB during 16-17 June 2017 and the participants were introduced to the basics of parallel computing.
The workshop started with a brief overview, concepts and terminology associated with parallel computing. Major parallel memory architectures and programming models were then explored. These were followed by a discussion on issues related to designing parallel programs. Finally dedicated time was spent on examining how to parallelize different types of serial programs. While developing parallel hotspots in parallel programs, special emphasis was given on how to decompose task and/or data and achieve parallelism: a) through Shared Memory Architecture by writing multithreaded parallel programs using OpenMP compiler directives and related library routines, and b) through parallel cluster having Distributed Memory Architecture using Message Passing Interface (MPI). A hands-on approach was followed and the participants were engaged in analyzing problems and finding solutions by developing, writing and executing their own parallel codes.
Watch event pictures::