2016-04-15 6 views
0

BrightwayのParallelMonteCarloクラスとMultiMonteCarloクラスを使用しようとしていますが、KeyErrorが実行されています。私はLCIデータベースとBrightwayプロジェクトで午前:キーエラー(データベース名)のマルチおよびパラレルモンテカルロ失敗

活動や方法を選択
In [1] bw.databases 
Out [1] Brightway2 databases metadata with 2 objects: 
      biosphere3 
      ecoinvent 3_2 CutOff 

In [2] db = bw.Database('ecoinvent 3_2 CutOff') 
     act = db.random() 
     method = ('CML 2001', 'climate change', 'GWP 100a') 

次のように私のコードは次のとおりです。

In [3] ParallelMC_LCA = bw.ParallelMonteCarlo({act:1}, 
               method = myMethod, 
               iterations=1000, 
               cpus=mp.cpu_count()) 
     results = np.array(ParallelMC_LCA.calculate()) 

In [4] act1 = db.random() 
     act2 = db.random() 
     multiMC_LCA = bw.MultiMonteCarlo(demands = [{act1:1}, {act2:1}], 
             method = myMethod, 
             iterations = 10) 
     results = np.array(ParallelMC_LCA.calculate()) 

どちらも私にKeyError: 'ecoinvent 3_2 CutOff'

私の質問は:なぜですか?

答えて

0

これはknown issue due to differences in how multiprocessing works on Windows and Unixです。具体的には、Windowsではプロジェクトが正しく設定されていないため、KeyErrorが発生します。したがって、スタックオーバーフローの問題ではありません。

+0

同意し、今から別の場所でバグを報告します。 – MPa

+0

[プロジェクト名が明示的に労働者に渡された](http://bitbucket.org/cmutel/brightway2-calc/commits/e217412870d04bdab560814d42be6ce6845ee144)のおかげで、マルチプロセッシングはほとんどの場合動作するはずです。ただし、環境変数を使用してカスタムディレクトリを設定すると、問題が残る可能性があります。 –

関連する問題