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

How to store structs in a SharedArray in Julia?

所以我有一种情况,我想将大量数据存储为共享数组,这样我就可以对数据进行一些并行处理。但是,数组是类型数组。但是,当我尝试将其初始化为 SharedArray 时,我收到一条错误消息,指出它必须是位类型。我的问题是如何在 Julia 中将普通结构视为位类型,以便 SharedArray 可以使用它?或者我必须做一些奇怪的转换,将我的对象转换为数组中的 string/integer 并在每个子进程中反序列化它?

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

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

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

如果您将其设为 immutable,那么您应该能够将其存储在 SharedArray

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

生成一个 "plain data" 不可变结构,即 isbits 函数 returns true.