Software Archive
Read-only legacy content

Intel OMP_PROC_BIND implementation

Petros
Novato
1.345 Visualizações
Hello everybody,
I am doing an OpenMP implementation in Intel Fortran. I was really happy to see OpenMP 3.1 implemented because it would mean a nice cross-platform way of forbiding unwanted thread migration usingOMP_PROC_BIND. I set to true and it works fine on Intel architectures, but as soon as I tried it on an AMD Opteron I get this message:
OMP: Warning #72: KMP_AFFINITY: affinity only supported for Intel processors.
OMP: Warning #71: KMP_AFFINITY: affinity not supported, using "disabled".
So, I guess the openmp library is implemented using kmp_affinity which by itself is supported only on Genuine Intel processors? What are my choices? Should I try linking with the OS (gnu) openmp library when and if they implement this feature? Should I give up of the possibility having a cross platform and cross-system way of thread binding?
Thanks a lot,
Petros
0 Kudos
6 Respostas
Jay_H_Intel
Funcionário
1.345 Visualizações

Thanks for pointing out this problem. Wewill address this issue in an upcoming compiler release.
Regards,
Jay

Petros
Novato
1.345 Visualizações
Thanks for taking the time to look into it.

Petros
Petros
Novato
1.345 Visualizações
jayhoeflinger wrote:

Thanks for pointing out this problem. Wewill address this issue in an upcoming compiler release.
Regards,
Jay

Just bumping the topic to say that the new 2013 Parallel Studio that rolled out didn't fix this...
pbkenned1
Funcionário
1.345 Visualizações
OMP_PROC_BIND is now fixed for compatible non-Intel processors in Intel® C++/Fortran Composer XE 2013 Update 1 and Intel® C++/Fortran Composer XE 2011 Update 13. See http://software.intel.com/en-us/articles/omp-proc-bind-is-now-supported-on-compatible-non-intel-processors Patrick
dfishman
Principiante
1.345 Visualizações

Hi all,

I am also seeing a very large performance impact of thread migration when using a 6 and core CPU. The CPUs are 4960X and E5-2867W.

I am attempting to solve that problem with the use of OMP_PROC_BIND. However, I am having a problem with setting core affinity.

My code is in FORTRAN and I am trying to use the OMP_GET_PROC_BIND and use a call OMP_PROC_BIND(.TRUE.).

I am using the ifort compiler. Version 11.1 Build 20100203 Package ID: w_cprof_p_11.1.060

I compile the code with -Qopenmp but I get an error"unresolved external symbol _OMP_GET_PROC_BIND".

All other openmp directives work; e.g. NTHREADS = OMP_GET_NUM_THREADS() etc.

Thanks,

TimP
Colaborador honorário III
1.345 Visualizações

As the preceding reply indicated, OpenMP 3.1 bits were still being introduced in the later 13.1 compiler updates (XE2013) so it would not be surprising that you must use the Intel proprietary equivalents KMP_AFFINITY to work with 11.1 compiler, if you didn't use the newer open sourced version of Intel OpenMP library.

Responder