系统配置:每次运行前,Ubunut 14.04,RAM:128 GB,Intel Xeon E5-2630 v3 @ 2.40GHz×16,~5 GB / 128 GB。
我有两个HDF5文件,每个文件大小为22.5 GB。 python代码模板的格式为:
for i in range(10)
h5f = h5py.File(<FILE_PATH_1>,'r')
data1 = h5f[<VARIABLE_NAME>][:] #22.5 GB size
h5f = h5py.File(<FILE_PATH_2>,'r')
data2 = h5f[<VARIABLE_NAME>][:] #22.5 GB size
# Do some processing
del data1
del data2
现在,加载data1
大约需要10秒钟。 RAM高达~25 GB。当第二个变量开始加载时,它会快速填满内存,直到大约32 GB(尽快填充data1
),然后变得非常慢(大约每秒0.2 GB)。所以加载data2
大约需要100秒。如果我加载另一个文件,它同样很慢。
基本上,32 GB RAM填满后的任何加载都很慢。有什么方法可以解决这个问题吗?如果这需要以不同的方式编写HDF文件,我也对此持开放态度(显而易见的是,保持每个文件<16 GB,以便两个文件不会填充RAM直到32 GB)。