有限内存上的大矩阵上的矩阵运算

时间:2010-09-20 12:11:05

标签: c++ optimization matrix

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

1 个答案:

答案 0 :(得分:2)

两个建议:

  1. 使用mmap2系统调用来映射包含输入和输出数据的文件。这允许您映射最多2 ^ 44个字节的文件,并将它们视为已经在内存中。即您只需使用标准指针语法来访问数据,操作系统负责从磁盘读取或写入磁盘,而无需担心它。不仅如此,mmap比手动文件I / O快许多倍 - See this SO post

  2. 阅读Ulrich Drepper的“What every programmer should know about memory”。他处理的一个示例问题是高度优化矩阵运算。