- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using the intel compilers that came with the latest hpc oneapi package:
$ icpc --version
icpc (ICC) 2021.1 Beta 20201112
I'm trying to compile some code that uses ompt_callback_master which I understand has been deprecated as of OpenMP 5.1 to be replaced with ompt_callback_masked, but this is the first time I've encountered a compiler for which ompt_callback_master is undefined. If I replace it with ompt_callback_masked it works. In theory I can just check the OPENMP version tag with a macro and use masked instead of master for later versions. However when I check this compiler's _OPENMP macro I get:
$ icpc -fopenmp -dM -E - < /dev/null | grep OPENMP
#define _OPENMP 201611
That seems way too early to have entirely removed ompt_callback_master even if it is deprecated so I wonder if either support for ompt_callback_master was removed prematurely or the _OPENMP define hasn't been updated or possibly both.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem you reported is fixed in our latest Intel oneAPI C++ Compiler Classic version, 2021.3. This is a part of Intel oneAPI HPC Toolkit and can be downloaded here: https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit/download.html
We have also checked it on our end. This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread.
Any further interaction in this thread will be considered community only.
Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thank you for posting in Intel C++ Compiler forum. We're trying it from our end. We'll get back to you with an answer.
Regards
Gopika
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Could you please provide us with the reproducer code so that we can try it from our end.
Regards
Gopika
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
#include <omp-tools.h>
#include <iostream>
int main() {
std::cout << ompt_callback_masked << "\n";
std::cout << ompt_callback_master << "\n";
return 0;
}
Call it ompt_callback_test.cpp and build like:
icpc -qopenmp ./ompt_callback_test.cpp
With the version of icpc I have here this will fail like:
./ompt_callback_test.cpp(8): error: identifier "ompt_callback_master" is undefined
std::cout << ompt_callback_master << "\n";
But if you comment out the line to print master, it will print masked without trouble.
In theory if OpenMP 5.1 or earlier is being supported master should still be defined as shown here: https://www.openmp.org/spec-html/5.1/openmpsu210.html
Or _OPENMP should give a result indicating a later version (unless there is a different way to determine the OMPT support level I am not aware of).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thank you for providing us with the reproducer code. We were able to reproduce the issue. We are discussing it with the internal team and we’ll get back to you with an answer.
Regards
Gopika
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
We are forwarding this case to the internal team who can help you out.
Regards
Gopika
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Thank you for posting in Intel C++ Compiler forum.
Officially supported versions of openMP for Intel C/C++ compilers are:
- OpenMP 4.5 and subset of OpenMP 5.0 in C/C++/Fortran compiler classic 2021.1
- OpenMP 4.5 and subset of OpenMP 5.1 supported in oneAPI DPC+/C+ compiler 2021.1 under -fiopenmp -fopenmp-targets=spir64
(https://www.openmp.org/resources/openmp-compilers-tools/)
So, the officially supported version of openMP is openMP 4.5. Therefore, the _OPENMP macro is correct.
Regarding removal of ompt_callback_master: I have discussed it with openMP experts and, as a result, reported this issue to a development team to fix it.
In the meantime, you can use ompt_callback_masked instead or you can set ompt_callback_master yourself inside the code by:
int ompt_callback_master = 21;
or
int ompt_callback_master = ompt_callback_masked;
Regards,
Khalik.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem you reported is fixed in our latest Intel oneAPI C++ Compiler Classic version, 2021.3. This is a part of Intel oneAPI HPC Toolkit and can be downloaded here: https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit/download.html
We have also checked it on our end. This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread.
Any further interaction in this thread will be considered community only.
Thanks.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page