监视通过ParallelMap并行化的函数的输出

时间:2011-11-01 18:04:50

标签: wolfram-mathematica parallel-processing

mle[data_] := ArgMin[
              {-LogLikelihood[twoState[a, b, 60, 0.2], data],  
               Element[{a, b}, Reals] && a > 0 && b > 0}, 
              {a, b}]

ParallelMap[mle, {BG6, BG3, DC5}]

我正在使用ParallelMap在独立数据集上并行执行mle函数。我希望看到每个并行评估完成后的输出。我查看了Monitor的文档,但我不清楚如何在这里使用它。看起来我需要一个向量来保存结果,比如:

SharedVariable[params]

然后将mle的输出附加到对Monitor的调用中的params,但我不知道执行此操作的语法。

1 个答案:

答案 0 :(得分:0)

如果您只想在结果准备好后查看结果,可以在返回之前打印它。

mle[data_] := Module[{result},
    result = ArgMin[
          {-LogLikelihood[twoState[a, b, 60, 0.2], data],  
           Element[{a, b}, Reals] && a > 0 && b > 0}, 
          {a, b}];
    Print[result];
    Return[result];
];

如果您想要做一些更复杂的事情,可以将来电替换为Print,例如致电Monitor