|
利用电脑闲置计算能力,助生命科学研究破解难题
——Folding@Home分布式计算项目显卡篇
在你的身边,是否有亲友正忍受着病痛的煎熬?当你看到病魔对人类的肆虐,是否想站起来共同抗争?做到这一切并不需要你有多么高深的医学知识,也不需要你具备顶尖的医疗设备,你可以利用手中电脑的闲置计算能力,加入Folding@Home分布式计算项目,为人类早日攻克医学难关贡献一份力量。
一、Folding@Home项目简介
Folding@Home项目最初由纽约斯坦福大学创立,遍布在世界各地的志愿者加入到这个项目中来,只有一个目的——早日攻克癌症等疾病难关。Folding这个单词的意思是“折叠”,人体的基本物质是蛋白质,蛋白质在实现自己的各种功能(例如修复损伤的组织、调节生理机能、传递能量与营养物质等)前,需要将自己折叠起来。虽然蛋白质折叠对所有的生物来说是最基本的和最明确的事实,但它的折叠过程对人类而言仍然是个未解之谜。此外,当蛋白质没有正确的折叠(误折)时无疑会产生严重的后果,许多著名的难以治愈的疾病便由此而生,例如阿兹海默症(Alzheimer's)、疯牛病(Mad Cow, BSE)、可传播性海绵状脑病(CJD)、肌萎缩性脊髓侧索硬化症(ALS)、帕金森氏症(Parkinson's)、艾滋(AIDS)、许多的癌症(Cancers)等等,便与蛋白质误折有着千丝万缕的联系。
Folding@Home是一个研究蛋白质折叠、误折、聚合及由此引起的相关疾病的分布式计算工程,这项工程就是利用遍布在世界各地的志愿者提供的计算能力,对蛋白质的折叠过程进行模拟,以找出各种误折情况下可能产生的后果,从而指导着医学研究人员有针对性的攻克某种误折所产生的疾病。蛋白质的折叠速度很快,往往只有百万分之一秒,现有的技术手段根本无法进行观察和监测,只能采用分子学原理进行数学模拟。而使用CPU进行模拟,运算一天也只能模拟十亿分之一秒的折叠过程,以这样的速度模拟蛋白质的一个折叠过程需要1000天,也就是30年!即便能模拟蛋白质的一个折叠过程,可这样的一个折叠过程对于蛋白质的功能实现,完全毫无用处。想想吧,某些疾病从蛋白质被感染、产生变异、体内潜伏到完全发作,可能长达数月甚至数年,在这期间蛋白质一刻也不停歇地在进行各种折叠。可想而知,研究蛋白质的折叠需要多么浩大的计算量!为此,斯坦福大学开发了Folding@Home项目,将蛋白质的某个折叠过程再细分成若干个“小段”,任何人都可以参与到Folding@Home项目中来,运行客户端程序,从斯坦福大学的服务器上取得一小段计算任务,在本地进行计算,计算完成后,再将计算结果发送给斯坦福的服务器,由服务器再对这些结果进行汇总、分析,帮助医学研究人员进行更快速度的蛋白质模拟折叠。因此说,越多的人参与进来,才会有越强大的计算能力,才会越早攻克蛋白质误折等生命科学难题。

看似简单的蛋白质,却是人类赖以生存的基础
目前,Folding@Home项目的参与者已经超过一百二十万,以这些志愿者提供的强大计算能力(已超过5PFlops,是超级计算机TOP 500榜首IBM Roadrunner的五倍)为依托,现时阶段已经可以实时模拟毫秒级的蛋白质折叠过程!Folding@Home项目取得的巨大成功和成就大大加速了医学研究的进度,相关研究成果已经加快了阿兹海默症、帕金森氏症等疾病的治疗过程,并且成功模拟了HIV(AIDS艾滋病病毒)整合酶的DNA粘合结构域的展开。了解HIV整合酶的展开过程将让人类可以从本质上揭开HIV病毒侵蚀健康细胞的核心过程,从而找到对抗AIDS的正确方法……在生命科学研究领域取得的这些巨大成就让人类看到了早日战胜癌症等重大疾病的一线曙光。
作为对社会大众的回馈,斯坦福大学对Folding@Home项目的所有研究成果完全公开,任何医学研究人员都可以登录到Folding@Home项目页面(http://folding.stanford.edu/),查阅项目进度、其他研究人员的科研成果或提交自己的研究课题供下一阶段进行研究,Folding@Home项目已经进入良性发展轨道。
对于普通的硬件玩家来说,随着ATI/nVIDIA新架构的显卡加入通用计算能力,斯坦福大学也相应开发了使用显卡流处理器进行蛋白质模拟折叠运算的客户端,使用显卡进行模拟折叠运算。由于显卡中的流处理器具有更高的浮点运算能力,使用显卡进行计算可以获得比CPU运算更快的速度,而且GPU客户端的配置也要比CPU版本容易些。本文就将以GPU客户端为例进行讲解,引导新手朋友快速加入Folding@Home项目,在系统闲置时使用手中的显卡进行蛋白质模拟折叠运算,让大家都能够投身到这项关系自己以及子孙后代的伟大事业中来。
需要注意的是,Folding@Home GPU客户端由于使用了显卡中的流处理器进行运算,因此只支持ATI Radeon 2xxx系列以及nVIDIA GeForce 8系列以后的显卡,较早的显卡则不予支持。
二、Folding@Home客户端设置
在开始之前,首先需要明白一个概念:使用显卡进行运算只占用很少的CPU资源,主要占用的是显卡资源。因此不会对上网/聊天/下载等较多依赖CPU的日常操作带来什么影响,但是会对3D游戏带来明显的影响,例如游戏画面卡、不流畅等等,你可以设置运算任务的GPU占用率来解决这个问题,后文还将仔细说明设置方法。
一)单GPU客户端设置
说明一下,由于Folding@Home客户端是英文版本,初次使用需要安装和进行一些设置。为了降低门槛,便利大家迅速上手,笔者将Folding@Home GPU客户端制作成了绿色免安装版,大家可以点击下面的链接下载三个分卷压缩包,然后解压到d:\gpu目录(或其他自定义的目录)。
folding-gpu.part01.rar
(292.97 KB, 下载次数: 7109)
folding-gpu.part02.rar
(292.97 KB, 下载次数: 7268)
folding-gpu.part03.rar
(292.97 KB, 下载次数: 7150)
folding-gpu.part04.rar
(292.97 KB, 下载次数: 7347)
folding-gpu.part05.rar
(292.97 KB, 下载次数: 7223)
folding-gpu.part06.rar
(292.97 KB, 下载次数: 7452)
folding-gpu.part07.rar
(292.97 KB, 下载次数: 7454)
folding-gpu.part08.rar
(292.97 KB, 下载次数: 7120)
folding-gpu.part09.rar
(292.97 KB, 下载次数: 7068)
folding-gpu.part10.rar
(292.97 KB, 下载次数: 6940)
folding-gpu.part11.rar
(292.97 KB, 下载次数: 7248)
folding-gpu.part12.rar
(153.53 KB, 下载次数: 7029)
注:由于Folding@Home客户端需要联网下载/上传数据包,请设置防火墙允许通行。
进入d:\gpu目录,可以看到如下文件和目录:

GPU客户端的文件
其中Fah.exe便是Folding@Home GPU客户端的主程序,双击启动,会自动缩小到任务栏托盘区,下面还需要对这个程序进行一些调整:
在任务栏托盘区图标上右键单击,选择“Configure…”,如图:

打开Folding@Home客户端配置对话框
出现配置对话框,这个对话框的“User”选项卡用来配置用户资料,例如用户名、队伍编号等等。这里简单说下:

GPU客户端用户配置对话框
在“User name”输入框中输入自己的用户名,可以是英文字母、数字或它们的组合。笔者的用户名是ONLY,请改成自己的用户名。
“Team number”框中默认已经是中国队的编号3213,也可以改为你所在的队伍编号,一般情况下无需再动。
“Passkey”用来对客户端加入密码保护,一般留空。

网络配置对话框
“Connection”选项卡则是对网络部分的设定。勾选“Ask before use network”则是每次下载/上传运算任务时都会弹出对话框确认(适合按流量计费的环境),一般情况下不用勾选,让客户端自动进行下载/上传的操作。“Set a proxy server”则是设置代理服务器的相关信息,请酌情填写使用。这个选项卡最下面的“Allow recepit of work assignments and return of results greater than 10MB in size”则是允许接收大于10MB的数据包,建议勾选。

高级配置对话框
最后,则是“Advanced”选项卡,也会是日常使用中较多调整的地方,这里详细说说。
- “Core priority”——核心优先级,为了不影响其他任务,默认是低优先。
- “CPU Usage percent”——GPU占用率调整。别看这里显示为CPU,实际是GPU,最低为5%,最高则为100%,这个占用率百分比可以根据电脑的应用情况随时调整。对于下载/上网/聊天等应用来说,主要占用的是CPU资源,对显卡的依赖较小,这里可以把GPU占用率调得高些;3D游戏等较多依赖显卡GPU的应用则可以调低些,防止互相影响。另外,若你的显卡性能在游戏中本已捉襟见肘,建议在游戏时干脆关闭客户端,待游戏完毕后再启动。
- “Checkpointing frequency”——存盘时间,默认调整为3分钟。这个时间应该调得尽量低,以防止意外停电等事故造成任务丢失。
- “Do NOT lock cores to specific CPU”——防止多个GPU任务占用同一个处理器核心造成系统异常,建议勾选。
- “Machine ID”——对于独立显卡的系统来说,第一张显卡为1,第二张为2……,最大为16。关于多GPU的设置,后面还会有较详细的讲解,这里暂且打住。只有一张显卡时请设为1。
注:对于主板集成显卡,又插有独立显卡的朋友,请在BIOS中关闭集成显卡,然后将这里的Machine ID设为1(某些情况下或需要设置为2才可以正常工作)。
都设置好后,点击下面的确定,即可安心等待显卡运算完毕。对于GTX 260+显卡来说,运算完一个数据包的时间大约需要1.5小时左右。
二)多GPU客户端设置
此处以两张相同的显卡同时运行Folding@Home客户端为例进行说明。对于某些显卡来说,不同流处理器数量的显卡混插会造成运算效能的大幅下降(G200核心没有这个问题)。
同样下载上面的压缩包,新建两个文件夹:d:\gpu1、d:\gpu2,将压缩包中的文件解压,分别拷贝一份到这两个文件夹,然后将执行文件改名为Fah1.exe、Fah2.exe。
使用记事本打开gpu2文件夹中的client.cfg文件,将machineid=1改为machineid=2以对应到第二张显卡,修改好后保存退出。分别双击Fah1.exe和Fah2.exe启动两个客户端。
如果你的系统中不止两块显卡,你可以按照上面的方法,新建gpu3、gpu4……目录,并将对应目录中的程序重命名为Fah3.exe、Fah4.exe……,以及client.cfg文件中的machineid=改为3、4……,将所有的显卡都投入到folding运算中去!
三)多GPU运算的一些注意事项
1、由于Folding@Home客户端不支持SLI或者CrossFire技术,所以需要在驱动程序中关闭相关选项,并使用多个Folding客户端一一对应多个GPU核心。另外,对于9800GX2、GTX295、4870×2、4850×2之类的双芯显卡,每个GPU核心均需相应的Folding程序与之对应。例如,一块GTX 295显卡,需要两个Folding客户端与其GPU核心一一对应。
2、多个GPU核心同时运行Folding@Home客户端时,除GPU1以外其他每个显示核心必须对应一个默认显示器。在XP下可使用扩展桌面实现,Windows 7下可以用横向扩展实现,Vista系统则由于限制,只能都接上显示器或者假负载(某些单PCB双芯的GTX295也如此)。如下图示:

多GPU同时运行需要扩展显示
三、Folding@Home运算效能监控——FahMon
对于Folding@Home运算来说,一个最重要的指标就是ppd(point per day,每日运算量),这个值描述了一天中所有计算过的数据包的总分值。斯坦福大学对每一个折叠片段都定义了一个分值,运算完成并上传到服务器后,这个分值会记录在你的贡献值中,而斯坦福大学开发的Folding@Home客户端,却无法直接看到自己系统的ppd值,这就需要个能实时监控系统ppd得分的工具,那就是FahMon软件。
这个软件是由外国人编写的,为了中文用户使用的方便,国内的高人进行了汉化和绿色打包处理,可以点击下面的链接下载:
FahMon_2_3_99_1_绿色汉化版.part01.rar
(292.97 KB, 下载次数: 7149)
FahMon_2_3_99_1_绿色汉化版.part02.rar
(292.97 KB, 下载次数: 7005)
FahMon_2_3_99_1_绿色汉化版.part03.rar
(292.97 KB, 下载次数: 7167)
FahMon_2_3_99_1_绿色汉化版.part04.rar
(292.97 KB, 下载次数: 7224)
FahMon_2_3_99_1_绿色汉化版.part05.rar
(96.17 KB, 下载次数: 7223)
下面讲讲这个软件的使用。将下载得到的软件包解压到某个文件夹,例如d:\FahMon,双击fahmon.exe程序,即可打开fahmon主界面:

FahMon程序主界面
需要手动添加客户端信息:

添加需要监控的客户端

客户端信息对话框
在对话框中填入客户端的信息。名称栏作为识别,可任意填写,只要自己知道含义即可。位置栏点击右边的浏览按钮,定位到前面建立的d:\gpu文件夹,选择完毕点击确定退出。

已经添加进来的客户端
返回到监控窗口,此时可以看到已经添加进来的客户端的运行情况。最前面的小方块显示客户端的运行状态——黑色:断开连接;黄色:连接不稳定(有时刚启动时如此);红色:客户端出错;绿色:客户端运行状态良好。
对于多GPU的情况,只需重复上面的步骤,逐一加入相应的客户端文件夹即可。
四、显卡的调整与优化
由于显卡在进行Folding运算时负载一直较高(根据你设置的GPU占用率有所不同),所以温度会一直维持在比较高的水平,想要尽可能的降低温度就需要对显卡的电压和风扇转速等进行调整,这就需要修改显卡的BIOS。下面以P654公版某品牌 GeForce GTX 260+显卡为例,讲解下降低显卡核心电压和调整风扇转速的方法。开始之前,请先备份显卡BIOS,防止刷新显卡出错后再刷回来。
1、确认显卡可以稳定运行Folding@Home客户端的最高频率;
启动RivaTuner,将显卡的核心/流处理器/内存频率等调整到某个数值,例如:核心675MHz、流处理器1453MHz、显存1151MHz。启动Folding@Home客户端,观察计算过程的稳定度如何。在这里需要重点说明的是,由于Folding运算是由流处理器进行,所以流处理器的频率会对Folding效能有较大的影响,核心频率和显存频率反而不是那么重要,而且,核心频率不变或者微弱的提升对显卡的温度控制也有好处。因此,建议核心频率和显存频率只做小副的调整或不调整,而对流处理器频率进行较大幅度的调整(流处理器频率的大幅提升不会造成显卡温度的大幅上升)。
另外,还需要注意的是,由于每次从斯坦福大学服务器下载到的任务包计算量不同,有些计算量繁重,有些相对轻松(俗称毒包、甜包),同样的频率在跑甜包时比较稳定,也许跑毒包就会出错,因此超频请适可而止,不可超得太多。一般公版260+的稳超核心频率上限大约为700MHz左右,流处理器频率上限为1500MHz左右。也可保持核心频率基本不变,将流处理器频率超到1500MHz左右,以获得效能和温度之间的平衡。
2、使用NiBiTor对显卡的BIOS文件进行调整;
启动NiBiTor,读入显卡的BIOS文件,如图:

某品牌公版GTX 260+调整后的频率
将频率调整到可以稳定运行folding运算的数值。

在电压页面可以看到,核心电压一共三档:1.05V、1.06V、1.12V,默认情况下进行运算的核心电压为1.12V。
在电压页面,将电压降低一档到1.06V。

BIOS温度页面
在温度页面,点击右下角的“Fanspeed IC”按钮,打开风扇速度控制对话框,如下图。

BIOS中的默认温控设置
在这个对话框中可以看到,默认情况下风扇提速点的温度较高,这会使得显卡在进行Folding运算时核心温度一直处于较高的水平,我们下面来修改它,使得显卡风扇在较低的温度下也能提速,从而降低核心温度。如下图:

调整后的显卡温控设置
如上图修改后显卡待机温度低于50℃时风扇转速为40%,温度高于55℃开始慢加速,温度高于60℃时进一步加速,超过65℃则风扇高速运转(大约为70%~80%转速),当超过82℃风扇开始100%全速运转,超过90℃显卡保护性关机。按此方法调整后,夏天高温天气(室温28℃左右)跑Folding@Home客户端时的显卡核心温度可以控制在63℃~69℃(甜包温度较低,毒包温度较高),比起公版BIOS动辄80℃的高温要降低不少,不仅工作起来大大放心,而且还可延长显卡等部件的使用寿命。
如果觉得修改后显卡散热器的噪音较大,可以把上面那个40%转速调小点(例如35%~30%,不建议低于30%)降低风扇转速。或者,改装其他散热效能强劲的静音版显卡散热器。
3、将调整后的BIOS刷入显卡。
按上面的步骤将显卡的BIOS修改好后,点击NiBiTor主菜单File-->Save BIOS,将BIOS保存为.rom文件,然后启动电脑进入DOS状态,使用NVFlash程序将新的BIOS文件刷入显卡。至于显卡BIOS刷新的具体步骤,各位可以跟帖发问或者在论坛搜索以前的文章,这里同样不再赘述。
需要注意的是,上面修改BIOS时我们还降低了显卡核心的电压。假若在刷新后发现显卡出现工作不稳定、蓝屏死机、ppd骤降等异常状况,则说明显卡无法在较低的电压下稳定工作,那么就在BIOS中将核心电压恢复到原来的数值并重新刷新。 |
评分
-
查看全部评分
|