Napisałem kod, aby ustawić powinowactwo każdego procesu pod moją nazwą użytkownika tylko do rdzenia 0. Uruchomiłem ten kod, a następnie został zakończony, gdy został ukończony.
Następnie, nawet gdy uruchomiłem zupełnie nowy terminal i otworzyłem przy nim python, jego powinowactwo nadal było ustawione na rdzeń 0. Oczekiwanym domyślnym zachowaniem byłoby, aby nowo uruchomiona powłoka pytona miała powinowactwo zarówno do rdzenia 0, jak i rdzenia 1, oczywiście .
To nie jest tak, że coś powoduje, że wszystkie procesy Pythona mają takie samo powinowactwo procesora - zweryfikowałem to, ustawiając dwa różne procesy Pythona na dwa różne rdzenie.
Kolejnym eksperymentem, który przeprowadziłem, jest ustawienie powinowactwa tylko procesów pythonowych na rdzeń 0 (wszystkie pozostałe procesy nietknięte). Następnie, kiedy uruchomiłem nową powłokę Pythona, jej powinowactwo było nadal normalne (nie ustawione tylko na 0). Sugeruje to, że istnieje jakiś specjalny proces niebędący pythonem, który zarządza powinowactwem procesorów nowych procesów pythonowych.
Moje pytanie brzmi: co to za specjalny proces?
Dla porównania, do ustawiania i sprawdzania powinowactwa procesora użyłem psutil.Process.cpu_affinity
z psutil
biblioteki Pythona .