私は、Abaqusと呼ばれる市販の解析ソフトウェアを使用しています。このソフトウェアには、出力値を読み取るためのPythonインターフェイスがあります。Pythonでコードを並列化する
私はちょうど下の(実行されません)サンプルコードを与えている:
myOdbは、私がデータを抽出しています、そこからすべての情報が含まれています。注意点は、2つの別々のプログラムを使用してファイルを開くことができないということです。
以下に示すコード1とコード2は互いに独立して動作し、必要なのはmyOdbだけです。
odbを読んだ後、コード1とコード2を並列化する方法はありますか?
# 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))
ここではマルチプロセッシングが役立つかもしれません。あなたのPythonの実装がロックを保持している場合、スレッドは機能しないかもしれません。 – shuttle87
可能であれば、上記の例で擬似コードを手伝ってもらえますか? – Mechanician