首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行地写出独立值的和

并行地写出独立值的和
EN

Stack Overflow用户
提问于 2019-11-03 23:50:21
回答 1查看 306关注 0票数 2

我有一个函数,比如foo(),它返回一个int值,我必须将不同的值传递给这个函数,以求得到两个不同的值,这些值必须进行求和,例如。

代码语言:javascript
复制
result = foo(2) + foo(37)

我想让这些foo(2)foo(37)并行计算(同时)。有两个版本的foo可能会有所帮助,一个版本使用for循环,另一个版本使用递归。我对朱莉娅和并行编程非常陌生,但我想让这个问题继续下去,直到我可以用Genie.jl作为一个web应用程序来构建它。此外,除了它的文档之外,任何可以学习与Julia并行编程的资源都将受到高度赞赏!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-04 06:07:12

如果要使用进程进行并行化,可以使用"distributed“循环:

8.2.3.汇总结果

第二种情况是,您希望对每个项执行一个小操作,但也希望在结束时执行“聚合函数”来检索标量值(如果输入是矩阵,则执行数组)。在这些情况下,您可以使用@distributed (aggregationFunction)进行构造。

例如,您将并行运行一个除法为2,然后使用sum作为聚合函数(假设有三个工作过程可用):

代码语言:javascript
复制
function f(n)
  s = 0.0
  for i = 1:n
    s += i/2
  end
  return s
end

function pf(n)
  s = @distributed (+) for i = 1:n # aggregate using sum on variable s
    i/2
    # last element of for cycle is used by the aggregator
  end
  return s
end

@benchmark f(10000000) # median time:    11.478 ms
@benchmark pf(10000000) # median time:    4.458 ms

(来自Julia快速语法引用)

或者,您可以使用线程。朱莉娅已经有了多线程,但是Julia1.3(几天/几个星期内,在编写rc4时到期)将引入一个全面的线程API。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58685668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档