numactl --physcpubind

Ich habe die Option numactl mit der Option --physcpubind verwendet. Handbuch sagt:

--physcpubind=cpus, -C cpus
Only execute process on cpus. Etc...

Angenommen, ich habe ein NUMA-System mit 3 NUMA-Knoten, von denen jeder 4 Kerne hat. NUMA-Knoten 0 hat 0, 1, 2, 3 als Kernnummern. NUMA-Knoten 1 hat 4,5,6,7 und NUMA-Knoten 2 hat 8,9,10,11. Meine Frage ist, lassen Sie uns sagen, dass ich das Programm wie folgt ausführe:

export OMP_NUM_THREADS=6
numactl --physcpubind=0,1,4,5,8,9 ./program

d.h. ich starte mein Programm mit 6 Threads und fordere sie auf, sich auf den CPU-Kernen 0,1,4,5,8,9 zu befinden. Zum Beispiel, wenn irgendwann während des Programms den Threads 0-5 die CPU-Kerne 0,1,4,5,8,9 (setup1) zugewiesen werden. Ist es möglich, dass zu einem anderen Zeitpunkt während der Programmausführung der Thread 0 beispielsweise auf dem CPU-Kern 9 ausgeführt wird, und so weiter? Das heißt Wird es eine Thread-Migration zwischen CPU-Kernen geben? Oder werden die Threads eindeutig an CPU-Kerne gebunden (wie in Setup1)? Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage