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

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

  •  1
     
  •   15584185420 · 2018-03-23 21:04:02 +08:00 · 2696 次点击
    这是一个创建于 2197 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    内存是一定不够用的。

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

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

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

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

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

    AWS 比普通 VPS 复杂一些但是也差不多,主要是防火墙的入端口可能默认关闭。如果不会的话可以看看入门教程,AWS 文档很全的。其实用阿里云之类的国内云也差不多,机器可能贵点但是 fapiao 好开
    dezhou9
        9
    dezhou9  
       2019-01-11 13:21:19 +08:00 via Android
    cuda 编程了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5702 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:47 · PVG 09:47 · LAX 18:47 · JFK 21:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.