Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File io 将大型数值输出保存到Julia 1.0.0中的本机文件_File Io_Julia_Hpc - Fatal编程技术网

File io 将大型数值输出保存到Julia 1.0.0中的本机文件

File io 将大型数值输出保存到Julia 1.0.0中的本机文件,file-io,julia,hpc,File Io,Julia,Hpc,我正在尝试在hpc集群中运行一个程序。很遗憾,我无法在群集上安装外部软件包(例如JLD2)。这是一个暂时的问题,应该得到解决 我不想一直等待,我想知道是否有任何方法可以在没有外部依赖的情况下在Julia中保存大输出(2-3gb)。大多数输出是数字矩阵。我以前使用的是以HDF5格式存储数据的JLD2 附加问题:使用shell命令是否有解决方法,例如使用管道获取输出和使用awk//grep保存数据?(类似于julia-p12 main.jl | echo“file”)。您可以将其作为二进制文件。类似

我正在尝试在hpc集群中运行一个程序。很遗憾,我无法在群集上安装外部软件包(例如JLD2)。这是一个暂时的问题,应该得到解决

我不想一直等待,我想知道是否有任何方法可以在没有外部依赖的情况下在Julia中保存大输出(2-3gb)。大多数输出是数字矩阵。我以前使用的是以HDF5格式存储数据的JLD2

附加问题:使用shell命令是否有解决方法,例如使用管道获取输出和使用awk//grep保存数据?(类似于julia-p12 main.jl | echo“file”)。

您可以将其作为二进制文件。类似于

julia> x = rand(2,2);

julia> write("test.out", x)

julia> y = reshape(reinterpret(Float64, read("test.out")), 2,2)

julia> x == y
true
例如,如果缺少的只是HDF5,您可以使用。

您可以尝试使用标准库

要使用多个变量,只需按顺序存储它们:

x = rand(10)
y = "foo"

using Serialization
# write to file
open("data.out","w") do f
    serialize(f, x)
    serialize(f, y)
end

# load from file
open("data.out") do f
    global x2, y2
    x2 = deserialize(f)
    y2 = deserialize(f)
end

或者你可以把它们放在一个
目录中
,然后存储起来。

是的,这很好,但是它会因为大量的输出变量而变得混乱。我喜欢JLD格式,您可以将所有工作空间变量保存为输出,并用python或matlab等不同语言读取。我现在无法在集群帐户中安装软件包,因此NPZ无法工作。也许我会按照你的建议手动编写每个变量。我的源代码不是我自己写的,所以操作变量很麻烦。谢谢你!你有文件访问权限吗?只需在本地下载包(和依赖项)并上传到
.julia
文件夹。这是一个好主意!这样我就不必乱搞变量了。我要试试这个。这个很棒,适合我的目的!但是我不明白
f
是什么意思?那只是暂时的东西吗?我可以使用其他字符吗?它是一个文件句柄:有关do块的更多信息,请参阅。