gpt4 book ai didi

multithreading - Julia @everywhere 变量

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

我正在尝试使用 Julia 并行实现代码。我正在使用 @everywhere 宏以使所有进程从 RemoteRef 获取数据。

是否可以使用仅在 @everywhere 表达式中的第一个进程上定义的变量名称,并以某种方式指定我希望它将该变量的值而不是变量名称发送给所有进程?

例子:

r = RemoteRef()
put(r, data)
@everywhere data = fetch(r)

这将返回错误,因为 r未在所有进程上定义。

我应该如何将数据移动到所有进程?

另外,我可以告诉 Julia 在表达式中输入值而不是变量名吗?
类似于如何 name = "John"; println("Hello, $name")将打印 "Hello, John"

最佳答案

要找到 Spencer 在一个漂亮的小包中指出的函数(和宏),请查看 ParallelDataTransfer.jl .测试 are good examples of usage (并且 CI 显示这些测试在所有平台上都通过了 v0.5)。

对于您的问题,您可以使用 sendto功能:

z = randn(10, 10); sendto(workers(), z=z)
@everywhere println(z)

关于multithreading - Julia @everywhere 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22517868/

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