中国分布式计算论坛

 找回密码
 新注册用户
搜索
查看: 11385|回复: 28

[分享] FAHer的扩展学习笔记(2010-06-14更新)

[复制链接]
发表于 2010-2-9 13:26:59 | 显示全部楼层 |阅读模式
本帖最后由 eqzero 于 2010-6-14 13:14 编辑

1、GROMACS
Folding@Home中,采用了一个经过特殊许可的非GPL版本的GROMACS作为客户端。GROMACS全名为GROningen MAchine for Chemical Simulations,http://www.gromacs.org/About_Gromacs,是一款由荷兰Groningen大学开发的分子动力学模拟软件包,现在则主要由Uppsala大学, 斯德哥尔摩大学 以及马普学会聚合物研究所共同维护。
由于针对不同的系统其代码进行了高度优化,GROMACS是目前最快的分子动力学模拟软件. 此外,由于支持不同的分子力场以及按照GPL协议发行,GROMACS拥有很高的可定制性。
GROMACS目前最新版本为4.07,可以到官方网站http://www.gromacs.org/index.php?title=Download_%26_Installation下载自己编译。
GROMACS支持并行/网格计算扩展,可灵活搭配MPI规范的并行运算接口,如MPICH、MPICH2、MPILAM、DeoinMPI等。
GROMACS软件的计算优势使其对运行平台有着独特的需求。首先,GROMACS是计算密集型的程序,浮点运算量很大。在通信网络不是瓶颈的情况下,CPU的利用率比较高,通常可以达到98%以上。但GROMACS程序对内存的要求很小,模拟一个原子数目为12000的系统,需要的内存大概为10MB。其次,GROMACS软件有两种应用方式,即传统MD方式和REMD方式。传统MD方式中,进程之间的通信比较频繁。使用高端的通信网络(Myrinet,Infiniband等)可以提高程序的并行加速比,提高并行计算的效率。REMD方式中,进程之间的通信量很小,使用千兆以太网就完全可以满足通信的要求,不必要使用高端的通信网络。并且,GROMACS软件运行时的输入文件和输出文件都不是很大,对I/O没有特别的要求。
GROMACS进行了大量的算法的优化,使其计算功能更强大。例如:在计算矩阵的逆时,算法的内循环会根据你自身系统的特点自动选择由C语言或Fortran来编译。GROMACS中对Altivec loops的计算,无论是在Linux还是Mac OS X.系统上,它都要比其它软件快3-10倍 ,而且GROMACS提高计算速度并不以牺牲计算精度为代价。

gromacs主要文件说明
全精度轨迹文件trajactory files (.trr) 该文件包含模拟系统模拟各个时间下的原子坐标,速度和受力等。
能量文件energy(.edr)该文件记录模拟输入文件中定义的能量组的各种相互作用能量等。
模拟轨迹单精度文件(.xtc)单精度轨迹文件,文件较TRR和TRJ小,为常用分析文件。包含模拟系统中原子坐标,模拟时间,和模拟盒子信息。
模拟断点文件(check point,.cpt)。该文件为模拟过程固定时间间隔产生,保存模拟系统所有信息。该文件一部分可以在能量文件(.edr)找到,一部分可以在双精度轨迹文件(.trr)中找到。如果模拟不幸因为外界条件中断(如断电,模拟人发脾气砸电脑等),可以使用该文件重新在断点处开始模拟,以节省模拟时间。同时也可以依靠该断点文件开始,并延长模拟计算。
模拟打包文件(.tpr)。该文件打包模拟需要各种信息,包括模拟系统,模拟控制等。(FAH运算中可以看到一个提示,.tpr版本旧了,为了更高效、节省内存,建议换新版本,继续追踪,寻找解决方案)

感想:为了解决.tpr版本问题,结果学了一堆分子动力软件知识,发现国内也有很多分子动力专业人员同样使用gromacs做研究,而且几乎是全部,gromacs几乎成为邻域内的标准,这样过去担心FAH计算结果不被公开利用的担心再次减轻,毕竟FAH和绝大多数同业使用的统一的运算基础。


2、MPI
MPI(Message Passing Interface )是1994年5月发布的一种消息传递接口。它实际上是一个消息传递函数库的标准说明,吸取了众多消息传递系统的优点,是目前国际上最流行的并行编程环境之一,尤其是分布式存储的可缩放并行计算机和工作站网络以及机群的一种编程范例。MPI具有许多优点:具有可移植性和易用性;有完备的异步通信功能;有正式和详细的精确定义。固而为并行软件产业的增长提供了必要的条件。
在基于MPI编程模型中,计算是由一个或多个彼此通过调用库函数进行消息收、发通信的进程所组成。在绝大部分MPI实现中,一组固定的进程在程序初始化时生成,一般情况下,一个处理器只生成一个进程。这些进程可以执行相同或不同的程序(相应地称为单程序多数据(SPMD)或多程序多数据(MPMD)模式)。进程间的通信可以是点到点的,也可以是集合的。
MPI只是为程序员提供一个并行环境库,程序员通过调用MPI的库程序来达到程序员所要达到的并行目的,MPI提供C语言和Fortran语言接口。
MPI是个复杂的系统,它包含了129个函数(根据1994年发布的MPI标准)。事实上,1997年修订的标准,称之为MPI-2,已超过200个,目前最常用的也有约30个。

更多兴趣可以在线加入清华同方课程
http://source.eol.cn/gjpxw/thujsj/014/content/catalog.htm


其他教程:
http://micro.ustc.edu.cn/Linux/MPI/MPI2/mpi2-report.html
http://micro.ustc.edu.cn/Linux/MPI/MPI11/mpi-report.html
http://micro.ustc.edu.cn/Linux/MPI/MPICH/index.html
http://www.netlib.org/utk/papers/mpi-book/mpi-book.html

感想:不知道能否改造下MPI接口,把集群功能加上去?(MPICH2好像集群功能挺强的)这样2~3台i7集群算bigadv?,理论上10分钟一个TPF,瓦卡卡,加上奖励,150k+的PPD了!得分是3台机器分别运算的2倍以上了.

3、i7&TurboBoost
记得从PIII开始,intel对超频有着阶段性不同的态度,并且逐步人性化升级,从屏蔽高端U降价卖(C300A)、到不锁倍频的至尊版(QX9650)、不锁倍频普通U(E6500K),直到i7&i5的TurboBoost官方超频(英特尔®智能加速技术)。
TB是个实用的功能,可以看成带质保的官方超频。结合FAH,也许将改变我们超频的观念和模式。
过去,我们超频往往为了更高多核的频率,都会关闭TB这个新兴的功能,而近段时间FAH跑下来,本人倒是对TB功能有了新的认知。
FAH的除了常见的多核a2/a3的WU外,还有不少的a1单核WU,因为只能利用单核,所以经常看到这种WU就有了丢弃的冲动,因为相当于8核的i7而言,剩下7核都在休息却并不省电(因为一般我们超频还会顺手把SST节能也关闭了)这个时候,TB的优势就出来了!让我们复习一下TB的设计吧:TB在单核任务满负荷运行时,会自动将CPU某颗核心超几个倍频,如2.66G默频的i7-920单核超频到3.2G!而全部核心都满载时,会自动将全部核心超1-2倍频,这一切都是在CPU能稳定运行的前提下。
http://www.intel.com/support/cn/processors/sb/cs-029908.htm

感想:寻找的每颗U的默认体质,开启TB功能超出最高外频吧,不用再担心a1单核包的效能了。
瞎想:虽然intel说1366比1156高端,然而就TB而言,intel还是偏爱小儿子......

4、Ati Stream&Nv CUDA
原本找了一堆资料写了架构的比较和优缺点,结果超频失败重启后一切都要重新来过,想想也许注定不要用架构来说明两种技术的差异?!
如果以我本人的例子来说,FAH估计是Ati的梦魇。3年多前,因为不喜欢游戏的我,为了能通过驱动软改成9700专业卡而入手了一张Ati的3850,附赠的光盘让我又把目光从SETI停算后再度回到分布式计算行列,然而,等到2009年底的时候,我从只玩集成显卡到近10片显卡,但都是Nvidia的......Ati主动推广的FAH却让它倒在了上面。
只有竞争才能保持公司的高效和活力,当Ati在服务器、笔记本、品牌机占有率达到高峰的时候,也是他没落的开始,并行运算上的失利可能不显山不露水,但是专业图形市场的溃败,使得Ati痛失最高利润的领域。
当然,Ati也不是一无是处,多年前,Ati显卡确实显示效果比较好,而且对标准化支持也好,比如当你没有安装驱动程序的时候,A卡明显比N卡流畅(黑苹果系统的话更明显),说明A卡对VESA显示标准支持彻底些。

2010-2-26补充架构差异的计算差异:(太复杂了,只能说说主要的)
从3850开始,A卡的研发开始像新的游戏DX10.1/11偏重,其架构有了新的变化,将纹处理单元:流处理器变成了1:5,比如4850是10个SIMD矩阵,每个矩阵16个SIMD单元,10*16*5=800sp,而Nvidia还是坚持传统标量的设计(g80/g92是1:2,gt200是1:3),显卡内部会把向量代码自动转换成标量代码,达到100%的运作效率,除了GPU中的其它因素例如带宽、存取延迟会对构成一定的性能影响,sp单元本身不存在任何延迟性能的结构。而Ati设计5个一组sp的时候,又把他们分成了ALU和ALU.transcendental,后者是个特殊的东西,某些指令它又不能执行(比如常用的cos、sin等),而一些指令又只能在它上面执行,因此A卡执行效能很难达到理论上的顶点。
另外一个值得注意的差别就是,N卡从g80开始就有了sp与核心频率异步的设计,一般sp的频率都在核心的2倍以上,而A卡的sp频率跟核心是一致的,所以,不考虑架构的差异,A卡sp数量也要折半跟N卡去比较性能。

5、FAHer超频新认知
超频就像免费的加餐,对PPD有追求的不可能不享受,问题是不要噎到。
跑FAH后,我个人超频的习惯和认知进步不少,之前的成果是找到了适合FAH的超频验证工具:LinX.
http://www.equn.com/forum/thread-25545-1-2.html
不过那个时候不知道所以然,经过摸索,终于知道为什么OR跑过半小时的超频,LinX有可能2分钟就奔溃的原因:SMP,并有了意外的收获:QPI。
OR虽然可以为每个核心开一个变态的计算来考验超频,然而OR不如LinX作为FAHer考验超频软件的主要原因就是没有考验核心间的协作!
为了验证,我又祭出了SETI(与OR类似的机理,BoincManager为每个核心单独开一个计算任务),OR过30分钟后的SETI果然跑得钢钢的!同样是分布式运算,因为FAH的CPU运算是基于GROMACS+MPI,因此可以多个核心并行运行一个WU,这就不但考验每个核心,还要考验核心间的协作。
到了这个时候,之前我们一直没有引起重视的QPI重又回到我的视线中,QPI一个重要的工作不就是核心间的数据交换吗?!经过初步验证,i7-860@4G + QPI:4.8G与ii7-965@3.6G + QPI:6.4G,在算bigadv时,fahmon显示的PPD基本相同(4G>3.6G不到1%)!

感想:之前看到不少高手超频指导都会建议降低QPI来拉高频率,这个建议FAHer应该忽略。

6、关于系统散热
天气逐渐转热,散热也成为了7×24运行FAH的头疼大事。
如果不想太折腾还是风冷吧,实在压不住,降将频,安全度过夏天很重要。
水冷,比较适合能折腾的人,老实说,水冷玩得不好,完全达不到高端风冷的效果的,水冷并不是7×24运行FAH的救命稻草,只是比小草粗壮一点点的小树苗,就是热容量比风冷大一点,其他跟风冷没有太多本质差别,唯一的优势就是可以通过水管把热量带出机箱通过大型冷排换热,而如果热传导没有控制好,往往效果还不如风冷,毕竟安装难道超过的不仅仅是1,2个数量级。
半导体制冷,短期内更像是神话,其原理就是通过N、P型半导体的通断实现热转移,名字有点误导性,半导体只是起到热转移的作用,而不是真正的制冷,跟CPU工作时因为电能没有充分利用转化成热能不同,半导体并不产生冷源,只是把热量从冷面传导到热面。他还是类似我们风冷中的热管、水冷中的水管一样,起热传导作用,而目前我们半导体制冷的业界能力还很弱,两个因素制约了半导体制冷的发展,我说的不是结露,说的一个是功耗,一个是温差限制,标称120W散热的半导体制冷的功耗超过100瓦,而当热面的温度超过60度后半导体制冷会烧毁,跟moseft三极管类似,半导体散热的热面也要贴散热片,如果散热片不能及时带走热量的话会有性命之虞。酷冷的V10是目前业界宣传最强的混合散热器,售价到了4位数,采用半导体、热管、风扇混合制冷,硕大的体积加上50w以上的自身功耗,官方提供给媒体的通稿测试成绩:压制超频后的i7也到了近80度,关闭半导体制冷模块则CPU只增加约4度......
压缩机制冷,就原理而已,压缩机制冷应该是目前散热的最节能和静音方案,其原理是利用特殊气体的高压释放过程中会吸收热量的特性,将液体通过压缩再释放的过程实现热量的吸收,然而其副作用是压缩其他的时候又会产生等量的热量(严格来说,电路、电机运行还会产生额外的热量),因此压缩机制冷用在电脑上也很困难,归根结底,它还是一个热传导装置,冰箱制冷只是因为压缩机通过液化气体将冰箱容积内的热量通过解压、压缩的过程传导出了冰箱而已(摸摸冰箱外壳就知道了),因为冰箱内的物体不会自发热,因此冰箱外面通过冰箱外壳用被动散热就能进行热交换了。

7、关于新能源
一直以为光伏板是太阳能应用的唯一模式,最近迷上了观看国家地理纪录片,其中一个太阳能的利用方式彻底颠覆了目前光伏板效能不高的情况下太阳能利用的常识!
美国沙漠上,一个“电阳”的项目,另辟蹊径地将现代科技和传统技术结合起来,使得太阳能利用率大大提高,有望以传统发电的开销和设备实现太阳能发电!其原理是用现代计算机技术配合蒸汽机发电(下图示意):第一期实验成功的项目在沙漠上放置了24000块镜片,通过200公里外的控制中心配合软件软件,分别自动将6000为一组镜片指向高塔上的锅炉,以类似我们小时候用凸透镜聚焦阳光点燃火柴一样的原料,加热锅炉产生的水蒸气驱动传统涡轮发电机来发电,其电量够一个小镇能源供应。
参考视频地址:http://v.youku.com/v_show/id_XMTY5MjQ4NzQ4.html
sun_elec.jpg

“电阳”项目实在不适合于家庭或者小规模的应用,只能期望政府的作为,离我们实在是远了点,而另一个在美国赌城拉斯维加斯附近的集光型太阳热能转换发电csp项目则离我们更近,个人感觉更加适合改造成家庭能源。
参考视频:http://ngc.ngfans.com/video-online-227.aspx
民间开发无污染能源,其实除了太阳能,风能也是非常有效且低价的方案,欧美已经有镇为单位开始修建风能发电,其建造成本和实施难度相对于太阳能更加低,可惜就像卫星锅被禁止来保护广电蛀虫不断绑架我们的电视收看驱动一样,我们的管理部门目前阶段只看到了民间的财富.......
参考视频地址:http://v.youku.com/v_show/id_XMTYwMjUwMTEy.html

感想:当技术没有突破光伏板的转换效能和成本的时候,不能光是砸钱充门面啊!

评分

参与人数 5基本分 +32 收起 理由
ming94816 + 2 精品文章
caozhonghua + 5 精品文章
hicherse + 3 例行公事
cicikml + 11 都是宝贵资料!
金鹏 + 11 涨知识了

查看全部评分

发表于 2010-2-9 13:43:00 | 显示全部楼层
看不怎么懂
 楼主| 发表于 2010-2-9 13:49:19 | 显示全部楼层

回复 #2 caozhonghua 的帖子

呵呵,我也不懂,就是看着FAH运行时老提示.tpr版本48,需要68什么的开始研究的......
发表于 2010-2-9 15:01:31 | 显示全部楼层
学习了,涨知识了,感谢兄弟FAHER讲堂今日开讲
 楼主| 发表于 2010-2-9 15:26:32 | 显示全部楼层
又加入i7的TB功能学习......
发表于 2010-2-9 22:04:36 | 显示全部楼层
如果a1的时候TB可以把核心搞到4G.别的休眠就好了.
有没有办法整个8个a1并行.
发表于 2010-2-10 00:19:07 | 显示全部楼层

回复 #5 eqzero 的帖子

又加入i7的TB功能学习......

这个不错,学习了~脱离硬件已经很久很久了~
 楼主| 发表于 2010-2-10 10:54:38 | 显示全部楼层

回复 #6 Flyhawk1 的帖子

理论上可以,就是开8个单核的VM,可惜不是自动的。
发表于 2010-2-10 17:09:29 | 显示全部楼层
感谢楼主!都是很宝贵的资料,以后宣传或其他途径都能用到。
发表于 2010-2-15 23:36:14 | 显示全部楼层
新版主真是细心人!这些东西的确很受用……
 楼主| 发表于 2010-2-19 20:28:53 | 显示全部楼层
晕倒!编辑没有存盘.......
发表于 2010-2-20 09:23:50 | 显示全部楼层
强势学习
 楼主| 发表于 2010-2-25 13:39:18 | 显示全部楼层
再次更新了
发表于 2010-2-25 14:38:59 | 显示全部楼层
超频的部分很有参考价值
 楼主| 发表于 2010-2-26 17:50:24 | 显示全部楼层
再次更新A/N卡架构差异
您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

小黑屋|手机版|Archiver|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2019-10-23 05:00

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表