Eine parallele Schleife schreiben
Ich versuche, eine parallele Schleife an einem einfachen Beispiel auszuführen.
Was mache ich falsch
from joblib import Parallel, delayed
import multiprocessing
def processInput(i):
return i * i
if __name__ == '__main__':
# what are your inputs, and what operation do you want to
# perform on each input. For example...
inputs = range(1000000)
num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=4)(delayed(processInput)(i) for i in inputs)
print(results)
Das Problem mit dem Code ist, dass bei der Ausführung unter Windows-Umgebungen in Python 3num_cores
Instanzen von Python, um die parallelen Jobs auszuführen, aber nur eine ist aktiv. Dies sollte nicht der Fall sein, da die Aktivität des Prozessors 100% statt 14% betragen sollte (unter i7 - 8-Logikkernen).
Warum tun die zusätzlichen Instanzen nichts?