Parallelisierung mittels processpoolexecutor funktioniert nicht, über threadpoolexecutor schon
Verfasst: Mittwoch 17. Dezember 2025, 15:40
Hallo zusammen,
Lange nicht mehr hier gewesen
Ich bin mal wieder an einem Python-Problem. Ich möchte ein Skript intern parallelisieren und zwar dynamisch. D.H. je nachdem wieviel Daten anfallen, dementsprechend eine gewisse Anzahl an Prozessoren nutzen. Bisher machen wir das unter Linux in der Shell-Ebene, leider nicht sehr komfortabel und komplett undynamisch, d.h. bei einem Change muß jedesmal eine Produktionsfreigabe erstellt werden, das dauert immer Tage.
Ich hab mir jetzt das multiprocessing angeschaut und möchte es implementieren.
Wenn ich den ThreadPoolexecutor nutze läuft der Job (eine Liste von Trades abarbeiten und deren Cashflows ausgeben) ganz hervorragend durch, nur eben mit einem Processor, aber x-Threads. Da aber während des Prozesses rechenintensive Aufgaben verrichtet werden ist das nicht zielführend, weil ich alle zur Verfügung stehenden Prozessoren nutzen möchte.
Mit dem processpoolexecutor kommt der process leider nicht zurück, d.h. der erste Trade wird im debug angedruckt, d.h. die Trade_Id, dann bleibt aber alles stehen. Prozesse werden so viele aufgemacht wie ich mitgebe, das wars, dito wenn ich das ganze auch nur mit einem Prozess mache. Chatai hilft manchmal ganz gut, nur eben hier nicht, drehe mich im Kreis.
Ich würde den Code im nächsten Schritt posten wenn das hilft?
Grüße Dietmar
Lange nicht mehr hier gewesen
Ich bin mal wieder an einem Python-Problem. Ich möchte ein Skript intern parallelisieren und zwar dynamisch. D.H. je nachdem wieviel Daten anfallen, dementsprechend eine gewisse Anzahl an Prozessoren nutzen. Bisher machen wir das unter Linux in der Shell-Ebene, leider nicht sehr komfortabel und komplett undynamisch, d.h. bei einem Change muß jedesmal eine Produktionsfreigabe erstellt werden, das dauert immer Tage.
Ich hab mir jetzt das multiprocessing angeschaut und möchte es implementieren.
Wenn ich den ThreadPoolexecutor nutze läuft der Job (eine Liste von Trades abarbeiten und deren Cashflows ausgeben) ganz hervorragend durch, nur eben mit einem Processor, aber x-Threads. Da aber während des Prozesses rechenintensive Aufgaben verrichtet werden ist das nicht zielführend, weil ich alle zur Verfügung stehenden Prozessoren nutzen möchte.
Mit dem processpoolexecutor kommt der process leider nicht zurück, d.h. der erste Trade wird im debug angedruckt, d.h. die Trade_Id, dann bleibt aber alles stehen. Prozesse werden so viele aufgemacht wie ich mitgebe, das wars, dito wenn ich das ganze auch nur mit einem Prozess mache. Chatai hilft manchmal ganz gut, nur eben hier nicht, drehe mich im Kreis.
Ich würde den Code im nächsten Schritt posten wenn das hilft?
Grüße Dietmar