C++ 有限内存上大矩阵的矩阵运算
我需要在我的电脑上做一些矩阵运算。这些矩阵的大小为1000000000或更多,有些操作需要TB的内存。显然,这些数据不能直接加载到内存中并进行计算。我可以用什么方法在我的计算机上求解这些矩阵?假设矩阵不能使用矩阵优化进一步缩减,并且已经以紧凑形式存储。我正在考虑使用一些内存映射方案,但需要一些想法。两个建议:C++ 有限内存上大矩阵的矩阵运算,c++,optimization,matrix,C++,Optimization,Matrix,我需要在我的电脑上做一些矩阵运算。这些矩阵的大小为1000000000或更多,有些操作需要TB的内存。显然,这些数据不能直接加载到内存中并进行计算。我可以用什么方法在我的计算机上求解这些矩阵?假设矩阵不能使用矩阵优化进一步缩减,并且已经以紧凑形式存储。我正在考虑使用一些内存映射方案,但需要一些想法。两个建议: 使用系统调用映射包含输入和输出数据的文件。这允许您映射最多2^44字节的文件,并将其视为已在内存中。也就是说,您只需使用标准的指针语法来访问数据,操作系统将负责从/向磁盘读取或写入数据,而
您是否尝试过使用64位操作系统,让VM子系统来完成繁重的工作?您将这些存储在什么磁盘上?您正在运行什么操作系统?Win、Linux还是基于POSIX兼容的Unix系统(如MacOSX)?正如Paul指出的,无论运行什么,它都应该是相关的64位版本。当我试图分配这些矩阵时,它会耗尽内存。这是一个比我更好的参考答案+1对于您,sirI将尝试使用mmap2。谢谢