I am developing an interposer library for OpenMP thread-affinity so that I do not have to add affinity code in source file. I interpose pthread_create() and set the affinity attribute by calling pthread_attr_setaffinity_np(). OpenMP runtime seems to overwrite/ignore affinity set by attribute.
I'm seeing a weird crash when using an openmp do loop with a class(*) pointer. A short test case is attached. In the test case, if the three lines of the 'select type' statement are included, the code crashes. If the select type is commented, the code runs. Interestingly, the code does not even need to execute the select type statement for the crash to happen as I have a 'cycle' statement at the start of the loop.
I can't see anything apparently wrong with the code. Is this a possible openmp and/or fortran bug or am I violating something in the openmp standard?
I've noticed that different calls are made in kmpc_threadprivate on different cases like this :
I'm looking for documents that could possibly shed some light onto the general design of the Intel OpenMP Runtime Library and on the implementation of tasks in particular. I have seen the offcial documentation that comes with the source code, but it is not very extensive. Any hints and singposts into the right directions would be most welcome. Thank you very much.
We are excited to announce the next release of the Intel® OpenMP* Runtime Library at openmprtl.org. This release aligns with Intel® Parallel Studio XE 2016 Composer Edition Update 1.
- Added dynamic/hinted lock implementation that supports OpenMP* locks with hints
- Disabled monitor thread when KMP_BLOCKTIME=infinite
- Improved stack protection with safe C library for string/memory operations