0
パフォーマンスを向上させるために、Python(3.4.2)でマルチプロセッシングツールを使用しようとしています。私の通常のprogrammは正常に実行されていますが、大規模でネストされた辞書を処理する必要があります。私の問題を示す簡略版を添付しました。 TestProcを直接使用すると、マルチプロセッシングでは機能しません。Pythonマルチプロセッシングネストされたディクショナリー
ありがとうございました!
import multiprocessing
def TestProc(liste, results):
for i in liste:
results[i] = {'power':{'square': float(i)**2, 'cubic':
float(i)**3},'root':{'square': float(i)**(1/2), 'cubic': float(i)**(1/3)}}
if __name__ == "__main__":
multiprocessing.freeze_support()
results = multiprocessing.Manager().dict()
results = {}
liste = ['1','2','3','4','5']
for i in liste:
results[i] = multiprocessing.Manager().dict()
print(results)
#TestProc(liste, results)
p1 = multiprocessing.Process(target=TestProc, args=(liste,results,))
p1.start()
p1.join()
print(results)
最初の値を使わずに 'results'に2回割り当てて、結果に複数の' multiprocessing.Manager().dict() 'を入れています。結果は* empty *になるはずはありませんか?) – jonatan