A C++ Infrastructure for Automatic Introduction and Translation of OpenMP Directives

  • Dan Quinlan
  • Markus Schordan
  • Qing Yi
  • Bronis R. de Supinski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2716)


In this paper we describe a C++ infrastructure for source-to-source translation. We demonstrate the translation of a serial program with high-level abstractions to a lower-level parallel program in two separate phases. In the first phase OpenMP directives are introduced, driven by the semantics of high-level abstractions. Then the OpenMP directives are translated to a C++ program that explicitly creates and manages parallelism according to the specified directives. Both phases are implemented using the same mechanisms in our infrastructure.


Code Fragment Abstract Syntax Tree Translation Algorithm Serial Code Runtime Library 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Daniel Quinlan, Brian Miller, Bobby Philip, and Markus Schordan. Treating a user-defined parallel library as a domain-specific language. In 16th International Parallel and Distributed Processing Symposium (IPDPS, IPPS, SPDP), pages 105–114. IEEE, April 2002.Google Scholar
  2. 2.
    Eduard Ayguade, Marc Gonzalez, and Jesus Labarta. Nanoscompiler: A research platform for openMP extensions. In European Workshop on OpenMP, September 1999.Google Scholar
  3. 3.
    Edison Design Group.
  4. 4.
    R. Parsons and D. Quinlan. A++/P++ array classes for architecture independent finite difference computations. In Proceedings of the Second Annual Object-Oriented Numerics Conference, April 1994.Google Scholar
  5. 5.
    Federico Bassetti, David Brown, Kei Davis, William Henshaw, and Dan Quinlan. OVERTURE: An object-oriented framework for high-performance scientific computing. In Proceedings of Supercomputing’98 (CD-ROM), Orlando, FL, November 1998. ACM SIGARCH and IEEE. Los Alamos National Laboratory.Google Scholar
  6. 6.
    Centre Europeu de Parallelism de Barcelona, Spain. Nanos Manual.
  7. 7.
    Christian Brunschen and Mats Brorsson. OdinMP/CCp-a portable implementation of openMP for c. In European Workshop on OpenMP, September 1999.Google Scholar
  8. 8.
    Mitsuhisa Sato, Shigehisa Satoh, Kazuhiro Kusano, and Yoshio Tanaka. Design of openMP compiler for an SMP cluster. In European Workshop on OpenMP, September 1999.Google Scholar
  9. 9.
    Seung Jai Min, Seon Wook Kim, Michael Voss, Sang Ik Lee, and Rudolf Eighmann. Portable compilers for openMP. In Workshop on OpenMP Applications and Tools, July 2001.Google Scholar
  10. 10.
    Silican Graphics Inc. Optimizing Compilers for High-Performance Computing.
  11. 11.
    IBM. VisualAge C++ Professional for AIX V6.0.
  12. 12.
    Xinmin Tian, Aart Bik, Milind Girkar, Paul Grey, Hideki Saito, and Ernesto Su. Intel openMP C++/Fortran compiler for hyper-threading technology: Implementation and performance. Intel Technology Journal, 6(1):36–46, 2002.Google Scholar
  13. 13.
    Fujitsu. Fortran & C Packages for SPARC Solaris.

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Dan Quinlan
    • 1
  • Markus Schordan
    • 1
  • Qing Yi
    • 1
  • Bronis R. de Supinski
    • 1
  1. 1.Lawrence Livermore National LaboratoryUSA

Personalised recommendations