共享数组可以在 Julia 中安全地处理并发写入吗?
Can Shared Arrays handle concurrent writes safely in Julia?
所以我试图在 Julia 中优化数组操作,但注意到我的矩阵偶尔会出现相当大的错误。我还注意到,在 Julia 中存在并发写入 SharedArray 的相同索引的可能性。我想知道 Julia 是否可以安全地处理它。如果没有,我该如何处理?
这是我的问题的一个基本示例
for a list of arbitrary x,y indexes in array J
j[x,y] += some_value
end
Julia可以处理这种情况吗,或者像C一样,是否存在覆盖数据的可能性。他们在 Julia 中的原子操作是为了补偿这个吗?
共享数组特意没有锁定,因为锁定可能很昂贵。最简单的方法是将不重叠的工作分配给不同的进程。但是,您可以搜索看看是否有人编写了锁定库,或者自己尝试一下:https://en.wikipedia.org/wiki/Mutual_exclusion
所以我试图在 Julia 中优化数组操作,但注意到我的矩阵偶尔会出现相当大的错误。我还注意到,在 Julia 中存在并发写入 SharedArray 的相同索引的可能性。我想知道 Julia 是否可以安全地处理它。如果没有,我该如何处理?
这是我的问题的一个基本示例
for a list of arbitrary x,y indexes in array J
j[x,y] += some_value
end
Julia可以处理这种情况吗,或者像C一样,是否存在覆盖数据的可能性。他们在 Julia 中的原子操作是为了补偿这个吗?
共享数组特意没有锁定,因为锁定可能很昂贵。最简单的方法是将不重叠的工作分配给不同的进程。但是,您可以搜索看看是否有人编写了锁定库,或者自己尝试一下:https://en.wikipedia.org/wiki/Mutual_exclusion