gpt4 book ai didi

parallel-processing - 在 Julia 中使用 pmap 时修复参数

转载 作者:行者123 更新时间:2023-12-04 08:02:38 24 4
gpt4 key购买 nike

我在 Julia 中定义了一个函数 f(x, y, z) 并且我想并行计算 f 的许多值x,固定 yz。使用 pmap 执行此操作的“最佳实践”方法是什么?

如果它像 pmap(f, x, y = 5, z = 8) 那样就好了,这就是 apply 系列处理固定参数的方式在 R 中,但它似乎并没有那么简单。我设计了解决方案,但我发现它们不够优雅,而且我怀疑它们能否很好地概括我的目的。

  • 我可以将 f 包装在函数 g 中,其中 g(x) = f(x, y = 5, z = 8) .然后我简单地调用 pmap(g, x)。这没有我想要的那么节俭。
  • 当定义了 f 时,我可以将 5 和 8 设置为 yz 的默认值,然后调用 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 中消失。

关于parallel-processing - 在 Julia 中使用 pmap 时修复参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com