A Class of OpenMP Applications Involving Nested Parallelism.




Today, OpenMP is the de facto standard for portable shared-memory programming supporting multiple levels of parallelism. Unfortunately, most of the current OpenMP implementations are not capable of fully exploiting more than one level of parallelism. With the increasing number of processors available in high-performance computing resources, the number of applications that would benefit from multilevel parallelism is also increasing. Applying automatic differentiation to OpenMP programs is introduced as a new class of OpenMP applications with nested parallelism.