여러 개의 커널에있는 인자의 값이 서로 다른 몬테카를로와 동일한 함수를 병렬 함수로 실행하는 데 관심이 있습니다. 필자는 커널 내에서 함수가 계산되지 않고 동일한 커널에서 전체 함수가 실행되도록하고 싶습니다. 예를 들어, I는 (의도적 간체) 함수가 있다고 가정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 [m2 (M1)], F [M3, M4, F [M6 (M5)], F [M7, M8을 실행할
] f [m9, m10]을 5 개의 서로 다른 커널에서 전송할 수 있습니다. 즉, 서로 다른 커널에서 서로 다른 난수 스트림을 사용하여 정보를 전송하지 않아도됩니다.
Mathematica에서 어떻게 이것을 할 수 있습니까?
재미 사람을, 나는이 일을 앉고있다. –
@ Mr.Wizard : 비록 당신이 경쟁 할 때 재미가 없다. :) –