I'm doing a graphic application that also uses OpenMP. This application has que linker flag /SUBSYSTEM:WINDOWS in order to not create an additional command line window. The problem is that in non-Intel cpu, the kmp_affinity warning is opening the command line window to show the message.
How can I manage this? The only thing I can't do is to change general environment variables ( other programs could be using openmp).
Thanks in advance!
This was fixed in the 13.0 OMP runtime library in late May of 2012. Exactly what version of 13.0 are you using? Can you please 'set KMP_VERSION=1' in your environment, run your application, and let us know what the 'OMP Version' is?
On Linux, I know this is fixed in the last 13.0 update, so you may need to update to the equivalent 13.0 Windows compiler.
The compiler I'm using is "Intel(R) C++ Intel(R) 64 Compiler XE on Intel(R) 64, version 13.1.3 Package ID: w_ccompxe_2013.5.198"
Which is exactly the bug? The KMP_AFFINITY warning dissappears when I do set KMP_AFFINITY=none
With KMP_VERSION=1 ( using the binaries on an Intel processor, not AMD):
Intel(R) OMP Copyright (C) 1997-2011, Intel Corporation. All Rights Reserved.
Intel(R) OMP version: 5.0.20110823
Intel(R) OMP library type: performance
Intel(R) OMP link type: dynamic
Intel(R) OMP build time: 2011-08-31 12:43:20 UTC
Intel(R) OMP build compiler: Intel C++ Compiler 12.0
Intel(R) OMP alternative compiler support: yes
Intel(R) OMP API version: 3.0 (200805)
Intel(R) OMP tracefile support: no
Intel(R) OMP dynamic error checking: no
Intel(R) OMP helper thread support: yes
Intel(R) OMP thread affinity support: not used
Intel(R) OMP debugger support version: 1.1
I think I'm using the wrong OMP version. Let me check it...
There's a mismatch between the compiler version you are using and the OMP runtime that is getting loaded by your application.
icl-126.96.36.199 (package w_ccompxe_2013.5.198.exe) contains Intel(R) OMP version: 5.0.20130507, but you are picking up Intel(R) OMP version: 5.0.20110823, which doesn't have the fix. You'll have to correct $Path and $LIB to make sure the runtime for 188.8.131.52 is picked up.
C:\OpenMP\Examples\NT>icl -Qopenmp matmul2_GetProcessTimes.cpp
Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 184.108.40.206 Build 20130607
Copyright (C) 1985-2013 Intel Corporation. All rights reserved.
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.
Using clock() for wall clock time
Problem size: c(900,3600) = a(900,1800)*b(1800,3600)
Calculating product 1 time(s)
GetCurrentProcessId = 3484
Intel(R) OMP Copyright (C) 1997-2013, Intel Corporation. All Rights Reserved.
Intel(R) OMP version: 5.0.20130507