To write code that runs on all these cores simultaneously, software engineers use a technique called parallel programming - and a high-level model called OpenACC makes it easier. Now, Sunita Chandrasekaran, an assistant professor of computer and information sciences at the University of Delaware (UD) professor, has co-edited the first printed textbook on the subject: OpenACC for Programmers: Concepts and Strategies along with her colleague Dr. Guido Juckeland, Head of computational science at Helmholtz-Zentrum Dresden-Rossendorf (HZDR) in Germany.
At many universities, including UD, the computer science curriculum includes at least one mandatory course on parallel programming. "It's important to train the next generation of scientists on how to use this", stated Sunita Chandrasekaran who runs her Computational Research and Programming Lab at UD.
Parallel programming, and OpenACC, is used in high-performance computing in the fields of bioinformatics, quantum chemistry, astrophysics and more.
"The model was made to ensure that scientists spend more time on science, less on programming", stated Sunita Chandrasekaran.
OpenACC is portable and platform-agnostic, so it should be able to keep up even as computer architectures undergo rapid change, said Sunita Chandrasekaran.
"OpenACC for Programmers: Concepts and Strategies" can easily be incorporated into the syllabus of a course on parallel programming, and it can also serve as a template for a new syllabus, said Sunita Chandrasekaran. The book can also be used for self-study.
Each chapter is written by a different set of authors and includes examples in the programming languages C, C++, and Fortran. Source code is available in GitHub. The book also contains exercises, including multiple choices questions and coding challenges.
"OpenACC as a high-level programming interface offers the ability to describe the inherent parallelism of a programme and as such is a wonderful gentle introduction for students and scientists to the intricacies of parallel programming", stated Dr. Guido Juckeland, the book's co-editor. "This book provides a clear path through that parallel programming maze."
When OpenACC came out in 2011, Sunita Chandrasekaran was an early adopter. Now, she is Director of User Adoption for OpenACC, a non-profit organisation.
"This puts me at the forefront of contacting users and asking them what is missing in OpenACC and what they want", she stated.
Sunita Chandrasekaran has worked on development of OpenACC support, compilers, and runtime. She has also worked on parallelizing application benchmarks.