【问题标题】:How to store structs in a SharedArray in Julia?如何将结构存储在 Julia 的 SharedArray 中?
【发布时间】:2016-09-02 04:26:41
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    创建一个“普通数据”不可变结构,即, isbits 函数返回 true 的一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2018-06-16
      • 2020-11-12
      • 2012-04-09
      • 2019-12-22
      • 2021-04-21
      相关资源
      最近更新 更多