Ich arbeite mit einer kommerziellen Analyse-Software namens Abaqus, die eine Python-Schnittstelle hat, um die Ausgabewerte zu lesen.Parallelisieren eines Codes in Python
Ich habe gerade einen Beispielcode angegeben (die nicht ausgeführt) unter:
myOdb enthält alle Informationen, von denen ich die Daten am extrahieren. Der Nachteil ist, dass ich die Datei nicht mit 2 separaten Programmen öffnen kann.
Der unten gezeigte Code 1 und Code 2 funktionieren unabhängig voneinander, sie benötigen lediglich myOdb.
Gibt es eine Möglichkeit, die Codes 1 und 2 nach dem Lesen der ODB zu parallelisieren?
# Open the odb file
myOdb = session.openOdb(name=odbPath)
# Code 1
for i in range(1, NoofSteps+1):
frames = myOdb.steps[stepName].frames
lastframe=frames[-1]
RFD = lastframe.fieldOutputs['RF']
sum1=0
for value in RFD.values:
sum1=sum1+value.data[1]
# Code 2
for i in range(1, NoofSteps+1):
frames = myOdb.steps[stepName].frames
lastframe=frames[-1]
for j in range(4,13):
file2=open('Fp'+str(j)+stepName,'w')
b=lastframe.fieldOutputs[var+str(j)]
fieldValues=b.values
for v in fieldValues:
file2.write('%d %6.15f\n' % (v.elementLabel, v.data))
Multiprozessing könnte hier helfen. Threads funktionieren möglicherweise nicht, wenn Ihre Python-Implementierung eine Sperre enthält. – shuttle87
Wenn möglich, Könnten Sie mir bitte mit einem Pseudo-Code mit dem obigen Beispiel helfen? – Mechanician