【发布时间】:2019-10-25 18:28:33
【问题描述】:
此代码在 Julia 中的并行(跨多个 CPU)版本是什么?
V = zeros(3)
for i = 1:100000
cc = rand(1:3)
V[cc] += 1
end
【问题讨论】:
-
我不确定循环实际上是线程安全的 - 因为两个进程可以获取相同的索引并尝试同时更新它。您可能会发现手册中的this section 及其有用的部分。
-
CPU 是指核心还是机器?
-
@OscarSmith 我的意思是核心。
-
@kevbonham 这可能不安全,但其他语言对此有规定,例如原子操作,或为每个进程复制变量,然后安全地减少它们。
标签: julia