计算化学公社

标题: 论计算机采购时内存的重要性 [打印本页]

作者
Author:
jiewei    时间: 2014-11-11 11:23
标题: 论计算机采购时内存的重要性
随着人们计算任务的增加,计算体系的增大,计算资源的需求越来越大。
但是人们在配置电脑的时候过多的关注主板(服务器所带),CPU的性能,往往忽略了内存的需要。
如果你需要计算下述内容。那么建议买内存的时候尽量加大内存。至少应该保证每个核(线程4G)
比如你32线程(核)那么就购买128G内存。
否则,你会经常遇见内存不足的情况。
计算包括:高斯等量子化学程序的 激发态优化和紫外荧光的计算。 大体系很多时候 td(nstate=n)n值都会取得比较大。
castep/DMOL/QE/vasp的能带计算特别是牵涉到载流子的计算需要用能带曲线求电子有效质量。那么K点的撒点就会很多。这样内存的消耗是非常大的。
gamess的能量分解计算,要求的内存就更加大了。


作者
Author:
truemantwo    时间: 2014-11-11 14:03
机器内存64G,泪流满面地路过~~~~~
当初在讨论配置的时候,有两种方案:
1. 内存从64G升到128G,计算节点的数量少一些。
2. 内存维持64G不变,计算节点的数量多一些。
俺们选了第2种。
作者
Author:
jiewei    时间: 2014-11-11 14:36
truemantwo 发表于 2014-11-11 14:03
机器内存64G,泪流满面地路过~~~~~
当初在讨论配置的时候,有两种方案:
1. 内存从64G升到128G,计算节点 ...

现在是不是算我说的那个几个感觉总是内存不够用?
作者
Author:
truemantwo    时间: 2014-11-11 14:48
本帖最后由 truemantwo 于 2014-11-11 14:55 编辑
jiewei 发表于 2014-11-11 14:36
现在是不是算我说的那个几个感觉总是内存不够用?

组里面有人用Dmol和vasp,平时感觉64G内存基本够用,应付80%的计算任务无压力。但是体系不能“大”,“大”了内存就不够了。
但是呢,如果体系太大,到了内存不够用的程度,那么CPU也够呛了:计算时间可能要以月为单位。
一次,BOSS说到Intel最新的处理器有18个核,眼睛直放光有木有!
作者
Author:
truemantwo    时间: 2014-11-11 14:53
jiewei 发表于 2014-11-11 14:36
现在是不是算我说的那个几个感觉总是内存不够用?

另外,据我们自己测试,Materials Studio 7.0对多核的支持还是不错的。
一台双路计算节点,共16个核:
Forcite,Dmol这些模块,8核心所用时间基本是16核心的两倍(略有出入,差别不大)。
CASTEP没测试过,因为它的效率和VASP比,实在是太低了,而且狂吃内存。
作者
Author:
truemantwo    时间: 2014-11-11 15:00
对于一些大的模型,我的考虑是采用多机并行:各节点的内存少些,多用几台节点,这样计算时间能少些。

如果只是单机并行,即便内存能满足需要,由于CPU能力有限,计算时间可能还是很长。
作者
Author:
卡开发发    时间: 2014-11-11 15:26
MS下面,DMol3不怎么吃内存,也不是kpoints并行,但CASTEP集群并行效率和k点划分就很有关系了。我们组测试的情况看,单CPU核心数超过16核心性价比不好,主频合适的要花大价钱。经验上集群的单节点感觉64G还是相当够用的。
作者
Author:
truemantwo    时间: 2014-11-11 15:44
卡开发发 发表于 2014-11-11 15:26
MS下面,DMol3不怎么吃内存,也不是kpoints并行,但CASTEP集群并行效率和k点划分就很有关系了。我们组测试 ...

老兄所言不差。

不过呢,Dmol3不吃内存也是相对而言的,比如我们组有个同学,模型搞得太大,128G内存都不够用。:L

还有,Dmol3的多机并行效率不咋样,Forcite也是如此。我估计,MS公司把重点放在了单机并行上。
作者
Author:
卡开发发    时间: 2014-11-11 16:13
truemantwo 发表于 2014-11-11 15:44
老兄所言不差。

不过呢,Dmol3不吃内存也是相对而言的,比如我们组有个同学,模型搞得太大,128G内存 ...

我们组是小集群用的千兆网,一般看下来并行效率比较好也就3~4台左右,小体系可能2台比较好,DMol3和Forcite都是这样的。模型很大的话这个时候并行效率反倒是可能比较好。我不知道DMol3和Forcite这些计算量是按照什么划分的。计算量再大的情况可能我们这边就不是程序的限制了,千兆网能够承受的也有限。

这个不是MS公司的问题,毕竟采用的也是intel的编译器和mpi,同样的情况CASTEP好得多,只要节点数和约化k点数相同速度就是快,当然如果掌握技巧的话可以考虑手工调整为G-vector的并行,不过这方面我经验就很少了,调的好效率就很不错。
作者
Author:
truemantwo    时间: 2014-11-11 17:17
卡开发发 发表于 2014-11-11 16:13
我们组是小集群用的千兆网,一般看下来并行效率比较好也就3~4台左右,小体系可能2台比较好,DMol3和Forci ...

嗯,有道理。

可能是我测试的时候,采用的体系太小了,导致多机并行的效率不高。
作者
Author:
卡开发发    时间: 2014-11-11 17:22
truemantwo 发表于 2014-11-11 17:17
嗯,有道理。

可能是我测试的时候,采用的体系太小了,导致多机并行的效率不高。

Forcite我测试的情况一直放了1000个H2O,这个时候4节点以内并行才达到线性。
我估计和DMol3类似的SIESTA并行效率也不好,现在在打算上手这个程序呢。
作者
Author:
aqhuangry    时间: 2014-11-11 17:31
后悔,配服务器时内层配小了。
作者
Author:
jiewei    时间: 2014-11-11 18:01
truemantwo 发表于 2014-11-11 14:48
组里面有人用Dmol和vasp,平时感觉64G内存基本够用,应付80%的计算任务无压力。但是体系不能“大”,“大 ...

这不一定哦,比如说有机分子C2/C空间群里面有8个分子, dmol算能带的时候kpoint6*6*6,撒点多,k点取值多,也是超级耗内存的。
作者
Author:
jiewei    时间: 2014-11-11 18:03
卡开发发 发表于 2014-11-11 15:26
MS下面,DMol3不怎么吃内存,也不是kpoints并行,但CASTEP集群并行效率和k点划分就很有关系了。我们组测试 ...

dmol平时是不耗内存,如我回复楼上的,如果k点多,撒点也多。其实很耗内存的。
castep确实超级耗内存
作者
Author:
卡开发发    时间: 2014-11-11 19:15
jiewei 发表于 2014-11-11 18:03
dmol平时是不耗内存,如我回复楼上的,如果k点多,撒点也多。其实很耗内存的。
castep确实超级耗内存

k点在DMol3中应该不是最消耗内存的,理论上和个人经验上看,截断半径的影响相对更大。印象中要是没记错的话,截断半径是5次方标度的。另外数值积分以及弥散基组精度影响也很大,xfine的积分精度也算比较拖累计算速度的。

CASTEP相对来说做FFT的撒点依赖格子大小,这个是计算量大的原因之一,晶格比较小空体积比较小的情况接近的精度CASTEP搞不好比DMol3快得多。

所以具体测试怎么做法还是要看参考的体系是什么,否则意义就不大了。
作者
Author:
truemantwo    时间: 2014-11-11 19:31
卡开发发 发表于 2014-11-11 17:22
Forcite我测试的情况一直放了1000个H2O,这个时候4节点以内并行才达到线性。
我估计和DMol3类似的SIESTA ...

小弟测试Forcite时,用的是16核*2节点,感觉它的速度比16核*1节点没快多少,当然我的模型只有3000个原子左右,可能太小了。

不知道您测试时每节点用了多少个核?
作者
Author:
truemantwo    时间: 2014-11-11 19:35
jiewei 发表于 2014-11-11 18:01
这不一定哦,比如说有机分子C2/C空间群里面有8个分子, dmol算能带的时候kpoint6*6*6,撒点多,k点取值多 ...

有理。
总之搞计算化学,内存不足是最要命的问题。
内存决定了算多大/精确,CPU决定了算多快。
作者
Author:
卡开发发    时间: 2014-11-11 19:39
truemantwo 发表于 2014-11-11 19:31
小弟测试Forcite时,用的是16核*2节点,感觉它的速度比16核*1节点没快多少,当然我的模型只有3000个原子 ...

我看了一眼报告,前面说错了,当时算的是2700个水分子的固定时长动力学计算四阶段才有比较好的并行效率。当时用的应该是12核心的服务器,1~4节点全都测试了。我们测试了100、800、2700个,100的时候完全没加速,800的时候2节点最好,2700才呈现近似直线的曲线。
作者
Author:
truemantwo    时间: 2014-11-11 19:46
卡开发发 发表于 2014-11-11 19:39
我看了一眼报告,前面说错了,当时算的是2700个水分子的固定时长动力学计算四阶段才有比较好的并行效率。 ...

谢谢,您的测试结果和经验很有参考价值。
作者
Author:
卡开发发    时间: 2014-11-11 19:50
truemantwo 发表于 2014-11-11 19:46
谢谢,您的测试结果和经验很有参考价值。

恩,多交流么,大家相互学校:lol
作者
Author:
jiewei    时间: 2014-11-17 15:57
最近在算一个 200多原子的体系, 一个分子在晶胞里面, 用dmol或者castepk点基本不能算太大, 64G内存是完全不够用的节奏了...
作者
Author:
jiewei    时间: 2014-11-17 16:50
内存太重要...
作者
Author:
lou_cheung    时间: 2014-11-20 09:22
我觉得有时候在这个平台发一些机构的性能测试,让我们能规划好自己的资源使用
作者
Author:
psfan    时间: 2014-11-25 09:12
主要看每核内存配比,CPU访问内存是很吃带宽的。
作者
Author:
captain    时间: 2014-12-13 16:16
现在内存怎么那么贵 涨了一倍还多
另外采购时原装内存太贵 可以自己扩展
作者
Author:
lao7    时间: 2015-1-4 16:57
truemantwo 发表于 2014-11-11 14:03
机器内存64G,泪流满面地路过~~~~~
当初在讨论配置的时候,有两种方案:
1. 内存从64G升到128G,计算节点 ...

楼主CPU什么的?
作者
Author:
truemantwo    时间: 2015-1-4 20:41
lao7 发表于 2015-1-4 16:57
楼主CPU什么的?

Intel Xeon E5-26XX系列
貌似是个很常见的方案
作者
Author:
lao7    时间: 2015-1-5 14:59
truemantwo 发表于 2015-1-4 20:41
Intel Xeon E5-26XX系列
貌似是个很常见的方案

我最近想配台E5 v3处理器的工作站,有推荐的CPU吗?双路,结构优化,能量计算。
作者
Author:
zhanfei    时间: 2015-1-5 17:12
请问下作计算的机器一般配的是ecc内存还是ecc-reg内存,如果之后再加内存会不会容易出问题?
作者
Author:
truemantwo    时间: 2015-1-6 11:49
lao7 发表于 2015-1-5 14:59
我最近想配台E5 v3处理器的工作站,有推荐的CPU吗?双路,结构优化,能量计算。

sobereva有个帖,讲如何选择CPU的,你不妨看看。
作者
Author:
sobereva    时间: 2015-1-6 12:41
lao7 发表于 2015-1-5 14:59
我最近想配台E5 v3处理器的工作站,有推荐的CPU吗?双路,结构优化,能量计算。

2667或2680。没必要非得v3,和v2性价比没多大差异,多了个AVX2指令集暂时也派不上太大用场,而且v3还得DDR4
作者
Author:
yjcmwgk    时间: 2015-1-6 15:17
sobereva 发表于 2015-1-6 12:41
2667或2680。没必要非得v3,和v2性价比没多大差异,多了个AVX2指令集暂时也派不上太大用场,而且v3还得DD ...

俺觉得呢,与其花4114美元买两颗E5-2667v2,不如花3984美元买四颗E5-2637v2,核心数一样多,主频还高。sob姐觉得呢?
作者
Author:
sobereva    时间: 2015-1-6 15:53
yjcmwgk 发表于 2015-1-6 15:17
俺觉得呢,与其花4114美元买两颗E5-2667v2,不如花3984美元买四颗E5-2637v2,核心数一样多,主频还高。so ...

但是4颗就只能配两个机子,CPU以外的东西算进去的话,就很不划算了
作者
Author:
yiwc    时间: 2015-5-2 15:26
内存这东西,确实不特贵,但是特别重要
作者
Author:
bluewhale    时间: 2015-7-31 00:30
还有一点,V3需要配DDR4,这也贵,过一段时间价会下来。
作者
Author:
Light    时间: 2019-9-21 19:27
学习了
作者
Author:
NisangPro    时间: 2022-2-28 15:54
老师您好,请问本地自己的笔记本如何多分配内存给MS?
背景是这样的,我在自己的笔记本上用Forecite模块做动力学,能够运行,但是模拟时间长会出错,猜测是分配给软件的内存不足导致的。因为程序在运行时候,电脑还是有很多内存空闲的,所以想请问能不能自己定义MS 运行Forcite模块占用的内存呢?
作者
Author:
lao7    时间: 2022-4-27 03:29
这么说吧。你用久了,你发现机箱也很重要。是真的重要!
作者
Author:
lao7    时间: 2022-4-27 19:31
配机器讲究的是均衡。不均衡就是木桶原理。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3