[Openmp-dev] Updating OMPT implementation

Joachim Protze via Openmp-dev openmp-dev at lists.llvm.org
Sat Jul 15 07:32:38 PDT 2017


Hello everyone,

as you might know, OpenMP 5.0 will include a tools interface (OMPT).
An early prototype implementation of OMPT is already available in the 
LLVM-openmp runtime. But the specification of OMPT evolved quite a lot 
since this prototype implementation.

Although it will take another year to release the final version of the 
OpenMP 5.0 specification, we started to update the OMPT implementation. 
The latest published version of OMPT spec is part of the OpenMP 5.0 
preview 1 document:

http://www.openmp.org/wp-content/uploads/openmp-tr4.pdf


To get an overview of the changes in the runtime, please have a look on 
this diff against master:

https://github.com/OpenMPToolsInterface/LLVM-openmp/pull/2

The OpenMP tools working group was active since the TR4 document, and 
OMPT evolved further. Although the branch is called towards_tr4, we are 
actually implementing the latest internal specification or OMPT.


About half of the deletions come from the removed ompt.h in 
include/30-45. Since OMPT is part of 5.0, from our perspective it makes 
sense to only include OMPT in version 5.0 builds.

More then half of the additions come from OMPT specific tests.



This mail is to let you know, that we are about to land in the near 
future, and to discuss on how to proceed with the review process. Should 
I create a single big Differential in Phabricator, or what would you 
suggest?
 From my point of view, breaking the modifications down to several 
patches would result in inconsistent implementation stages. At least in 
stages that would not pass the tests, without modifying the tests on the 
way.


Since OMPT is integral part of OpenMP 5.0, I suggest to enable OMPT by 
default for 5.0 builds.


There are 2 open issues, we will not address with this patch:

- Anything target/device-related (callbacks/functions) is developed in 
different repositories. Also, this mainly changes libomptarget and not 
the runtime code.

- To enable the runtime to differentiate sections from static loops, 
compiler support will be needed; it will need a separate discussion on 
how to approach this issue


I'm looking forward to your feedback.

Best,
Joachim

-- 
Dipl.-Inf. Joachim Protze

IT Center
Group: High Performance Computing
Division: Computational Science and Engineering
RWTH Aachen University
Seffenter Weg 23
D 52074  Aachen (Germany)
Tel: +49 241 80- 24765
Fax: +49 241 80-624765
protze at itc.rwth-aachen.de
www.itc.rwth-aachen.de


More information about the Openmp-dev mailing list