作者 | 孙鸣远
题图 | Folding@Home
十几年前,不少人都拥有过这样的经历:同时开着好几个QQ挂机,目的是为了早日升级出头像名片旁边的太阳(等级);后来网络游戏也发展出类似的套路,通过挂机获得经验或者金币。无论是哪种形式,无非都是用户利用电费去置换些蝇头小利,而相关公司也正是通过这种手段来促进日活数据。
十年前,比特币出现,人们在这其中看到了巨大的利益,于是疯狂采购硬件进行“挖矿”。由于显卡是主要“算力”,而厂商并未预估到“矿工”如此的疯狂,一度导致市场中显卡的售价翻倍上涨,但仍供不应求。
就在这一幕幕“荒诞”事情发生的同时,有一个早在2000年就启动的“挂机”项目——Folding@home(下文统称F@h),却鲜为人知,也正是这个项目,让我们每个人都有机会参与到“攻克新冠病毒”甚至是“拯救世界”的队伍中。
Folding@home
F@h是一个分布式计算项目,用于模拟蛋白质的分子动力学,其最初的重点是观察分析“蛋白质折叠”问题,但后来已经逐渐延伸到解决诸多生物医学问题,例如阿兹海默症、癌症、囊性纤维化、COVID-19、埃博拉病毒等。
该项目在2000年10月1日由斯坦福大学Pande实验室的Vijay Pande教授成立,并于2019年交由华盛顿大学圣乔治分校的Greg Bowman博士(Pande之前的学生)领导。项目成立后发展迅猛,很多在校学生、在职科学家加入项目志愿者行列,帮助项目方翻译网页、传播推广。目前通过F@h项目的协助,一共诞生了223篇学术论文。
(Dr.Vijay Pande)
例如Folding@home借助谷歌Exacycle(谷歌的大规模并行的云资源)研究的B2AR蛋白质动力学,G-蛋白偶联受体(GPCR)在许多医学和生物过程(尤其是哮喘和心脏病)取得重要成绩。该研究成果在化学顶级期刊《Nature Chemistry》上发布。
所谓分布式计算,即是将一个需要巨大算力的问题拆分成众多小部分,然后将这些“小问题”分配给许多算力设备进行处理,最后把这些反馈的计算数据综合起来得到最终的计算结果。简单理解就是反向的“云计算”,由中心向众多参与者的设备发送“题目”,通过无数设备的“算力”计算出模拟结果,并将数据发送回中心。(云计算则是各个终端设备将未处理数据发送“中心”,由“中心”计算后将结果发送回各个终端设备)
理论上来说,类似“蛋白质折叠”这类大型科研课题,应该由超级计算机来解决,不过超级计算机虽然算力强大,但一方面使用成本极高,对于刚刚起步的F@h项目来说难以承担,另一方面对于“蛋白质折叠”这类“长时间模拟、随机性极强”的课题,并非一朝一夕就能见成效,即需要一个能够长期提供算力的系统。
所以相对廉价、高效的计算方式——分布式计算,成为了F@h的首选。如果你看过刘慈欣的《球状闪电》,或者你是天文学爱好者,那么你一定听说过SETI@home,同样也是利用分布式计算的方式,通过分析世界上最大的射电望远镜Arecibo获得的数据,帮助分析搜寻外太空文明。(可惜的是SETI@home项目在2020年3月宣布停止发包,进入休眠期)
当人们结束工作休息时,这一屏幕保护程序开始运行,这台看似休息的电脑实际上已经加入到寻找外星人的行列中:接受、分析来自SETI@home已被分解成“工作单元”的数据,分析工作结束后系统会自动联机将分析结果传回主服务器,然后再接受另一新的“工作单元”。
——刘慈欣《球状闪电》
虽然在一开始F@h项目的志愿者还很少,不过后来随着人们对其逐渐了解,加入F@h的数量越来越多。在2014年时,其峰值计算速度到达45petaFLOPS,已经接近当时世界最快的超级计算机“天河二号”(54petaFLOPS)。尽管如此,相比于前文提到的“游戏挂机”“挖矿”等数量,F@h仍然属于小众项目。
(红色为F@h算力,黑色以深浅分,分别为超级计算机前三名的算力)
直到2020年2月28日,F@h的现任团队领导者Greg Bowman博士发布了一条推特引起了无数人的关注,称:“F@h将参与到对抗新冠病毒(COVID-19)的研究中。”
一时间,大量志愿者加入到了F@h项目中,到3月19日,已经有超过40万人下载了F@h客户端,志愿者达到了10倍增长。仅仅用了2周左右时间,F@h就初步模拟出了新冠病毒S蛋白的结构。
(COVID-19 Spike Protein,图/F@h)
3月21日,F@h算力已经超过了470peteFLOPS,相当于目前世界上最快超级计算机IBM Summit峰值算力的2倍多。
(IBM Summit Supercomputer)
仅仅一周后,3月27日,Bowman再度宣布好消息:“F@h的算力已经超过了exaFLOP(1exaFLOP=1000petaFLOPS),F@h成为世界上第一个拥有exaFLOP算力的计算系统。”(相当于7台IBM Summit的s峰值算力)
短时间大量涌入的算力,让F@h始料未及,一时间分配任务的服务器都无法应对,最后F@h团队将服务器数量几乎翻倍,才得以缓解压力。
到这里,你应该对F@h的历史背景和目前状况有了大致的了解。那么F@h与对抗新冠疫情和治疗诸多不治之症之间是什么关系呢?
蛋白质之谜
蛋白质,是人类生存所必需的物质,是组成人体一切细胞、组织的重要成分。蛋白质在人类身体中无处不在,所有生命活动都离不开蛋白质,可以说没有蛋白质就没有生命。而恰恰就是保证人类生命存在的物质,同时也是杀死人类最大的罪魁祸首。
很多目前医学无法治愈的疾病,都是由蛋白质自身“出问题”引起的,而并非外界病毒、细菌所致,例如癌症、阿兹海默症、帕金森症等。
蛋白质合成的过程为:从DNA转录成mRNA(信使RNA)开始,借助tRNA(转运RNA)携带氨基酸,在rRNA(核糖体)中合成。
(DNA转录mRNA)
(tRNA携带对应氨基酸,按照mRNA密码子顺序,在rRNA中合成蛋白质链)
简单来说,就是蛋白质是由氨基酸合成而来,而氨基酸排列的顺序记录在DNA中,通过信使(mRNA)将DNA中包含顺序信息传递出去,借助帮手(tRNA),按照顺序将氨基酸带进合成工厂(rRNA)进行“组装”,并合成一条“首尾相接”的蛋白质链条。
蛋白质在合成之初虽然是长链形状,但在几毫秒甚至几微秒过后,蛋白质就会折叠成为三维形状,并且只有在折叠完成后才具有活性(相应的作用)。
(蛋白质折叠示意图)
问题就出在这里。
蛋白质如果出现错误折叠,不仅无法起到正常的作用,还会造成严重的灾难。因为实际上大部分蛋白质拥有复杂的三维结构,并且不是简单聚集在一起,而是有规律地构成了一种“机器”。
例如下图中,该蛋白质位于细胞膜上,利用ATP提供能量,将酸性物质排放出细胞外,用于调节细胞pH值。
再比如细菌身上的“尾巴”,也是一种“机器”,通过内部提供能量,形成旋转运动,驱动细菌移动。
这还只是一部分简单的蛋白质作用的例子,试想一下,一个如此复杂的“机器”,如果零部件的位置装配错误,会造成什么样的后果?
为了防止类似的事情发生,细胞内存在一种酶,能够对“蛋白质折叠”过程起到监督作用,让其按照正确的方式折叠;此外细胞还有第二层措施,如果发生错误折叠,这些错误的蛋白质将会被丢入细胞质进行分解,以防止有问题的蛋白质“捣乱”。
然而人体能够利用20种氨基酸能合成30000多种蛋白质,且每一分每一秒都在发生,比如正在看这篇文章的你,身体内就有无数的机器在运作。举个例子,全球的机器数量加在一起,都不如你的手指尖中机器数量多。所以在诸多因素影响下,蛋白质错误折叠还是会发生,从而引发一系列疾病。
比如,蛋白质错误折叠导致的非溶水性蛋白质,最终形成纤维聚集体,即淀粉样沉淀物,最终导致淀粉样变类型疾病。(肾脏疾病、心脏疾病、皮肤疾病等)
再比如,某些蛋白质错误折叠后,变为毒性蛋白,并且具有传染性,比较出名的是朊病毒。这类病毒即便没有DNA、RNA遗传物质,仍具有传染性,可最终引起多种疾病,例如疯牛病、克雅氏病。
如果错误折叠的蛋白质发生在神经系统中,则会导致神经性疾病,该类疾病可以是无家族史、或遗传的,随着年龄增加患病率增加(即错误折叠发生概率增加),例如阿兹海默症、帕金森症。
另外被人熟知的癌症,也是由于蛋白质发生错误折叠所引起的,比如生成的错误的酶物质引起细胞环境变化,导致DNA发生突变等情况,致使细胞无限自我繁殖。
尽管科学家发现了蛋白质折叠与DNA中记录的氨基酸“排列顺序”相关(诺奖获得者Christian B. Anfinsen),以及与各个氨基酸之间的相互作用相关(Levinthal),但蛋白质如何在如此拥挤的“环境”中,以微妙级别快速依靠自身完成对应的折叠,仍然存在很多谜团。
(蛋白质折叠时在实际细胞中所处的环境,图中运动速度是现实生物细胞中的1/100万)
蛋白质发生折叠的各种可能性,高达10的300次方,所以F@h项目就是通过庞大的算力,模拟和预估的蛋白质折叠情况,为攻克各种医学问题提供帮助。
回过头来,医学上对付病毒的方式,无外乎两种,特效药和疫苗。病毒的结构非常简单,由蛋白质外壳和遗传物质(DNA或RNA)组成。疫苗的作用即是让身体免疫系统认识病毒“面貌”,以产生对应的抗体,对其进行消灭;特效药则是通过“攻击”病毒宿主或者本体,令其无法繁殖和传播。无论哪种方式,都离不开“认识”病毒,而识别的方式即是病毒的蛋白质外壳。
上文中提到过蛋白质就像一座机器一样运作,而不同于宏观世界中的机器,蛋白质“工作”的基础原理是通过“吸收”一个分子,然后“释放”一个分子。特效药即是通过这种方式结合病毒蛋白质,令蛋白质让应该持有的“坏蛋”扔掉,以达到消灭病毒的效果。
(蛋白质工作基本原理)
这就是为什么F@h可以为攻克新冠病毒提供帮助,利用其蛋白质折叠模拟系统,模拟计算病毒蛋白质外壳具体折叠结构,为制造疫苗和特效药提供最直接的帮助。
如何加入F@h
F@h发展过程中,Intel、Google、NVIDIA、AMD(前ATI)、索尼、苹果、戴尔等厂商形成了一个支持Folding@home项目发展的同盟,一直致力于改进软件以及第三方工具做出更好的接口,同时为项目提供了制度、资金、服务器设备支持。
其中索尼还将运算平台扩展至了PS3和Xperia手机,虽然后来PS3客户端和安卓客户端相继下架,但未来可能再度加入运算阵营。
所以目前想要加入F@h,首先你需要一台电脑,基本上十年前的电脑也能参与,如果有独立显卡当然是最理想的。
Cpu:
英特尔:奔腾4以上
AMD:与奔腾4同时代以后都行
显卡:
A卡5XXX系列以上(十年前的显卡)
N卡8XXX系列以上(Fermi架构及之后)
操作系统:Windows XP以上,MacOS、Linux(包括Debian、Ubuntu、Redhat等版本)
其次,到F@h官网(https://foldingathome.org/start-folding/)下载相关软件,并进行安装。(MacOS和Windows的操作界面是一样的)
(选择Custome install)
(数据存储位置尽量放非系统盘,因为会反复擦写一些数据,并且在执行模拟时会占用一大块空间)
(图中标红的打开屏幕保护设置不要选,容易导致不稳定)
安装完毕后,会弹出一个Web Controller的网页,无视关闭掉即可,MacOS系统直接打开FAHcontrol软件,Windows系统在右下角找到图标,右键点击后选择Advanced Control。
(Mac系统找到软件打开即可)
(Windows在右下角图标右键)
打开软件后,如果不关心为哪个队伍做出贡献,则选择Fold Anonymously,即最终积分会算在Default Team分组里。不过中国分布式计算队伍十几年前就入驻了F@h,队伍ID为3213。
选择了Configure Identity后,在Name中填入任一名字,Team Number中填入中国的队伍3213。
点击Passkey下方超链接后,填入自己的ID名字和邮箱,收到一串密码,作为加入队伍的验证。
填入确认后,即可开始设置软件。点开Configure菜单,选择slot标签卡,gpu不用设置,双击cpu名字。
下拉后选择Add,并在Name中填入client-type,Value中填入advanced。
在Advanced标签卡中,Cause Preference选择any,也就是不限制某个领域的模拟任务,官方称选择Any选项,如果电脑性能匹配,则会优先分配新冠疫情的工作单元。其他保持默认即可。
最后一个Expert标签卡,可添加可不添加。在左侧栏中,点Add,填入Name:next-unit-percentage,Value:90。此举目的是当上一个任务完成至90%时,自动下载下一个任务。
然后确认后,即可点击Fold按钮,开始计算。右上方那个滑条,可以选择使用多少电脑资源,以防影响自己正常电脑使用。
笔者在另一台带有独立显卡的windows平台作了一番测试,拉满功率时,CPU会全核跑满,GPU则是其中一个计算单元跑满。
软件可以设置为空闲时自动开启运算,利用平时闲置不用状况下的算力进行计算。不过我尝试了在单GPU满速跑F@h时候,开启其他游戏的状况(分别是Pubg和COD),F@h会自动降低算力,给电脑用户正常使用让路,测试结果两款游戏比平时帧率下降15%左右。
结语
中国的互联网发展迅速,但网民的总数量其实并不能客观反应一个国家信息化程度的高低,也无法证明一个国家科普的水平。而在参与类似F@h分布式计算的项目统计中,欧美国家领先非常多,尤其北欧国家,几乎一半的家用电脑都参与了分布式计算。
甚至全球一个最大的“挖矿”组织Curecoin早在几年前就加入了F@h项目,截止目前,由他们提供的算力和模拟结果,占到全部成绩的近60%。另外仅仅一周前,加拿大油管博主Linus也发起了自己的队伍,仅在一周时间内,Linus队伍的分数直接排在第四名。
这种聚合每个普通人力量改变世界的项目,虽然无法获得眼前的金钱利益,但相比挖矿、游戏挂机等行为,显然要有意义的多。
(FAH View中可以看到自己运算模拟的蛋白质结构)
多一个人、多一台电脑加入F@h,就能更早深入了解新冠病毒,就能更早获得特效药和疫苗,也就能拯救更多的人。你还在等什么呢?
附:
1.下载模拟运算任务时候,可能需要梯子,因为服务器位于美国。不过任务包并不大,一般仅有十几M。
2.显卡运算得到的分数(PPD,Point Per Day)远高于CPU,所以可以只开GPU,效率高很多且不影响正常使用。
3.模拟运算的任务id可以看出是否在模拟新冠病毒项目。
4.不要用政治眼光看待这件事,所有的结果都会同步在Github公布,显示全球志愿者的成果,任何国家的科学家甚至是普通人都可以查看。
5.不存在盗用算力挖矿行为。
6.另外一个平台Bonic可以在手机端运行,涉及领域较多,感兴趣也可以下载来尝试,记得插电源线。
7.AlphaGo母公司DeepMind也在几年前推出了AlphaFold,利用人工智能模拟蛋白质3D结构,不同的是,AlphaFold是通过基因序列信息来进行预测。