【问题标题】:Matrix library for large matrices? [duplicate]大型矩阵的矩阵库? [复制]
【发布时间】:2013-04-12 12:10:40
【问题描述】:

是否有任何 C++ 矩阵库可用于大型矩阵(无法放入 RAM 的矩阵)?

或者也许是一些旨在处理大型矩阵并且相对于基本矩阵库更快的库?

我认为 Windows 可以通过使用交换文件来处理这样的矩阵,但也许有为此优化的算法?

我找到了ScaLAPACK,但不确定它是否是最佳选择。

【问题讨论】:

  • 您是否正在考虑一个不适合 ram 的矩阵?
  • 它能长多大?上限是多少?
  • 如果它可以放入 ram 中,您将谈论超过 10 亿个单位 (8gb)。如果它是一个较小的大矩阵,你听说过 cuda 吗?您总是可以手动将矩阵保存在磁盘上
  • 我不知道矩阵的大小,但是例如我有 8Gb 的 RAM 并且使用 matlab 我的内存不足(如果我使用交换文件需要太长时间),我也想要我的程序也可以在 2Gb RAM 机器上运行。例如我需要计算 SVD 之类的操作。
  • 我也听说过 CUDA,但 GPU 的内存更小,大约 1 Gb。

标签: c++ windows matrix linear-algebra


【解决方案1】:

您可以使用block matrix multiplicationinversion 来减少交换。

如果您的矩阵是sparse(即它们有很多元素为零),您可以使用特殊的存储方法来节省内存。

【讨论】:

  • 特别是,eigen 库有一些功能可以处理稀疏矩阵。
猜你喜欢
  • 2011-03-17
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2021-05-02
  • 1970-01-01
相关资源
最近更新 更多