(求助)进行科学大量计算时,内存有限问题

2018-03-23 21:04:02 +08:00
 15584185420

本人地球物理行业研究生,用 c++写代码,实现算法,算法原理没必要在此陈述。

具体可以抽象理解为计算一个存有 10 的 15 次方个 double 的一个矩阵,乘以一个向量 10 的 9 次方个 double 的向量。

内存是一定不够用的。

那么在计算中,遇到这种大量数据需要计算的情况,是如何解决的呢?

如何优化算法?使得程序能逐渐计算所有数据?

本人用 C++水平,相当于 matlab 能发挥的水平。也就是平时搞个矩阵加加减减乘一乘。调用别人的库函数这种(一般用 EIGEN )

2728 次点击
所在节点    算法
9 条回复
jadec0der
2018-03-23 21:35:31 +08:00
内存多大一定不够用?要是 128G 能解决的话建议直接上 AWS,秒级计费,并不贵
snachx
2018-03-23 22:35:20 +08:00
如果不是稀疏矩阵就分块做吧
15584185420
2018-03-26 13:37:22 +08:00
@jadec0der 讲真末流 985 高校是买不起这种设备的,还是需要在算法上进行攻克,如果原始数据量提升一倍,对内存和计算量的需求会增加 32 倍。
15584185420
2018-03-26 13:38:57 +08:00
@snachx 如果是稀疏矩阵,有什么好的办法吗?
jadec0der
2018-03-26 14:01:31 +08:00
@15584185420 空间复杂度确实是一个问题,必须优化。不过我觉得 AWS 应该比自己买机器便宜的多。

比如 m5.12xlarge 是 48 核 192G 内存应该够你用了吧,一小时 0.4016 刀,合人民币两块五。计算一次 10 小时的话才 25 块钱,也能开 invoice。相比之下买台 16 核 32G 的 hp z840 工作站得两万五,够算一万小时的了。
snachx
2018-03-26 15:34:33 +08:00
@15584185420 #4 稀疏矩阵的话就用自己熟悉语言中现成的库来做啊,比如 python 的话,用 scipy.sparse
15584185420
2018-04-02 20:07:24 +08:00
@jadec0der 求教,怎么用 AwS
jadec0der
2018-04-02 20:24:51 +08:00
@15584185420 这…就注册帐号,新建 EC2 instance,然后连上去用就行了

AWS 比普通 VPS 复杂一些但是也差不多,主要是防火墙的入端口可能默认关闭。如果不会的话可以看看入门教程,AWS 文档很全的。其实用阿里云之类的国内云也差不多,机器可能贵点但是 fapiao 好开
dezhou9
2019-01-11 13:21:19 +08:00
cuda 编程了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/440892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX