Parallel processing 修复在Julia中使用pmap时的参数

Parallel processing 修复在Julia中使用pmap时的参数,parallel-processing,julia,pmap,Parallel Processing,Julia,Pmap,我在Julia中定义了一个函数f(x,y,z),我想对x的许多值并行计算f,保持y和z固定。使用pmap“最佳做法”是什么 如果它类似于pmap(f,x,y=5,z=8),那就太好了,apply家族就是这样处理R中的固定参数的,但它似乎没有那么简单。我已经设计出了解决方案,但我发现它们不雅观,我怀疑它们是否能很好地概括我的目的 我可以在函数g中包装f,其中g(x)=f(x,y=5,z=8)。然后我只需调用pmap(g,x)。这并不像我希望的那样吝啬 当定义了f时,我可以将5和8设置为y和z的默

我在
Julia
中定义了一个函数
f(x,y,z)
,我想对
x
的许多值并行计算
f
,保持
y
z
固定。使用
pmap
“最佳做法”是什么

如果它类似于
pmap(f,x,y=5,z=8)
,那就太好了,
apply
家族就是这样处理
R
中的固定参数的,但它似乎没有那么简单。我已经设计出了解决方案,但我发现它们不雅观,我怀疑它们是否能很好地概括我的目的

  • 我可以在函数
    g
    中包装
    f
    ,其中
    g(x)=f(x,y=5,z=8)
    。然后我只需调用
    pmap(g,x)
    。这并不像我希望的那样吝啬
  • 当定义了
    f
    时,我可以将5和8设置为
    y
    z
    的默认值,然后调用
    pmap(f,x)
    。如果我想将
    y
    固定在某个变量
    a
    的值上,而
    a
    在定义
    f
    时(出于正当理由)尚未定义,但将在调用
    f
    时定义,这会让我感到不舒服。这很管用,但有点让我害怕
      一个很好的解决方案是使用匿名函数,例如

      g(y, z) = x -> f(x, y, z)
      
      pmap(g(5, 8), x)
      
      或者只是

      pmap(x -> f(x, 5, 8), x)
      

      在Julia 0.4中,匿名函数有一个性能损失,但在0.5中这将消失。

      哦,是的,我期待着删除性能损失,我们已经讨论了一段时间了。