Ich schreibe ein Python 2.7.11 Programm unter Linux. Das Programm erstellt 12 Teilprozesse mit Multiprocessing.Pool. Jeder Unterprozess hat CPU-Affinität mit einem der 12 CPUs über die Psutil-Bibliothek für Python.Mischen Threading von c-Funktion mit Python Multiprozessing
Ich benutze multiprocessing.Event 11 Teilprozesse für Unterprozess 0.
Dann warten, um in Teilprozesse 0, nenne ich Math Kernel Bibliothek Intel eine Berechnung mit 12 Threads zu starten.
Werden die wartenden Subprozesse irgendwelche CPU-Ressourcen verbrauchen und die Berechnung durch die 12 Threads beeinflussen?
Wenn ja, wie kann man das vermeiden? Oder wie testen, ob das passiert?
Beeinflusst der Hauptprozess die Berechnung durch die 12 Threads?
Danke.
Allgemein gesagt, nein. Unter der Annahme, dass das Betriebssystem die Prozesse einzelnen Kernen/Prozessoren im System zuweist, sollte man keine anderen bewirken. Mangels Details ist es schwierig, genauer zu sein. Können Sie Beispielcode posten? – codingCat
Die 12 Unterprozesse beeinflussen sich nicht gegenseitig. Aber werden die "wartenden" 12 Subprozesse die 12 Threads beeinflussen, die von intel's mkl vom Subprozess 0 gestartet werden? Es gibt nur 12 CPUs .... ich kann versuchen, eine vereinfachte Version des Codes auszuarbeiten. das ganze, einschließlich der ctypes python numpy und intel mkl zu interface ist ziemlich lang. – rxu