c – 在有限内存上的大矩阵上的矩阵运算

我需要在我的电脑上做一些矩阵操作.这些矩阵大1000000×1000000甚至更多,有些操作需要TB内存.显然这些不能直接加载到内存中并进行计算.我可以用什么方法在计算机上解决这些矩阵?假设使用矩阵优化不能进一步减少矩阵,并且已经以紧凑的形式存储.我正在考虑使用一些内存映射方案,但需要一些想法. 最佳答案 两个建议:

>使用mmap2系统调用来映射包含输入和输出数据的文件.这允许您映射最多2 ^ 44个字节的文件,并将它们视为已经在内存中.即您只需使用标准指针语法来访问数据,操作系统负责从磁盘读取或写入磁盘,而无需担心它.不仅如此,mmap比手动文件I / O-See this SO post快许多倍.
>阅读Ulrich Drepper的“What every programmer should know about memory”.他处理的一个示例问题是高度优化矩阵运算.

点赞