我在OpenMP bugzilla页面上
Multiplication of array with float causes cascade of OpenMP messages and sets process affinity to {0}
.
我从一个英特尔工程师那里得到的建议是使用
norespect
KMP_AFFINITY
修饰语。有关此修饰符和其他修饰符的文档可以在
Intel C++ Compiler Developer Guide - Thread Affinity Interface
. 这对我有效。
export KMP_AFFINITY=norespect
ipython
In [1]: import numpy as np
In [2]: from os import sched_getaffinity as aff
In [3]: aff(0)
Out[3]:
{0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23}
In [4]: arr = np.random.rand(1000000)
In [5]: arr *= .5
OMP: Info #212: KMP_AFFINITY: decoding x2APIC ids.
OMP: Info #210: KMP_AFFINITY: Affinity capable, using global cpuid leaf 11 info
OMP: Info #155: KMP_AFFINITY: Initial OS proc set not respected: 0-23
OMP: Info #156: KMP_AFFINITY: 24 available OS procs
OMP: Info #157: KMP_AFFINITY: Uniform topology
OMP: Info #179: KMP_AFFINITY: 24 packages x 1 cores/pkg x 1 threads/core (24 total cores)
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4274 thread 0 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4697 thread 3 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4698 thread 4 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4699 thread 5 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4700 thread 6 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4701 thread 7 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4702 thread 8 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4703 thread 9 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4704 thread 10 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4705 thread 11 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4706 thread 12 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4708 thread 14 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4709 thread 15 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4710 thread 16 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4711 thread 17 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4712 thread 18 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4714 thread 20 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4715 thread 21 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4716 thread 22 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4717 thread 23 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4713 thread 19 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4707 thread 13 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4695 thread 1 bound to OS proc set 0-23
OMP: Info #250: KMP_AFFINITY: pid 4274 tid 4696 thread 2 bound to OS proc set 0-23
In [6]: aff(0)
Out[6]:
{0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23}