Um meinen Code zu verbessern, der eine schwere Schleife hat, brauche ich eine Beschleunigung. Wie kann ich Multiprozessing für einen Code wie diesen implementieren? (A ist typisch der Größe 2 und l bis 10)Multiprocessing verschachtelte Python Loops
for x1 in range(a**l):
for x2 in range(a**l):
for x3 in range(a**l):
output[x1,x2,x3] = HeavyComputationThatIsThreadSafe1(x1,x2,x3)
ShadowRangers Kommentar zu [Ihre andere Frage] (http://Stackoverflow.com/q/37081288/1461210) steht immer noch - alle Threads in der Welt werden nicht viel von einer Delle machen, wenn Sie sich verpflichtet fühlen Aufruf von 'HeavyComputationThatIsThreadSafe1' * über eine Milliarde *. Wie viele Sekunden dauert ein einzelner Aufruf von 'HeavyComputationThatIsThreadSafe1'? Nimm diese Zahl, multipliziere sie mit 1073741824 und dividiere durch die Anzahl der Kerne, die du hast. Das gibt Ihnen die absolute Best-Case-Szenario-Laufzeit, die Sie mit Multiprocessing erreichen können. –
Ich habe die Performance-Probleme mit dem 'HeavyComputationThatiIsThreadSafe' in [der ursprünglichen Frage] (http://stackoverflow.com/a/37100607/392949) adressiert, mit dem Sie verlinkt sind. Selbst mit der von Ihnen genannten Datengröße benötigen Sie nur ~ 8 GB Speicher und 45 Sekunden, um alle drei verschachtelten Schleifen zu durchlaufen, wenn Sie einige sinnvolle Optimierungssätze verwenden. – JoshAdel