Ich versuche, ein großes numerisches Problem zu lösen, das viele Unterprobleme beinhaltet, und ich verwende Pythons Multiprocessing-Modul (speziell Pool.map), um verschiedene unabhängige Unterprobleme auf verschiedene Kerne aufzuteilen. Jedes Unterproblem beinhaltet das Berechnen vieler Unter-Unterprobleme, und ich versuche, diese Ergebnisse effektiv zu speichern, indem ich sie in einer Datei speichere, wenn sie noch von keinem Prozess berechnet wurden. Andernfalls überspringen Sie die Berechnung und lesen Sie einfach die Ergebnisse aus der Datei.
Ich habe Parallelitätsprobleme mit den Dateien: Verschiedene Prozesse prüfen manchmal, ob ein Sub-Subproblem bereits berechnet wurde (indem sie nach der Datei suchen, in der die Ergebnisse gespeichert werden). Stellen Sie sicher, dass dies nicht der Fall ist. Führen Sie die Berechnung aus. Versuchen Sie dann, die Ergebnisse gleichzeitig in dieselbe Datei zu schreiben. Wie vermeide ich es, solche Kollisionen zu schreiben?
multiprocessing.Lock
zur Synchronisierung mehrerer Prozesse an.