Introduction to Directive Based Programming

By John Urbanic

Pittsburgh Supercomputing Center

Published on


OpenMP, and now OpenACC, have become standard ways of doing multi-core and GPGPU parallelization. One of the main reasons for their adoption is that they allow the preservation of an existing serial code base while performing gradual parallelization on a code. This directive based approach allows for great final efficiency without a steep learning curve or an "all or nothing" reengineering of the algorithms and code. Of course, there are limitations and this technique does not apply to all applications or hardware platforms, as we shall discuss. This will be a hands-on workshop using a world-class HPC resource and the attendees will leave as actual OpenACC programmers capable of applying this approach to their own programs. A substantial understanding of OpenMP will also be gained along the way, although the exercises will focus on OpenACC.


John Urbanic is Parallel Computing Specialist at the Pittsburgh Supercomputing Center where he spends as much time as possible implementing extremely scalable code on interesting machines. These days that means a lot of MPI, OpenMP and OpenACC. John also enjoys Big Data challenges which involve such things as graph analytics, SPARQL and novel architectures. John graduated with Physics degrees from Carnegie Mellon University (BS) and Pennsylvania State University (MS) and still appreciates working on applications that simulate physical phenomena.

John teaches workshops and classes on the above as much as possible and particularly likes meeting others with challenging new problems for HPC, so please introduce yourself and let him know what you are working on.

Cite this work

Researchers should cite this work as follows:

  • John Urbanic (2013), "Introduction to Directive Based Programming,"

    BibTex | EndNote



Global Center Room 369, New York University, New York, NY


NanoBio Node

University of Illinois at Urbana-Champaign