人妻少妇乱子伦精品_日韩人妻潮喷视频网站_日本最新最全无码不卡免费_日韩AV无码中文

當(dāng)前位置: 首頁(yè) > 科技新聞 >

在家就能研究新冠病毒,有臺(tái)電腦就可以

時(shí)間:2020-04-11 15:58來(lái)源:網(wǎng)絡(luò)整理 瀏覽:
本文篇幅較長(zhǎng),共4部分,分別解答了4個(gè)很多人可能關(guān)心的問(wèn)題。這四個(gè)問(wèn)題間的上下文關(guān)聯(lián)不大,可選擇性閱讀。 1.Folding@home究竟是

本文篇幅較長(zhǎng),共4部分,分別解答了4個(gè)很多人可能關(guān)心的問(wèn)題。這四個(gè)問(wèn)題間的上下文關(guān)聯(lián)不大,可選擇性閱讀。 1.Folding@home究竟是個(gè)什么樣的項(xiàng)目? 2.新冠病毒研究,為什么需要算力?算力能為新冠病毒研究提供什么幫助? 3.Folding@home的架構(gòu)是否真的能夠有效利用起全球范圍的計(jì)算機(jī)或更多設(shè)備的算力? 4.英偉達(dá)為什么重點(diǎn)呼吁PC游戲玩家?

前一陣英偉達(dá)官方發(fā)推,呼吁PC游戲玩家聯(lián)合起來(lái)對(duì)抗2019-nCoV新冠病毒,方法是把自己閑置的GPU算力都捐出來(lái),幫助科學(xué)家們做病毒研究[1]。通過(guò)采用名為Folding@home(在家折疊?)的軟件,就能讓每個(gè)在家用電腦的人把算力捐出來(lái):每個(gè)人一點(diǎn),就能以全球組合成網(wǎng)絡(luò)的方式,構(gòu)建起一個(gè)龐大的超級(jí)計(jì)算機(jī)。

在家就能研究新冠病毒,有臺(tái)電腦就可以

微博人民對(duì)于英偉達(dá)的此次呼吁似乎多有質(zhì)疑之聲,不少人認(rèn)為這個(gè)所謂的Folding@home只是在為他人做嫁衣,無(wú)端捐獻(xiàn)算力也不知道是拿來(lái)做了什么。實(shí)際上大規(guī)模分布式計(jì)算,讓Folding@home這樣的計(jì)劃具有十分的可行性,只不過(guò)通過(guò)并不算可靠的互聯(lián)網(wǎng)結(jié)成這樣的分布式結(jié)構(gòu)做計(jì)算,帶寬之類(lèi)的問(wèn)題究竟該怎么解決?以及如果新冠病毒研究真的需求海量算力,為什么不直接采用超算?

這是我們期望通過(guò)本文去大致了解的問(wèn)題。本文篇幅較長(zhǎng),共4部分,分別解答了4個(gè)很多人可能關(guān)心的問(wèn)題。這四個(gè)問(wèn)題間的上下文關(guān)聯(lián)不大,可選擇性閱讀。

1.Folding@home究竟是個(gè)什么樣的項(xiàng)目?

2.新冠病毒研究,為什么需要算力?算力能為新冠病毒研究提供什么幫助?

3.Folding@home的架構(gòu)是否真的能夠有效利用起全球范圍的計(jì)算機(jī)或更多設(shè)備的算力?

4.英偉達(dá)為什么重點(diǎn)呼吁PC游戲玩家?

Folding@home是個(gè)什么樣的項(xiàng)目?

雖然我們沒(méi)辦法做到完整細(xì)致地回答這幾個(gè)問(wèn)題,畢竟其中可能還涉及到相應(yīng)的生物、醫(yī)學(xué)或病毒學(xué)知識(shí),不過(guò)勾勒一個(gè)框架應(yīng)該還是可以的。而且理解Folding@home,對(duì)于我們參考理解大型項(xiàng)目網(wǎng)絡(luò)構(gòu)建也有價(jià)值。

針對(duì)第一個(gè)問(wèn)題,F(xiàn)olding@home項(xiàng)目的存在歷史還是比較久的,其最初發(fā)起時(shí)間是2000年10月,由斯坦福大學(xué)(Stanfor University)的Pande Lab實(shí)驗(yàn)室發(fā)起。目前參與Folding@home各部分開(kāi)發(fā)的除了Pande實(shí)驗(yàn)室以外,還包括了索尼、英偉達(dá)、ATI、Cauldron Development等。[2]

Folding@home就是一個(gè)分布式計(jì)算項(xiàng)目,它主要做的就是蛋白質(zhì)的分子動(dòng)力學(xué)模擬。最初Folding@home著眼的就是蛋白質(zhì)折疊(protein folding),現(xiàn)在轉(zhuǎn)向更多的生物醫(yī)療研究,包括阿茲海默癥、癌癥、埃博拉病毒、2019-nCoV等。所以2019-nCoV實(shí)際上只是Folding@home研究的一個(gè)最新組成部分(于今年3月加入)。

其中的所有大型計(jì)算項(xiàng)目,都是由知名研究院校運(yùn)營(yíng)或者直接輔助執(zhí)行的。其實(shí)有關(guān)2019-nCoV即新冠病毒在Folding@home上的項(xiàng)目具體由誰(shuí)在推動(dòng),這一點(diǎn)我們并沒(méi)有查到詳實(shí)的資料。僅知在Folding@home發(fā)起呼吁的這位Greg Bowman,目前就是Folding@home的負(fù)責(zé)人(2019年的新任負(fù)責(zé)人,也是上一任負(fù)責(zé)人Pande博士的學(xué)生)。Bowman是圣路易斯華盛頓大學(xué)的副教授??雌饋?lái),2019-nCoV病毒研究項(xiàng)目的發(fā)起者就是Folding@home官方。

那么針對(duì)這些研究,F(xiàn)olding@home究竟是怎么提供算力的呢?其核心理念就是期望能夠利用全球個(gè)人計(jì)算機(jī)的閑置計(jì)算資源——當(dāng)然這些PC需要安裝來(lái)自Folding@home的客戶(hù)端軟件,至于由誰(shuí)來(lái)安裝,那當(dāng)然就是愿意貢獻(xiàn)算力的志愿者了。如此一來(lái),集合全球CPU、GPU各路硬件的算力,就能為科學(xué)研究做貢獻(xiàn)了。

整個(gè)分布式系統(tǒng)實(shí)際上比我們闡述得要復(fù)雜很多,這在后文還會(huì)提到,比如志愿者可以在Folding@home官網(wǎng)上追蹤自己的貢獻(xiàn),甚至以貢獻(xiàn)算力多少,及積分制的方式相互比較排名;還能組隊(duì)刷分——Folding@home官網(wǎng)常年更新團(tuán)隊(duì)積分排名[3]。讓算力貢獻(xiàn)在呈現(xiàn)上更加生動(dòng)和有趣。實(shí)際在2009年,F(xiàn)olding@home發(fā)布的paper中就提到,為志愿者開(kāi)發(fā)的客戶(hù)端程序集成了OpenGL,主要是以圖形化的方式向志愿者展示蛋白質(zhì)模擬的情況[4]。Folding@home的團(tuán)隊(duì)認(rèn)為,這種呈現(xiàn)對(duì)于科學(xué)研究雖然沒(méi)有多大價(jià)值,但是對(duì)志愿者去了解正在自家PC上發(fā)生什么,幫助Folding@home在人群中擴(kuò)散是很有幫助的。

這是Folding@home項(xiàng)目一個(gè)很小的例子,其整體復(fù)雜性都還是比較大的。

從某種意義上來(lái)講,在這些年的發(fā)展中,F(xiàn)olding@home已經(jīng)成為全球性能最彪悍的超算系統(tǒng)——尤其是3月初Folding@home開(kāi)啟了針對(duì)新冠病毒的研究項(xiàng)目,為Folding@home整體算力推升到一個(gè)新的小高潮。不嚴(yán)謹(jǐn)?shù)卣f(shuō),如今其算力已經(jīng)達(dá)到了768 petaFLOPs。截至3月25日,F(xiàn)olding@home算力達(dá)到1.5 x86 exaFLOPs[5],數(shù)倍于目前全球最快的超算。

(注:Folding@home給定的算力單位包括native FLOPs,x86 FLOPs等。某一類(lèi)硬件的每秒浮點(diǎn)運(yùn)算數(shù)即為native FLOPs;x86 FLOPs是指如果將所有算力統(tǒng)統(tǒng)劃歸為x86 CPU,則有多少FLOPs——GPU的1 native GPU FLOP通常就相當(dāng)于好多native x86 FLOPs。[6])

很多人對(duì)這個(gè)算力數(shù)字大概沒(méi)有概念:2007年9月,由于Folding@home加強(qiáng)對(duì)PS3的性能利用,以及大量PS3游戲機(jī)玩家加入進(jìn)來(lái),F(xiàn)olding@home算力就推到了1 petaFLOPs。當(dāng)時(shí)Folding@home就成為全球首個(gè)跨入到petaFLOPs級(jí)別的計(jì)算系統(tǒng),那會(huì)兒全球Top 500中最快的超算是BlueGene/L,其算力是0.280 petaFLOPs。

在家就能研究新冠病毒,有臺(tái)電腦就可以

性能在后續(xù)還有幾波小高潮,比如2009年其算力達(dá)到5 petaFLOPs,那時(shí)IBM超算Roadrunner的性能是1.105 petaFLOPs;2016年年中,F(xiàn)olding@home超過(guò)100 x86 petaFLOPs。實(shí)際在今年3月這一個(gè)月,F(xiàn)olding@home的等效算力提升是真正飛快的。3月20日,F(xiàn)olding@home在推特上表示其算力達(dá)到470 petaFLOPs(958 x86 petaFLOPs),而到了3月25日,這個(gè)數(shù)字就飛奔到了768 petaFLOPs(1.5 x86 exaFLOPs)。

就科學(xué)研究來(lái)說(shuō),這些數(shù)字當(dāng)然不能代表什么,但Pande Lab實(shí)驗(yàn)室已經(jīng)因此產(chǎn)出了223篇科學(xué)研究paper。

這里有個(gè)問(wèn)題可能是很多人更加關(guān)注的,即Folding@home產(chǎn)生的研究數(shù)據(jù)是否公開(kāi)的問(wèn)題。因?yàn)槲覀儾⒎强蒲腥藛T,所以很難理解數(shù)據(jù)集的透明性如何。這里面實(shí)際上涉及到兩個(gè)問(wèn)題,其一是志愿者貢獻(xiàn)的算力,獲得的研究數(shù)據(jù)或研究結(jié)果是否公開(kāi);以及Folding@home這套系統(tǒng)本身的軟件、硬件是否開(kāi)源(或足夠開(kāi)源)?

Folding@home曾經(jīng)提到過(guò)來(lái)自Folding@home的大型數(shù)據(jù)集對(duì)其他人是公開(kāi)的,并且隨時(shí)間推移會(huì)有更多數(shù)據(jù)給出。“我們期望通過(guò)對(duì)數(shù)據(jù)的公開(kāi),讓其他科研人員利用這些數(shù)據(jù),也能用于其他的研究。”[7]最早領(lǐng)銜這個(gè)項(xiàng)目的Vijay Pande曾在論壇上說(shuō)過(guò):“根據(jù)NIH(美國(guó)國(guó)立衛(wèi)生研究院)的規(guī)則,所有paper必須免費(fèi),但是在發(fā)布一年以后。這是科學(xué)工作的常規(guī),至于同行評(píng)議期刊怎么做是我無(wú)法控制的?!保ㄆ诳赡軙?huì)出售這些paper)有關(guān)原始數(shù)據(jù)的問(wèn)題,“一般我們按需提供,有人需求數(shù)據(jù)時(shí),我們就會(huì)將其公開(kāi)在網(wǎng)站上。由于數(shù)據(jù)量非常大,這種按需提供的方法比較合理,我們也無(wú)法單獨(dú)個(gè)別處理所有需求?!?/p>

而在Folding@home這套系統(tǒng)本身的軟件、硬件的開(kāi)源程度問(wèn)題,整體我們也很難在短時(shí)間內(nèi)全盤(pán)把控。就我們掌握的信息,F(xiàn)olding@home系統(tǒng)本身的打造就離不開(kāi)很多開(kāi)源工具,比如Gromacs、TINKER、AMBER、MPICH等[8]。所以它也在為開(kāi)源社區(qū)做貢獻(xiàn),很多組成部分也的確是開(kāi)源的。比如說(shuō)后文還會(huì)提到,F(xiàn)olding@home的core是基于分子動(dòng)力學(xué)軟件包Gromacs,F(xiàn)olding@home自己對(duì)其GPU加速開(kāi)發(fā)起到了相當(dāng)?shù)淖饔茫会槍?duì)GPU的庫(kù)OpenMM,為應(yīng)用開(kāi)發(fā)者和GPU供應(yīng)商提供相對(duì)統(tǒng)一的API等等。

2011年,F(xiàn)olding@home就發(fā)布過(guò)一個(gè)開(kāi)源的Copernicus軟件,基于其MSM(Markov state model,馬爾科夫狀態(tài)模型)以及其他并行方法。主要價(jià)值就是針對(duì)大型計(jì)算機(jī)集群和超算,提升分子模擬的效率和規(guī)模。這對(duì)于其他科學(xué)領(lǐng)域的研究也是相當(dāng)有價(jià)值的。

有關(guān)數(shù)據(jù)實(shí)際在國(guó)際間共享的透明性,以及這些研究數(shù)據(jù)和開(kāi)源軟件本身可能還涉及到的政治問(wèn)題,這就是另外一個(gè)話(huà)題了,這里不再做深入討論。

算力對(duì)新冠病毒研究有什么用?

這是個(gè)相關(guān)生物學(xué)研究的問(wèn)題,理論上應(yīng)該是生物學(xué)媒體更關(guān)注的問(wèn)題,我們簡(jiǎn)略地談一談。研究人員期望搞清楚的是對(duì)于2019-nCoV潛在藥物靶點(diǎn)(potential drug targets)結(jié)構(gòu),這樣就能設(shè)計(jì)新的治療方法。2019-nCoV可以認(rèn)為是SARS病毒的近親,行為方式類(lèi)似。兩者的第一步感染就是在肺部發(fā)生的,病毒表面的蛋白質(zhì)會(huì)“綁定”到肺細(xì)胞的受體蛋白質(zhì),這里的受體被稱(chēng)作ACE2。

在家就能研究新冠病毒,有臺(tái)電腦就可以

這里的病毒蛋白被稱(chēng)作纖突蛋白(spike protein),也就是上圖中的紅色部分??茖W(xué)家追逐的治療性抗體,實(shí)際上是蛋白質(zhì)的一種,它的目標(biāo)就是阻斷病毒蛋白與受體綁定,起到阻止病毒感染肺細(xì)胞的作用。SARS-CoV的治療性抗體已經(jīng)開(kāi)發(fā)出來(lái)了。但如果要開(kāi)發(fā)2019-nCoV也就是這次新冠病毒的治療性抗體,科學(xué)家就需要去更好地理解病毒纖突蛋白的結(jié)構(gòu),以及它究竟是怎樣與ACE2受體結(jié)合的。

蛋白質(zhì)會(huì)擺動(dòng)、折疊、展開(kāi),形成各種形狀。科學(xué)家需要研究的,不光是病毒纖突蛋白的一種形狀,而是其擺動(dòng)、折疊成各種形狀的方式,這樣才能更好地理解它與ACE2受體是如何交互的,如此一來(lái)抗體就可以設(shè)計(jì)出來(lái)的。[9]

Folding@home在官網(wǎng)上提到,SARS-CoV病毒的“低分辨率”結(jié)構(gòu)已經(jīng)有了,外加SARS-CoV和2019-nCoV的已知差別,F(xiàn)olding@home的這個(gè)項(xiàng)目就是要幫助構(gòu)建起2019-nCoV纖突蛋白的結(jié)構(gòu),并識(shí)別抗體的靶點(diǎn)。而構(gòu)建計(jì)算模型是需要海量算力的,這是Folding@home介入的原因。

前文已經(jīng)提到,F(xiàn)olding@home本身就是致力于理解蛋白質(zhì)折疊問(wèn)題的項(xiàng)目。這對(duì)于理解蛋白質(zhì)做什么、如何工作是很有幫助的。這個(gè)模擬和理解的過(guò)程,也就是computational biology(計(jì)算生物學(xué))。蛋白質(zhì)另外也可能發(fā)生錯(cuò)誤折疊(misfold),錯(cuò)誤折疊會(huì)導(dǎo)致各種疾病,比如阿茲海默癥。利用計(jì)算模型,外加補(bǔ)充實(shí)驗(yàn),理解蛋白質(zhì)折疊、錯(cuò)誤折疊等的完整過(guò)程,就非常重要。

由于蛋白質(zhì)構(gòu)造,及其可能變化的形狀,本身就非常復(fù)雜,這個(gè)過(guò)程對(duì)算力需求便非常之高。通用超級(jí)計(jì)算機(jī)也曾一度用于模擬蛋白質(zhì)折疊過(guò)程,不過(guò)成本非常高;另外,由于動(dòng)力學(xué)模型計(jì)算是連續(xù)的,傳統(tǒng)分子模擬的規(guī)?;瘓?zhí)行會(huì)非常困難;而且蛋白質(zhì)折疊是一個(gè)隨機(jī)的過(guò)程,隨時(shí)間推移各種變化。這些對(duì)于模擬計(jì)算都提出了很大的挑戰(zhàn)。

在Folding@home各種模擬軌跡以及新構(gòu)造發(fā)現(xiàn)的過(guò)程中,逐漸建立起自適應(yīng)抽樣的馬爾科夫狀態(tài)模型(MSMs)。這種模型法極大地提升了模擬的效率,而且它很適用于分布式計(jì)算。一個(gè)馬爾科夫狀態(tài)模型構(gòu)建的時(shí)間,與并行模擬數(shù)量(比如處理器的數(shù)量)成反比。也就是說(shuō),并行數(shù)越多,模擬效率就越高。

在家就能研究新冠病毒,有臺(tái)電腦就可以

Folding@home利用馬爾科夫狀態(tài)模型,來(lái)給蛋白質(zhì)可能的形狀和折疊路徑建模

一個(gè)完整的馬爾科夫狀態(tài)模型可能包含了數(shù)萬(wàn)個(gè)蛋白質(zhì)相空間(phase space,蛋白質(zhì)可形成的所有構(gòu)造)的樣本狀態(tài),以及不同狀態(tài)間的轉(zhuǎn)變過(guò)程。這樣一個(gè)模型表征到了折疊事件、路徑等。研究人員利用這些模型,可了解蛋白質(zhì)如何折疊,并結(jié)合試驗(yàn),與模擬做對(duì)比。

雖然我們并不清楚這次新冠病毒纖突蛋白研究需要投入多少算力,以及需要多久。不過(guò)就其原理看來(lái),投入算力也是聚少成多的過(guò)程,或者說(shuō),其效力大約很難在短期內(nèi)體現(xiàn)出來(lái)——所以即便越來(lái)越多的人由于本次新冠病毒而參與Folding@home項(xiàng)目,它也無(wú)法立刻顯現(xiàn)出成效,并讓計(jì)算生物學(xué)即刻顯現(xiàn)出多大的威力,這畢竟是個(gè)長(zhǎng)久的項(xiàng)目。

Folding@home的系統(tǒng)架構(gòu)如何?

采用互聯(lián)網(wǎng)構(gòu)成一個(gè)分布式計(jì)算網(wǎng)絡(luò),其帶寬和存儲(chǔ)問(wèn)題怎么解決,應(yīng)該是我們更關(guān)心的一個(gè)問(wèn)題;畢竟互聯(lián)網(wǎng)和超算中的本地網(wǎng)絡(luò)比起來(lái)實(shí)在是太慢了。理解了這個(gè)問(wèn)題,也就可以回答,F(xiàn)olding@home架構(gòu)對(duì)于科學(xué)研究是否真的有價(jià)值,或者Folding@home對(duì)于全球算力利用是否真的有效了。

我們能夠找到的Folding@home發(fā)布相對(duì)詳細(xì)的解釋?zhuān)瑢?shí)際是2009年的一篇paper[4],在這10多年內(nèi),其整體架構(gòu)應(yīng)該又有了變化,所以下面的闡述大概會(huì)相對(duì)落后。但我們相信,其大框架應(yīng)該是不變的。

在家就能研究新冠病毒,有臺(tái)電腦就可以

客戶(hù)端界面

首先有必要談一談志愿者一側(cè),也就是用戶(hù)的軟件組成。用戶(hù)端的軟件主要包括了work units、core、client(客戶(hù)端)。

(1)每一個(gè)work unit,就是客戶(hù)端要求處理的一部分蛋白質(zhì)數(shù)據(jù)。work unit實(shí)際上就是馬爾科夫狀態(tài)模型不同狀態(tài)間模擬的一小部分??蛻?hù)端會(huì)自動(dòng)下載work unit,然后進(jìn)行計(jì)算,再返回給Folding@home的服務(wù)器,服務(wù)器就會(huì)給予一定的積分獎(jiǎng)勵(lì)。

為了保證計(jì)算的效率,所有的work unit都有個(gè)計(jì)算的截止時(shí)間,如果超過(guò)截止時(shí)間還沒(méi)有計(jì)算結(jié)束,則這個(gè)work unit就會(huì)自動(dòng)移交給其他人。前文就已經(jīng)提到了,蛋白質(zhì)折疊是一個(gè)連續(xù)的過(guò)程,許多work unit的生成,都依賴(lài)于上一個(gè)work unit,所以設(shè)立這樣的截止時(shí)間是非常有必要的。針對(duì)更高性能的客戶(hù)端,會(huì)有更短的截止時(shí)間設(shè)定。

(2)一個(gè)特定的分子動(dòng)力學(xué)程序,就是一個(gè)core。針對(duì)這些core,work unit作為后臺(tái)進(jìn)程去執(zhí)行計(jì)算。Folding@home的絕大部分core都基于前文就提到的Gromacs,也就是一個(gè)開(kāi)源的軟件包,其中主要包括了手動(dòng)優(yōu)化過(guò)的匯編語(yǔ)言代碼和硬件優(yōu)化方案。core是獨(dú)立于client客戶(hù)端的,這樣一來(lái),在不需要更新客戶(hù)端的情況下就能更新科學(xué)方法。另外,core還周期性地創(chuàng)建計(jì)算檢查點(diǎn)(checkpoint),在計(jì)算被打斷的情況下,后續(xù)可以從這個(gè)點(diǎn)上再開(kāi)始。

(3)Client自然就是指運(yùn)行在PC(或者其他用戶(hù)終端)的客戶(hù)端程序了,用戶(hù)和客戶(hù)端進(jìn)行交互。Client與Folding@home服務(wù)器聯(lián)系:獲取和上傳work unit;根據(jù)用戶(hù)設(shè)置、操作系統(tǒng)、底層硬件架構(gòu)下載相應(yīng)的core。

在client上,用戶(hù)可以暫停折疊進(jìn)程,查看事件日志,檢查進(jìn)度,或者查看個(gè)人數(shù)據(jù)-比如積分之類(lèi)。Client以很低的優(yōu)先級(jí)持續(xù)跑在后臺(tái),僅使用閑置算力,確保設(shè)備的日常使用不會(huì)受到影響(用戶(hù)可以自行設(shè)置Folding@home如何使用自己設(shè)備的資源)。Client部分的軟件開(kāi)發(fā)團(tuán)隊(duì),包括來(lái)自英偉達(dá)、ATI、索尼、Cauldron Development的程序員。程序本體似乎已經(jīng)經(jīng)過(guò)了多次迭代,據(jù)說(shuō)最早的客戶(hù)端是個(gè)屏幕保護(hù)程序,僅在計(jì)算機(jī)不使用的時(shí)候才會(huì)運(yùn)行。

在家就能研究新冠病毒,有臺(tái)電腦就可以

擴(kuò)展到整個(gè)分布式網(wǎng)絡(luò)部署,則會(huì)更復(fù)雜一些。很容易想見(jiàn),F(xiàn)olding@home就是個(gè)客戶(hù)端-服務(wù)器這樣一個(gè)CS結(jié)構(gòu)。首先志愿者在自己的設(shè)備上安裝客戶(hù)端,會(huì)有一臺(tái)分配服務(wù)器(assignment server)為客戶(hù)端分配一臺(tái)工作服務(wù)器(work server)。隨后客戶(hù)端與工作服務(wù)器通訊,獲取work unit——work unit具體就是一組文件;根據(jù)分配到的work unit,客戶(hù)端可能還需要從web服務(wù)器下載core。

在計(jì)算工作結(jié)束后,客戶(hù)端將結(jié)果發(fā)回給相同的工作服務(wù)器;工作服務(wù)器再收集日志文件和積分?jǐn)?shù)據(jù),并交給數(shù)據(jù)服務(wù)器(statistics server),并顯示給志愿者們看。

如果我們?cè)偌?xì)致的剖析一下,整個(gè)架構(gòu)在任務(wù)調(diào)度、指派、執(zhí)行等各方各面,都很像是一個(gè)放大版的CPU或超算網(wǎng)絡(luò)。工作服務(wù)器(work server)會(huì)生成work unit,并且分析接下來(lái)需要完成什么工作:前一個(gè)計(jì)算得到的結(jié)果需要用于生成后續(xù)任務(wù)。每臺(tái)工作服務(wù)器都承載了很多的項(xiàng)目,且由不同的研究人員管理。

分配服務(wù)器(assignment server)是一個(gè)全局調(diào)度機(jī)(scheduler),還要確保整個(gè)系統(tǒng)負(fù)載均衡。客戶(hù)端首先聯(lián)系的實(shí)際上就是分配服務(wù)器。項(xiàng)目?jī)?yōu)先級(jí)本身就受很多因素影響,另外還要結(jié)合客戶(hù)端的各種參數(shù)(比如客戶(hù)端的硬件配置、系統(tǒng)版本、網(wǎng)絡(luò)帶寬、可靠性等)做出工作分配決策。Collection服務(wù)器則是一種冗余方案,在客戶(hù)端無(wú)法將結(jié)果上傳給work服務(wù)器時(shí),就會(huì)啟用。

除此之外,當(dāng)然還需要有一個(gè)專(zhuān)門(mén)給用戶(hù)看的數(shù)據(jù)網(wǎng)站——志愿者們可以在網(wǎng)站上看到他們自己貢獻(xiàn)的成果。這就是數(shù)據(jù)服務(wù)器(statistics server)的工作了,其上還包括分配給志愿者或者團(tuán)隊(duì)的積分。數(shù)據(jù)服務(wù)器需要從工作服務(wù)器周期性地獲取日志文件,以給用戶(hù)呈現(xiàn)數(shù)據(jù)。另外網(wǎng)站上面還有社區(qū)論壇,這些論壇通常也是志愿者在維護(hù)的,交流和提供技術(shù)支持,還有用戶(hù)反饋等。

這就是Folding@home的基本運(yùn)作方式了。不難發(fā)現(xiàn),這并不是一個(gè)對(duì)實(shí)時(shí)性要求很高的系統(tǒng):其重點(diǎn)還在于大規(guī)模并行運(yùn)算能力,它對(duì)整個(gè)系統(tǒng)的帶寬、延遲并沒(méi)有那么敏感。另外,上面的描述僅是個(gè)梗概,而且這個(gè)框架是10年前的,當(dāng)年Folding@home還提到過(guò)系統(tǒng)后端可能存在的瓶頸,所以那會(huì)兒就提出了分布式存儲(chǔ)Storage@home,以提升運(yùn)算結(jié)果處理的效果。不過(guò)這個(gè)項(xiàng)目很快擱淺,原因未知[9]。

為什么特別呼吁PC玩家參與?

在耗費(fèi)最低成本的前提下,隨加入Folding@home的設(shè)備越來(lái)越多,實(shí)現(xiàn)摩爾定律增長(zhǎng)——這也是一個(gè)很有意思的說(shuō)法,就類(lèi)似于處理器的執(zhí)行單元可以無(wú)限增加一樣。而回答“為什么特別呼吁PC玩家參與”,拍腦袋就知道是因?yàn)镻C玩家的設(shè)備性能強(qiáng),捐的算力就多。

給出算力的第一選擇,在Folding@home誕生之時(shí)必然是CPU。其完整形式的個(gè)人電腦,自然成為捐獻(xiàn)算力的一個(gè)完美載體。不過(guò)在Folding@home經(jīng)歷的這20年歷史上,參與到算力捐獻(xiàn)的設(shè)備并不只有PC,還包括了PS3游戲機(jī)、索尼Android手機(jī)。甚至2014年,借由谷歌Chrome瀏覽器的NaCl特性,還能讓Folding@home跑在一個(gè)沙盒里,這樣一來(lái)Chrome瀏覽器就能直接跑Folding@home。但去年6月NaCl已經(jīng)不在,F(xiàn)olding@home的web客戶(hù)端也就沒(méi)有了。

這其中比較令人在意的是PS3游戲機(jī):PS3在Folding@home項(xiàng)目上的服役時(shí)間還不短。PS3游戲機(jī)的流處理器對(duì)于某些計(jì)算而言,提供超過(guò)PC多達(dá)20倍的速度,讓PS3成為Folding@home算力上的一支超強(qiáng)戰(zhàn)力。Folding@home的PS3客戶(hù)端,是由索尼和Pande Lab合作開(kāi)發(fā)的,發(fā)布時(shí)間是2007年3月。當(dāng)時(shí)這個(gè)客戶(hù)端的介紹中提到,它同時(shí)利用了CPU的彈性和GPU的速度。

事實(shí)上,那個(gè)年代GPGPU還不流行。不過(guò)PS3是一個(gè)固定的環(huán)境,做技術(shù)支持和開(kāi)發(fā)也就比較容易。那會(huì)兒Folding@home的PS3客戶(hù)端有個(gè)比較尷尬的問(wèn)題,即PS3用戶(hù)在跑客戶(hù)端的時(shí)候,就不能做別的事情??墒羌幢闳绱?,在2012年,索尼正式結(jié)束對(duì)Folding@home PS客戶(hù)端支持之際,依然有1500萬(wàn)PS3用戶(hù),貢獻(xiàn)了超過(guò)1億小時(shí)的算力。

像蛋白質(zhì)折疊相關(guān)的計(jì)算,要求高度并行的計(jì)算能力,是Folding@home早就注意到的。所以Folding@home很早就實(shí)現(xiàn)了對(duì)CPU多核心的充分利用,多核并行能夠在相同的時(shí)間內(nèi)實(shí)現(xiàn)更長(zhǎng)的模擬路徑,也就沒(méi)有必要再把模擬分派給不同的處理器。2006年11月,F(xiàn)olding@home的SMP(對(duì)稱(chēng)多處理)客戶(hù)端進(jìn)入開(kāi)放beta測(cè)試階段。這個(gè)客戶(hù)端采用MPI通訊協(xié)議進(jìn)行并行處理,這也是歷史上分布式計(jì)算項(xiàng)目首次使用MPI。

隨后Folding@home也隨硬件本身的發(fā)展,實(shí)現(xiàn)更多算力的獲取。比如在SMP2客戶(hù)端發(fā)布之后,某一類(lèi)名為bigadv的work unit就要求至少8個(gè)CPU核心來(lái)計(jì)算,而且還對(duì)內(nèi)存和互聯(lián)網(wǎng)帶寬資源提出了要求。當(dāng)然,如果志愿者能夠跑得了這樣的work unit,就能獲得多加20%的額外積分。比較有趣的是,后來(lái)SMP2客戶(hù)端將bigadv的硬件要求提升到至少16個(gè)核心,而那些8核CPU用戶(hù)就只能跑常規(guī)的work unit了。據(jù)說(shuō)這事兒傷害到了很多用戶(hù),因?yàn)樗麄優(yōu)榱薋olding@home在硬件上也花了很多錢(qián),于是在很多人的反饋之下,Pande終止了bigadv。

在家就能研究新冠病毒,有臺(tái)電腦就可以

Folding@home團(tuán)隊(duì)

事實(shí)上,在談到高度并行計(jì)算的時(shí)候,GPU已經(jīng)成為當(dāng)代的首選——看看AI training發(fā)展如火如荼就知道了。不過(guò)早年的GPU編程還是相當(dāng)有難度的,尤其GPU市場(chǎng)還有不同架構(gòu)和選擇。Folding@home采用開(kāi)源的OpenMM庫(kù)——這個(gè)庫(kù)采用一種橋接設(shè)計(jì)模式,有兩個(gè)API層級(jí),連接分子模擬軟件和底層的硬件架構(gòu)。加上額外的硬件優(yōu)化,基于OpenMM的GPU模擬,程序并不需要多大改動(dòng)就能獲得據(jù)說(shuō)是接近于手動(dòng)調(diào)整的GPU代碼性能,當(dāng)然也遠(yuǎn)超CPU的算力。

Folding@home的第一代GPU支持客戶(hù)端,是在2006年10月發(fā)布的。這也是史上頭一次GPU應(yīng)用到分布式計(jì)算中。研究人員也是從這個(gè)時(shí)候開(kāi)始積累起GPGPU軟件開(kāi)發(fā)的經(jīng)驗(yàn)。二代GPU客戶(hù)端開(kāi)始對(duì)英偉達(dá)的CUDA,以及ATI的GPU做出更到位的支持,支持更高級(jí)的算法更大型的蛋白質(zhì),而且還能做模擬的實(shí)時(shí)視覺(jué)呈現(xiàn)。

很多年前,GPU就已經(jīng)是Folding@home貢獻(xiàn)算力最大的組成部分。2012年11月,GPU客戶(hù)端占到整個(gè)項(xiàng)目算力吞吐的87%。

現(xiàn)在GPU通用計(jì)算發(fā)展得這么風(fēng)生水起,我們?nèi)ツ陞⒓佑ミ_(dá)的GTC大會(huì),英偉達(dá)宣傳的就是自家GPU已經(jīng)應(yīng)用到了多少不同的領(lǐng)域,而早就不限于圖形計(jì)算[10]。去年英偉達(dá)平臺(tái)應(yīng)用就開(kāi)始支持全基因組測(cè)序(NVIDIA PARABRICKS基因組分析工具包),3月20日英偉達(dá)發(fā)布的新聞稿就提到開(kāi)始向研究人員免費(fèi)提供PARABRICKS軟件,主要用于新型冠狀病毒和COVID-19確診者的基因組測(cè)序。

這就已經(jīng)完美解答英偉達(dá)為何呼吁PC游戲玩家參與Folding@home了,因?yàn)橛螒蛲婕业腉PU一般都更出色。

一些花絮與下載地址

以上我們就基本把Folding@home這個(gè)項(xiàng)目大致說(shuō)清楚了。事實(shí)上項(xiàng)目面臨的挑戰(zhàn)也遠(yuǎn)沒(méi)有我們想象得那么簡(jiǎn)單,在查閱資料的過(guò)程中還是發(fā)現(xiàn)了一些項(xiàng)目組有趣的吐槽。比如說(shuō)Folding@home曾提到,數(shù)據(jù)系統(tǒng)遭遇的一個(gè)挑戰(zhàn)是,有一小撮志愿者為了提高他們的積分,會(huì)作弊。有一些人甚至采用種植木馬的方式,把客戶(hù)端裝到別人的電腦上,然后用別人電腦的算力給自己賺積分——聽(tīng)起來(lái)就跟挖礦木馬一樣。

而Folding@home在客戶(hù)端層面面臨的最大挑戰(zhàn)還在于,現(xiàn)有硬件平臺(tái)的多樣化?!按嬖趲捉鼰o(wú)數(shù)種硬件、軟件、驅(qū)動(dòng)的組合方式,也就是說(shuō)在進(jìn)行客戶(hù)端開(kāi)發(fā)時(shí),要花海量的時(shí)間去處理不兼容的問(wèn)題?!倍谟布軜?gòu)變化時(shí),又要進(jìn)行core的移植和測(cè)試工作,并對(duì)客戶(hù)端進(jìn)行重新編譯,“畢竟計(jì)算機(jī)總是要隨時(shí)間做各種升級(jí)。”早年蘋(píng)果從PPC遷往x86,就得做很多工作。

最后提供一下Folding@home客戶(hù)端的下載地址,當(dāng)前macOS、Windows、Android、Linux都支持,具體的使用方法有興趣的各位可以自行體驗(yàn)嘗試:https://foldingathome.org/iamoneinamillion/

推薦內(nèi)容