小编mic*_*ael的帖子

采取的功能!放!和 Julia 中的频道

我正在尝试运行如下所示的内容:

y = @parallel (min) for i in collection
    f(i)
end
Run Code Online (Sandbox Code Playgroud)

wheref(i)是一个函数,它本质上是一个while循环,它计算满足其条件所需的迭代次数。开始时,终止条件之一是预定的迭代次数,n。但是,如果f(i)返回的值小于n理想n值,我想用 的值替换f(i)(例如,因为我正在寻找最小值f(i),如果f(j)是,m我希望所有其他循环停止检查它们是否达到m迭代)。

我是并行计算的新手,所以我可能会误解文档,但我认为我应该能够做这样的事情:

x = Channel{Int64}(1)
put!(x,n)

y = @parallel (min) for i in collection
    f(i,x)
end

close(x)
Run Code Online (Sandbox Code Playgroud)

我已经修改f为采用Channel参数,现在它看起来像这样:

@everywhere function f(item,chan)
    going = true
    count = 0
    while (going)
        going = false
        # perform some operations
        if (count < fetch(chan) …
Run Code Online (Sandbox Code Playgroud)

parallel-processing julia

5
推荐指数
1
解决办法
478
查看次数

标签 统计

julia ×1

parallel-processing ×1