マルコフチェーンの遷移行列を生成するためにマルチプロセッシングを使いたいと思います。複数の戻り値と順序付けられた辞書でのマルチプロセッシングの使用
関数generateKeys()
は、遷移後に状態空間の各状態に対して新しい速度と新しいキーを持つ辞書を生成します。
from collections import OrderedDict
def generateKeys():
idxDict = OrderedDict()
rateDict = OrderedDict()
for key,state in stateDict.items():
newkeys,rates = transitionFunction(state)
idxDict[key] = newkeys
rateDict[key] = rates
return idxDict,rateDict
ここOrderedDict
を使用する理由は、キーは次の工程(次のステップでは、私は辞書にnumpyの配列を連結し、スパースcoo_matrixに格納)に正規dict
と混ざっ取得することです。
辞書キーは一意であるため、generateKeys()
を並行して実行して、マルチコアマシン上で2つの辞書をはるかに速く埋めることができます。
私はmultiprocessing
パッケージといくつかの例を調べましたが、私が見た例は単一の戻り値と順序付き辞書なしです。私は実際に私の設定でそれを適用する方法をまだ理解していません。誰でも私にこれをどのように表示できますか?
...そしてあなたが予期しない結果を持つことになり、任意の順序であなたの状態を適用することはできません。.. – Cyrbil
@Cyrbilええ、あなたは正しいです。私はすでに、正規の辞書を使用し、キーでソートすることで回避策を見ています。 – Forzaa