numactl - physcpubind
Używałem numactl z opcją --physcpubind. instrukcja mówi:
--physcpubind=cpus, -C cpus
Only execute process on cpus. Etc...
Powiedzmy, że mam system NUMA z 3 węzłami NUMA, gdzie każdy z nich ma 4 rdzenie. Węzeł NUMA 0 ma 0, 1, 2, 3 jako liczby podstawowe. Węzeł NUMA 1 ma 4,5,6,7, a węzeł NUMA 2 ma 8,9,10,11. Moje pytanie brzmi: powiedzmy, że uruchamiam program w następujący sposób:
export OMP_NUM_THREADS=6
numactl --physcpubind=0,1,4,5,8,9 ./program
tj. będę uruchamiał mój program z 6 wątkami i żądam, aby były na rdzeniach procesora 0,1,4,5,8,9. Na przykład, jeśli w jakimś momencie wątkom programu 0-5 przypisane zostaną rdzenie procesora 0,1,4,5,8,9 (setup1). Czy jest możliwe, że w innym momencie podczas wykonywania wątku 0 program może działać na przykład na rdzeniu procesora 9 i tak dalej? To znaczy. czy nastąpi migracja wątków między rdzeniami procesora? Lub wątki jednoznacznie wiążą się z rdzeniami procesora (jak w konfiguracji 1)? Dzięki.