Bogus OpenMP KMP_AFFINITY warnings on non-Intel processor hosts

By Kenneth M Craft, Published: 05/29/2012, Last Updated: 05/29/2012

Reference Number : DPD200175816

Version : Intel® C++/Fortran 2011.7.258 (Windows*), 2011.7.256 (Linux*)

Product : Intel® C++/Fortran Composer XE 2011 Update 7

Operating System : Windows*, Linux*

Problem Description : The Intel® runtime library has the ability to bind OpenMP threads to physical processing units. The interface is controlled using the KMP_AFFINITY environment variable. This thread affinity interface is supported only for genuine Intel® processors.  An application compiled with -Qopenmp (Windows*)/-openmp (Linux*) and run on a host not containing a genuine Intel® processor may generate bogus OMP: Warning #71 and Warning #72.  This will be the case even if the application contains no OpenMP directives, for example, a 'hello world' class program:

$ icc -V
Intel® C Intel® 64 Compiler XE for applications running on Intel® 64, Version Build 20111011
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.

$ icc hello.cpp -openmp -o hello.exe
$ ./hello.exe
OMP: Warning #72: KMP_AFFINITY: affinity only supported for Intel® processors.
OMP: Warning #71: KMP_AFFINITY: affinity not supported, using "none".

Intel now compiles c++!


As a workaround, set environment variable KMP_AFFINITY to either 'none' or 'disabled':

$ export KMP_AFFINITY=none
$ ./hello.exe

Intel now compiles c++!


Resolution Status : This issue may be fixed in a future version of the compilers.

May 29, 2012:  It is no longer the case that setting KMP_AFFINITY=none will disable warnings 71 & 72.  This has been reported to compiler engineering as defect DPD200232441.  Setting KMP_AFFINITY=disabled is still a viable workaround to disable the warnings.

[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804