複数のモンテカルロカーネルの引数の値が異なるいくつかのモンテカルロ評価を並列に実行するのと同じ機能を実行することに興味があります。私はまた、カーネル間で関数の計算を分散させることなく、関数全体が同じカーネル上で実行されるようにしたい。たとえば、F [M3、M4]、F [M5、M6]、M8、M7 [F [M2、M1]私は今、fを実行したい機能(故意に単純化された)Mathematicaでの並列プログラミング
f[a_, b_] := Module[{}, RandomReal[{a, b}]]
In[1]:= LaunchKernels[]
Out[1]= {KernelObject[1, "local"], KernelObject[2, "local"],
KernelObject[3, "local"], KernelObject[4, "local"],
KernelObject[5, "local"], KernelObject[6, "local"],
KernelObject[7, "local"]}
SeedRandom[795132, Method -> "ParallelGenerator"];
m1 = 1; m2 = 2; m3 = 3; m4 = 4; m5 = 5; m6 = 6; m7 = 7; m8 = 8;
DistributeDefinitions[f, m1, m2, m3, m4, m5, m6, m7, m8];
があるとし] f [m9、m10]を5つの異なるカーネル上で共有します。つまり、異なるカーネル間で別々の乱数ストリームを使用して情報を転送しません。
Mathematicaではどのようにこれを行うことができますか?
は、私はこの1つを座っています、楽しい男を持っています。 –
@ Mr.Wizard:あなたと競争しようとしていないときは楽しいことではありません:) –