24小时热门版块排行榜    

查看: 5723  |  回复: 23

aaq2800

铁杆木虫 (知名作家)

【答案】应助回帖


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:14:52
能量图中曲线一直是上下摆动,这个问题提高截断能量可以很好的解决
11楼2011-11-04 09:06:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunboyccc

铁杆木虫 (正式写手)


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:14:42
引用回帖:
8楼: Originally posted by lbambool at 2011-11-03 14:27:52:
能算多少原子主要由内存大小决定,算多久主要由CPU数量和主频决定,同时两方面又都和体系的电子复杂程度和计算精度有关,一般来说,96G内存castep可以算600-800个原子吧,简单的一点的估计可以算到1000个,不过12 ...

有些误人,呵呵,之前测试显示,两颗Xeon5650 2.66G,12核,耗费内存能力比两颗四核心的E5620大很多,内存也不是按比例分配的,据测试结果分析,有磁性原子掺杂的情况下,能算144个原子就不错了,精度高一点的话加U就困难了,算光学性质也费劲,给一个参考,48原子磁性掺杂高精度计算10天正常!
12楼2011-12-14 19:56:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

souledge

专家顾问 (著名写手)


uuv2010(金币+1): 多谢指导! 2011-12-15 13:13:00
引用回帖:
12楼: Originally posted by sunboyccc at 2011-12-14 19:56:15:
有些误人,呵呵,之前测试显示,两颗Xeon5650 2.66G,12核,耗费内存能力比两颗四核心的E5620大很多,内存也不是按比例分配的,据测试结果分析,有磁性原子掺杂的情况下,能算144个原子就不错了,精度高一点的话 ...

具体的内存分配方式可以看CASTEP的输出文件,里面有提到总共多少个node参与计算,这些node又被分为多少个group,而每个node的平均使用内存为多少。
如果用过PWscf的话,应该能体会到,这个差别是在于pool的个数的不同~一般当node数多的时候,为了提高速度,会增加pool数。这个跟CASTEP及VASP中的node分group差不多的~具体细节上有没有区别就不清楚了~毕竟PWscf玩得很细,不但分pool,还分image……
思想重于技巧,内涵重于表象
13楼2011-12-14 20:10:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunboyccc

铁杆木虫 (正式写手)


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:13:16
引用回帖:
13楼: Originally posted by souledge at 2011-12-14 20:10:57:
具体的内存分配方式可以看CASTEP的输出文件,里面有提到总共多少个node参与计算,这些node又被分为多少个group,而每个node的平均使用内存为多少。
如果用过PWscf的话,应该能体会到,这个差别是在于pool的个数 ...

呵呵,我只是就“单机计算”说一说,并且不同的软件(或相同软件不同版本)或不同系统情况又不同啦,没有涉及小型机多节点计算。
我的感觉:单机、windows系统的情况下,同样是四核或六核CPU,主频越高、性能越好的CPU,需内存越多,对6核2.66GCPU来说,可能对每个核配置8G内存就够,但对六核3.33GCPU来说,每个核需配置16G内存,这就像大师傅需要大的操作空间一个道理。
此外,计算效率方面,众所周知Linux强于Windows,所需内存又不一样,所以配置计算用单机要综合考虑,希望以上对一些虫友能有帮助。
关于Castep输出文件中可以看到内存使用情况应该是在配完机器后,在使用Castep计算后的结果里面出现,那是后话啦。越说越多。。。不好意思
14楼2011-12-14 22:05:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

souledge

专家顾问 (著名写手)

★ ★ ★
uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:13:28
fzx2008(金币+2): 谢谢指教 2011-12-15 13:25:13
引用回帖:
14楼: Originally posted by sunboyccc at 2011-12-14 22:05:44:
呵呵,我只是就“单机计算”说一说,并且不同的软件(或相同软件不同版本)或不同系统情况又不同啦,没有涉及小型机多节点计算。
我的感觉:单机、windows系统的情况下,同样是四核或六核CPU,主频越高、性能越 ...

这就是说得单机计算啊……只不过在CASTEP和VASP中都是使用node来表示一个并行进程,而在PWscf、Abinit中则是使用Processor来表示的而已~
尽管软件之间的设计各有不同,但是总的来说对内存的使用规则是一定的,那就是分node(或者processor)并行,并且在node数足够多时为减少对同一个内存有过多进程进行读写,再分组成为不同池的方法。
而作为一个DFT软件,其内存的占用仅仅与K点和K点需要展开的平面波数密切相关。当然,可能还需要点其他的开销,这些开销在K点和平面波面前就几乎可以忽略了,下面是典型的平面波赝势方法的内存开销结构:
CODE:
     Largest allocated arrays     est. size (Mb)     dimensions
        Kohn-Sham Wavefunctions         1.34 Mb     (   4004,  22)
        NL pseudopotentials             1.47 Mb     (   4004,  24)
        Each V/rho on FFT grid          1.19 Mb     (  77760)
        Each G-vector array             0.24 Mb     (  32031)
        G-vector shells                 0.01 Mb     (   1535)
     Largest temporary arrays     est. size (Mb)     dimensions
        Auxiliary wavefunctions         5.38 Mb     (   4004,  88)
        Each subspace H/S matrix        0.12 Mb     (     88,  88)
        Each matrix      0.01 Mb     (     24,  22)
        Arrays for rho mixing           9.49 Mb     (  77760,   8)

     Initial potential from superposition of free atoms

     starting charge   34.99996, renormalised to   36.00000
     Starting wfc are   26 atomic wfcs

     total cpu time spent up to now is     84.16 secs
     per-process dynamical memory:    22.7 Mb

所以,对于给定的系统,其内存需求是有上限的,并不是说随便给个体系,只要加足够多的内存,就能足够的快一样(当然,很多不懂系统的人,总以为对于只使用2GB内存的前提下,8GB内存会比4GB内存快)。
所以,如果一定要说同核前提下,高频的CPU会使用更多内存,那就只有可能是使用过程中程序根据CPU速度自动判断了分组情况,增加了内存池的数目而已。这个信息在castep输出文件中,完全不算后话。
至于在Windows下和*nix下的速度问题。以CASTEP来说,给出了三种(5.5开始大概是四种)运行模式,其中不使用任何硬盘空间作为缓存的为speed方式。但是就是这个方式,在Windows下运行时,如果内存不是非常多,并且使用的比较古老的对内存管理比较失败的系统(比如XP),那系统就不会完全把程序请求的空间分配在物理内存中,而是选择了一部分放在虚拟内存中。对程序本身来说,这两个部分没有区别,但是从实际来说,这跟选择default甚至memory方法运行本质上区别不大,于是速度变慢。而在*nix下,则是严格先分配物理内存,只有不足时才会分配到swap空间,所以*nix下时,swap空间一般都一直是0%的占用率。
另外,Windows的shell和kernel直接一体化的设计,在图形方面响应很好,但是在分配计算工作时就非常痛苦,所以如果用Windows版的Abinit时,如果使用所有核心计算,系统会卡顿得非常严重,不管CPU是不是很牛X,但是同样的计算在Linux下就流畅得多。
DFT及DFT软件的计算机使用本身是有些不确定性,但是这些不确定性都是在一定的理论范围内的,不至于像LS所说的那样悬忽。
最后,不得不说,支持“内存决定能否计算,CPU决定计算时间”的说法,这个从DFT程序的设计来说是完全合理的论断。
思想重于技巧,内涵重于表象
15楼2011-12-15 01:23:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhengjinde

木虫 (正式写手)


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:14:28
得看这工作站是你一人使用还是很多人用了,如果这机器十来人使用,那可能用起来还不如一台万把元的单机
16楼2011-12-15 09:39:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunboyccc

铁杆木虫 (正式写手)


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:14:10
引用回帖:
15楼: Originally posted by souledge at 2011-12-15 01:23:11:
这就是说得单机计算啊……只不过在CASTEP和VASP中都是使用node来表示一个并行进程,而在PWscf、Abinit中则是使用Processor来表示的而已~
尽管软件之间的设计各有不同,但是总的来说对内存的使用规则是一定的,那 ...

呵呵,非常感谢你的指教。
CASTEP输出文件会给出一些提示,但经验告诉我,它并不准,就以计算时间为例,CASTEP最终结果会给出一个任务计算时间,我计算几百个任务后得出的结论是,机器给出的时间与时钟得出的并不一致,差很多。至于内存的使用量的问题,我也是根据实际使用情况得出的结论,而不是软件的输出结果。我用两颗Xeon5650与两颗Xeon5620分别用24G与48G内存测试了许多任务后,根据内存的实际使用情况得出的结论,当然不一定是真理。
其实“内存决定能不能算,Cpu决定任务计算快慢”是对的,我只是说能算600-1000原子有点误人,因为我实际使用这种配置的机器根本算不了那么多,当然不同计算方法也许能够实现。
17楼2011-12-15 12:45:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunboyccc

铁杆木虫 (正式写手)


uuv2010(金币+1): 欢迎参加讨论 2011-12-15 13:14:17
此外,我觉得内存使用不仅与K点和E-Cut有关,比如在算电荷密度时,提高精度即scaling-factor的设置,对内存量使用影响巨大,只用单CPU6核计算四个原子可以耗费30G内存。
如果我的话引起误会还请原谅,只是根据一点实际的使用经验,并不一定科学,请多指教!
18楼2011-12-15 13:01:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lbambool

木虫 (著名写手)

引用回帖:
12楼: Originally posted by sunboyccc at 2011-12-14 19:56:15:
有些误人,呵呵,之前测试显示,两颗Xeon5650 2.66G,12核,耗费内存能力比两颗四核心的E5620大很多,内存也不是按比例分配的,据测试结果分析,有磁性原子掺杂的情况下,能算144个原子就不错了,精度高一点的话 ...

我前面也说了能算多少原子和各项设置精度、电子复杂程度、算法等都有关系,电子结构越复杂,设置精度越高,内存开销越大,这是正常的,所以能算多少个原子没有一个确定的值。所以说单核8G对某些体系只能计算144个原子也是可能的,但不能说对所有体系都只能算144个原子,如体系含有一些电子结构比较简单原子,计算精度、复杂度不太高的可能会多得多。
至于说两颗Xeon5650 2.66G 12核耗费内存能力比两颗四核心的E5620大很多的说法,我觉得可以这样理解,两颗5620是四核,只8个核心,同样的体系,同样的精度设置,内存开销必然会比12个核心少三分之一,比如说12核同时计算需要至少48G内存的话,8核计算有32G就可以计算了。
另外一个问题,单核所需内存是否与主频相关没做过严格测试,但从理论上来说,大部分计算软件在软件各项设置精度都相同的情况下,每个软件都有一个预计内存开销,从各软件的帮助里没有看到这个数字与主频有相关性,只与我们要计算的体系结构、选定的选项与精度等因素有关,当然,个人发现实际的内存开销要比软件里要求的要大一些。
只要任务能提交并成功计算那就说明内存是够的,计算开始到完成时间多长主要还是取决于主频和计算核心数,各节点间通信质量等因素。内存方面,如果够大就选speed,用完所有物理内存再用磁盘缓存,如果不够大的话可以选memery,根据物理内存数来决定用多少缓存。
个人理解,未必正确,权当抛砖引玉。
Θ抚琴闹市外,独闲山水间Θ
19楼2011-12-15 16:23:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunboyccc

铁杆木虫 (正式写手)

引用回帖:
19楼: Originally posted by lbambool at 2011-12-15 16:23:03:
我前面也说了能算多少原子和各项设置精度、电子复杂程度、算法等都有关系,电子结构越复杂,设置精度越高,内存开销越大,这是正常的,所以能算多少个原子没有一个确定的值。所以说单核8G对某些体系只能计算14 ...

您好!其实您说的关于内存的分配没错,我只是觉得根据我算的情况达不到600-1000原子而已,我觉得对于新手配置个机器不容易,怕误导他们,复杂的情况他们并一定了解,有什么说的不对的地方还请海涵!也请今后多多指教!
20楼2011-12-15 17:02:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kelvinpolyu 的主题更新
信息提示
请填处理意见