Joh*_*ito 2 parallel-processing pmap julia
我已经定义一个函数f(x, y, z)中Julia,我想平行计算f的许多价值观x,保持y和z固定.使用这种方法的"最佳实践"方法是什么pmap?
如果它是类似的pmap(f, x, y = 5, z = 8),这就是apply家庭处理固定参数的方式R,那会很好,但它看起来并不那么简单.我已经设计出了解决方案,但我发现它们不够优雅,我怀疑它们会为我的目的很好地概括.
f在一个函数g中包装g(x) = f(x, y = 5, z = 8).然后我简单地打电话pmap(g, x).这不像我想的那么简约.y和z当f被定义,然后调用pmap(f, x).这让我感到不舒服,在这种情况下我想要修复y某个变量的值a,其中a(有充分的理由)在定义的时候f没有定义,但是会被f调用时.它有效,但有点让我感到害怕.一个好的解决方案,将你明显不灵活的第一个选项变成一个灵活的选项,就是使用匿名函数,例如
g(y, z) = x -> f(x, y, z)
pmap(g(5, 8), x)
Run Code Online (Sandbox Code Playgroud)
要不就
pmap(x -> f(x, 5, 8), x)
Run Code Online (Sandbox Code Playgroud)
在Julia 0.4中,匿名函数有性能损失,但这将在0.5中消失.