如何在Julia的SharedArray中存储结构?

时间:2016-05-07 01:24:12

标签: struct parallel-processing multiprocessing julia shared-memory

所以我有一种情况,我想将大量数据存储为共享数组,因此我可以对数据进行一些并行操作。但是,数组是一个类型的数组。当我尝试将其初始化为SharedArray时,我得到一个错误,说它必须是一个类型。我的问题是如何在Julia中将普通结构视为一种类型,以便SharedArray可以使用它?或者我必须做一些奇怪的转换,我将对象转换为数组中的字符串/整数并在每个子进程中反序列化它?

这是我正在尝试存储的类型

type Rating
    user::Int32
    item::Int32
    value::Float32
end

现在我,我知道我可以尝试将其分解为并行数组,但这需要重写代码的大部分内容,而不是那样做。因此,有没有其他方法可以存储此结构或SharedArray

1 个答案:

答案 0 :(得分:2)

如果您将其设为immutable,那么您应该可以将其存储在SharedArray中。

immutable Rating
    user::Int32
    item::Int32
    value::Float32
end

生成"普通数据"不可变结构,即 isbits函数返回true的一个。