python - 处理大矩阵的硬件要求 - python

标签 python numpy matrix

我正在开发一个 python 项目,我需要使用大小约为 10000X10000X10000 的矩阵。

考虑到:

  • 矩阵将是密集的,应该存储在 RAM 中。
  • 我需要在该矩阵上执行线性代数(我认为使用 numpy),大约 O(n^3),其中 n=10000 次操作(可并行化)。

我的要求现实吗?在合适的时间内,我需要以这种方式工作的硬件要求是什么?

如果可以提高性能,我也愿意切换语言(例如,在 C 中执行线性代数运算)。

最佳答案

那么,第一个问题是,您将在矩阵中存储哪种类型的值? 假设它将是整数(并且假设每个字节都使用 ISO 规范的大小,4 字节),您将有 4*10^12 字节要存储。这是大量信息 (4 TB),因此,首先,我不知道您从哪里获取所有这些信息,我建议您只加载其中的一部分,您可以轻松管理。

另一方面,因为你可以并行化它,我会推荐你​​使用 CUDA,如果你买得起 NVIDIA 卡,那么你会有更好的性能。

总而言之,很难只在 RAM 中获取所有这些信息,并且使用并行语言。

PD:您对算法时间复杂度的 O() 估计使用错误。你应该说你有一个 O(n),即 n=size_of_the_matrix 或 O(nmt),即矩阵的维度 n、m 和 t。

关于python - 处理大矩阵的硬件要求 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555120/

相关文章:

python - 在 unittest 中使用 numpy.testing 函数

python - 确定 python 对象之间的差异

python - 优化零重力二维空间中粒子的重力计算

python - 有没有更简单的方法来使 pandas.Series 单调?

python - 过滤二维数组并从中间返回坐标

python - 通过沿对角线复制给定数组在 numpy 中创建矩阵的有效方法

python - View 中的 Django api 调用无法保存外键 userId

python-3.x - PEP 302 示例 : New Import Hooks

macos - 在 mac osx 上使用 pypy 安装 numpy

r - 选择由 R 中的随机向量指定的列