mfense question.

Want to know in X64, does mfence  instruction flush the CPU cache globally, meaning :-

If CPU0 does mfence, then does it invalidate its cacheline which contain the shared memory location, which is updated at CPU1. And it also results in CPU1 flush its cache containing that shared memory location ?

In other words, if CPU0 does mfence, is it going to get the correct shared memory content which is updated at CPU1 ? Or CPU1 which has updated the shared memory, need to do mfence ? 

Thanks a lot


New code release

We are excited to announce the next release of the Intel® OpenMP* Runtime Library at This release aligns with Intel® Parallel Studio XE 2015.



New Features

  • Contribution from ScaleMP: stack padding.
  • Redesign of wait and release code; performance improvements.

Bug Fixes

Compile with Open64?

Hi everybody,


I was wondering if I could compile the library with another compiler, let's say Open64 compiler. 

As it's been documented, it can be compiled with gcc, clang, icc.

Is the code potentially able to be compiled with Open64 or not? If it is, can you help me out on 

where I should change the code in order to be able to build binary codes for new compiler (Open64).



Best Regards,



how #pragma statements are expanded?


I was working with your library (Intel OpenMP Runtime Library) and I was wondering how the "#pragma" directives in the code are expanded. What I mean is that since you have mentioned in your Reference document, the pragma directives are expanded to some line of codes? Is that correct? If so, where can I look into the code and find it?

Let me give your an example: Consider below line of C code,

#pragma omp parallel

What will be the equivalent C code in your framework that would be replaced with above line of code? And, where can I find it?


Good topics for parallel computing

Hello everyone,

                       I am looking for some good for some good parallel processing projects in the field of signal processing or graph theory and combinatorics or applied maths pertaining to electronics and communication engineering. Can u guys help me suggesting good topics? I am using OpenMP as my language and will later shift to OpenCL.

with regards,


Is __kmp_suspend_initialize_thread race free?


I work with just another tool for data race detection. I repeatedly got messages about a data race between the pthread_mutex_init in __kmp_suspend_initialize_thread and the pthread_mutex_lock. After analysis of the situation, I think there is actually a possible race condition.

The only synchronization for the init_mutex I could find was the

if(th->th.th_suspend_init_count > __kmp_fork_count){...}

surrounding it. I think the init_mutex should be guarded like:

Suscribirse a OpenMP*