共享数组可以在Julia中安全地处理并发写入吗?

时间:2016-05-11 15:11:07

标签: concurrency parallel-processing julia shared-memory

所以我试图在Julia中优化数组操作,但注意到偶尔我的矩阵会出现相当大的错误。我还注意到存在同时写入Julia中SharedArray的相同索引的可能性。我想知道朱莉娅是否可以安全地处理它。如果没有,我怎么能够处理它?<​​/ p>

以下是我的问题的基本示例

for a list of arbitrary x,y indexes in array J
    j[x,y] += some_value
end

Julia可以处理这种情况,或者像C一样,是否存在覆盖数据的可能性。他们在朱莉娅的原子操作是否可以弥补这一点?

1 个答案:

答案 0 :(得分:5)

共享阵列故意没有锁定,因为锁定可能很昂贵。最简单的方法是将不重叠的工作分配给不同的流程。但是,您可以搜索是否有人编写了锁定库,或者自己动手:https://en.wikipedia.org/wiki/Mutual_exclusion