2016-10-11 2 views
1

Sagen wir, ich starte 10 Prozess in einer Schleife mit Process(), aber ich habe nur 8 Kerne verfügbar. Wie geht Python damit um?Python Multiprocessing starten mehr Prozesse als Kerne

+1

Ich glaube nicht, dass Python sich darum kümmert. Es hängt davon ab, wie Ihr Betriebssystem handhabt; am wahrscheinlichsten durch alternierende Prozesse. – Evert

+1

werfen Sie einen Blick auf diese http://stackoverflow.com/questions/36795086/on-what-cpu-cores-are-my-python-processes-running – xCodeZone

+0

https://github.com/python/cpython/blob/ master/Lib/multiprocessing/process.py – enderland

Antwort

1

Während es am besten ist, so viele Threads zu verwenden, wie Sie virtuelle Kerne zur Verfügung haben, müssen Sie sich nicht daran halten. Wenn Sie weniger verwenden, könnten Sie die verfügbare Prozessorkapazität zu wenig nutzen. Wenn Sie mehr verwenden, werden Sie die verfügbare Prozessorkapazität zu stark beanspruchen.

In beiden Fällen arbeiten Sie langsamer als sonst möglich. (Obwohl die Verwendung von mehr Threads als die von Cores weniger Auswirkungen hat als die Verwendung von weniger Threads als die von Cores.)

Verwandte Themen