首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  算法

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

  •  1
     
  •   15584185420 · 206 天前 · 597 次点击
    这是一个创建于 206 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    内存是一定不够用的。

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

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

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

    8 回复  |  直到 2018-04-02 20:24:51 +08:00
        1
    jadec0der   206 天前
    内存多大一定不够用?要是 128G 能解决的话建议直接上 AWS,秒级计费,并不贵
        2
    snachx   206 天前 via iPhone   ♥ 1
    如果不是稀疏矩阵就分块做吧
        3
    15584185420   203 天前
    @jadec0der 讲真末流 985 高校是买不起这种设备的,还是需要在算法上进行攻克,如果原始数据量提升一倍,对内存和计算量的需求会增加 32 倍。
        4
    15584185420   203 天前
    @snachx 如果是稀疏矩阵,有什么好的办法吗?
        5
    jadec0der   203 天前   ♥ 1
    @15584185420 空间复杂度确实是一个问题,必须优化。不过我觉得 AWS 应该比自己买机器便宜的多。

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

    AWS 比普通 VPS 复杂一些但是也差不多,主要是防火墙的入端口可能默认关闭。如果不会的话可以看看入门教程,AWS 文档很全的。其实用阿里云之类的国内云也差不多,机器可能贵点但是 fapiao 好开
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   760 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 23ms · UTC 18:47 · PVG 02:47 · LAX 11:47 · JFK 14:47
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1