Folding@home命令行界面版本

**Folding@home**（簡稱 **FAH** 或 **F@h**）是一個研究蛋白質摺疊、誤折、聚合及由此引起的相關疾病的分散式計算工程。由史丹福大學化學系的潘德實驗室（Pande Lab）主持，於 2000 年 10 月 1 日正式啟動。這包括蛋白質折疊的過程和蛋白質的運動，並且依賴於在志願者的個人計算機上運行的類比。Folding@home 目前位於聖路易斯華盛頓大學，由維傑・潘德 (Vijay Pande) 的前學生 Greg Bowman 領導。

Folding@home 現時是世界上最大的分散式計算計劃，於 2007 年為金氏世界紀錄所承認。由於 2019 冠狀病毒病疫情，對該項目的興趣增加，該系統在 2020 年 3 月下旬實現了大約 1.22 exaflops 的速度，到 2020 年 4 月 12 日達到了 2.43 exaflops， 使其成為世界上第一個 exaflop 計算系統。其大規模計算網路的這種效能水平使研究人員能夠對蛋白質摺疊進行計算成本高昂的原子級類比，其時間比以前長數千倍。 自 2000 年 10 月 1 日啟動以來，潘德實驗室（Pande Lab）已經產生了 225 篇科研論文，作為 Folding@home 的直接成果。該專案的類比結果與實驗非常吻合。

2004 年 3 月 8 日，研究基因結構的 Genome@home 計劃終止，併入 Folding@home。

## 意義

Folding@home 專注於精確地類比蛋白質折疊和錯誤折疊的過程，以便能更好地了解多種疾病的起因和發展，包括阿茲海默症、亨廷頓舞蹈症、牛海綿狀腦病（狂牛症、狂牛症）、癌症和囊胞性纖維症。到目前為止，Folding@home 已成功類比 5—10 微秒的折疊過程，超出先前估計可類比的時段數千倍。

很多研究蛋白質結構的論文，都有參照這個計劃的成果。

伊利諾伊大學香檳分校在 2002 年 10 月 22 日發表的報告証實，該計劃採用分散類比方式，所得出的結果是準確的。

## 生物醫學研究

### 腦退化症

### 亨丁頓舞蹈症

亨丁頓舞蹈症起因於第 4 對染色體異常，病發時會無法控制四肢，就像手舞足蹈一樣，並伴隨著智慧型減退，最後因吞嚥、呼吸困難等原因而死亡。

### 癌症

### 成骨不全症

成骨不全症，又稱脆骨症，是一種先天性遺傳疾病，男女性患病的比例大約相同。這種疾病會造成第一型膠原纖維缺陷，使骨骼忍受外力衝擊的能力較正常人差，即使是輕微的碰撞，也會造成嚴重的骨折，因此這類的病患被稱為「玻璃娃娃」或「玻璃骨」。

### 病毒

彭德實驗室正利用 Folding@home 對一些病毒進行研究，物件包括流行性感冒病毒、人類免疫缺陷病毒（HIV）等，以尋找阻止病毒進入細胞的方法。歷史上全球曾多次出現高死亡率的週期性流感疫潮，其中 1918 年的西班牙流感導致全球近一億人死亡。當病毒感染細胞時，會發生「脂質雙層融合」（Lipid bilayer fusion/membrane fusion），其蛋白質會與細胞的蛋白質進行對接，過程之後或能進入細胞，或自我裹在細胞膜內。

#### COVID-19

2020 年 2 月 27 日，Folding@home 發布新的計算程式以研究 2019-nCoV 病毒。分散式運算項目 Folding@home 宣佈加入新冠病毒 2019-nCoV 的研究以幫助研究人員開發出治療方法。Folding@home 指出：2019-nCoV 是 SARS 冠狀病毒（SARS-CoV）的「近親」，並且以類似的方式起作用。為了瞭解這些訊息，需要我們對 2019-nCoV 峰值蛋白的結構進行建模。我們需要構建可以實現此目標的計算模型，但它需要大量的運算能力。

Folding @ Home 正在類比 COVID-19 蛋白質動態，以尋找新的治療機會。Folding @ Home 專案總監 Greg Bowman 說明，蛋白質是執行許多與生命相關之各種功能的分子機器，它們能夠感應到味覺與嗅覺，也能執行肌肉收縮或食物分解等任務，還能發揮結構性作用，在許多情況下，會自發性地折疊成緊湊的功能結構。另一方面，病毒也具備蛋白質，可用來抑制人們的免疫系統並自我繁殖，為了對付 COVID-19，必須了解這些病毒蛋白質的活動方式，以設計出能夠阻止它們的療法。但這樣的類比需要強大運算資源，因此 Bowman 號召全球電腦使用者貢獻自己的閒置運算資源。不過，目前 Folding @ Home 尚未替 COVID-19 設定獨立類別，現在想貢獻 COVID-19 蛋白質折疊運算的使用者可選擇「Any Disease」，相關專案現都暫居於該類別中。

前一陣子 Nvidia 在官方 Twitter 推文，呼籲 PC 遊戲玩家聯合起來對抗新型冠狀病毒 (COVID-19)，方法是把自己閒置的 GPU 算力都捐出來，幫助科學家們做病毒研究──透過採用名為 Folding@home 的軟體，就能讓每個在家使用電腦的人把算力捐出來，每個人一點，就能以全球組合成網路的方式，構建起一個龐大的超級電腦。Folding@home 在官網上提到，SARS-CoV 病毒的「低解析度」結構已經有了，外加 SARS-CoV 和 COVID-19 的已知差別，Folding@home 的這個項目就是要幫助構建起 COVID-19 棘突蛋白的結構，並識別抗體的靶點。而構建計算模型是需要海量算力的，這是 Folding@home 介入的原因。

### 藥物設計

## Folding@home 和 Rosetta@home

Folding@home 和另一個分散式計算計劃 Rosetta@home 都做和蛋白質相關的研究，導致公眾常常把兩者的目標混淆，或不知道應該參加哪個計劃。為此，Folding@home 的管理者、潘德實驗室的領導人費積・潘德教授解說道：

> 
> 
> 　
> : 我熟悉貝克、朗根納頓和他們的工作，並（正如整個蛋白質研究社群一樣）覺得他們的工作至關重要，使我印象深刻。但是，Rosetta@home 和 Folding@home 兩者想要解決的，是很不同的問題。
> 
> 　
> : Rosetta@home 只著重蛋白質完成折疊後的最終狀態，並非折疊的過程。而且，Rosetta@home 也不會探究折疊可能出現的錯誤。他們的研究方法，對我們感興趣的問題和要對付疾病（例如阿茲海默症），也沒有幫助。
> 
> 　
> : 同時，人們也該明白，用電腦去準確預測蛋白質的結構，比起進行真正的實驗，仍是更艱難的。而從 Folding@home 所獲得的有關蛋白質折疊和誤折的資料（例如速度、能量）是和實驗結果相符合的，也告訴我們更多實驗不能發現的東西。而 Rosetta@home，雖然已進行了很長時間，也取得一些很可觀的成果，但當要在 Rosetta@home 預測的結構和晶體結構（crystal structure）之間選擇時，都會選取晶體結構。因為他們的努力，我相信這將會改變，但要這夢想成真，還有一段很長的路要走。
> 
> 　
> : 因此，兩個計劃都很有價值，但處理的卻是不同的問題。我想有些人誤解了，以為 Folding@home 是關於預測蛋白質的結構（其實並不是，這是 Rosetta@home 的專長），Rosetta@home 是研究與蛋白質折疊錯誤相關的疾病（其實並不是，這是 Folding@home 的專長），但是兩個計劃研究的專案卻和那些人想的恰恰相反。希望這篇貼文有助澄清一下。
> 
> 

## 運作方式

Folding@home 並不依靠強大的超級電腦進行計算，反而主要的貢獻者是成千上萬的個人電腦。每部參與的電腦都安裝了一個在背景執行的客戶端程式，在系統不忙碌的時候調用中央處理器執行類比工作。現時世界上絕大部分的個人電腦，在一般的情況下都很少用盡本身的計算能力。Folding@home 就是使用這些本來都浪費了的運算力量。

Folding@Home 的客戶端會定時連接設於斯坦福大學的伺服器去取得「工作單元」（work units），即一種存有實驗資料的數據包，根據實驗資料進行計算。每個工作單元計算完成後，再傳回伺服器。

## 分析軟體

Folding@home 的使用者端利用了經修改的 TINKER、GROMACS、AMBER 及 CPMD 這四款分子類比程式進行運算，並會在許可的情況下作出優化，以把運算速度加快。這四款類比程式也被修改成多個不同版本，供多款作業平台使用，每款程式的變體會以編號「Core xx」作分類。

### 現役核心

* GROMACS
  * Gromacs（Core 78）
    * 僅提供予所有單處理器平台使用。
  * DGromacs（Core 79）
    * Gromacs 的雙倍精準版本，僅使用 SSE2。
    * 僅提供予所有單處理器平台使用。
  * DGromacsB (Core 7b)
    * 名義上是 DGromacs 的更新版本，實際上是基於 SMP／GPU 版本的原始碼的全新核心。兩者均在使用中。
    * Gromacs 的雙倍精準版本，僅使用 SSE2。
    * 僅提供予所有單處理器平台使用。
  * DGromacsC (Core 7c)
    * Gromacs 的雙倍精準版本，僅使用 SSE2。
    * 僅提供予單處理器的 Windows 及 Linux 平台使用。
  * GBGromacs（Core 7a）
  * Gromacs SREM（Core 80）
  * GroSimT（Core 81）
  * Gromacs 33（Core a0）
  * Gro-SMP（Core a1）
  * GroCVS（Core a2）
  * GroGPU2（Core 11 及 Core 13）
  * Gro-PS3（沒有編號，但也稱為 SCEARD 核心）
* AMBER
  * PMD (Core 82)
    * 未優化
    * 僅提供予單處理器的 Windows 及 Linux 平台使用。

### 已停用核心

* TINKER
  * Tinker core (Core 65)
    * 現已停止使用，並由速度更快的同類核心 GBGromacs (Core 7a) 所替代。
    * 未優化
    * 僅提供予所有單處理器平台使用。
* GROMACS
  * GroGPU (Core 10)
* CPMD
  * QMD (Core 96)

## 命令列介面版本

Folding@home Console version 是 Folding@home 的命令列介面版本，由史丹佛大學化學系的潘德實驗室主持，於 2000 年 10 月 1 日正式啟動，可精確地類比蛋白質折疊和錯誤折疊的過程，以便能更好地了解多種疾病的起因和發展，Folding@home 目前是世界上最大的分散式計算計劃。

## 高效能平台支援

### 圖形處理器

要快速運算蛋白質的摺疊效應，得需以高浮點運算能力的處理器進行，GPU 具備強大浮點運算效能的優勢，Folding@home 方面也著手開發供 GPU 使用的程式，把作業交給 GPU 運算。2006 年 10 月 2 日，Folding@home 公開發行供 Windows 系統使用的 GPU 測試版本，測試期間收到由 450 顆 ATI X1900 GPU 提供的 31 TFLOPS 運算效能，每顆顯核平均運算運力為一顆傳統 CPU 的 70 多倍。至 2008 年 4 月 10 日，第二代 Windows GPU 公開測試版推出，新版本支援 ATI/AMD HD2xxx 及 HD3xxx 系列，不用再透過 DirectX 介面與顯示核心溝通，並支援多 GPU 核心。供 NVIDIA GPU 使用的版本則利用 CUDA 技術，就可以使到 GPU 可以進行蛋白質摺疊運算。NVIDIA 官方表示，只需全球 0.1% 支援 CUDA 的顯示卡進行運算，效能就可以達到 7PFLOPS，遠超過超級電腦的計算水平。現時已推出供啟用 CUDA 的 NVIDIA GPU 使用的公開測試版本。

### PlayStation 3

索尼已加入 Folding@home 計劃，從 PS3 的 1.6 版本韌體開始，支援該項目科學運算。由於 PS3 使用了 Cell 處理器，能提供強大的運算效能。當 PS3 閒置時，就會啟動運算程式，計算蛋白質的摺疊效應，利用結果去研究各種疑難雜症。當 CELL 處理器運算時，NVIDIA 的 RSX 顯核就會提供立體的蛋白質摺疊實時圖形展示。該圖形展示效果不錯，支援 1080p 輸出，還有 HDR 效果。用家可利用手柄來控制觀賞角度。

PS3 曾經為 Folding@home 提供最多的運算能力，隨著供 NVIDIA GPU 使用的軟體推出，NVIDIA GPU 取代了 PS3，成為了 Folding@home 的主力。截至 2008 年 9 月初，參與的 PS3 遊戲機為該計劃提供 1,200 多 TFLOPS 的運算能力，佔總數近 35%。

### 多核處理器

隨著更多不同款式的多核處理器陸續推出，支援多核心的軟體也越來越多，Folding@home 也加入支援對稱多處理機（SMP），希望藉此增強軟體的運算能力。透過利用 MPI，軟體可同時使用多個核心進行運算。

支援 SMP 的 Folding@home 於 2006 年 11 月 13 日推出供 x86-64 Linux 及 x86 Mac OS X 執行的 beta 測試版本，現時也已推出供 Win32 使用的試版本，而供 32 位元 Linux 執行的版本則仍在開發中。

## 估計能源消耗

### PS3 相關

一台 PlayStation 3 遊戲機的標稱功率為 380W，由於 Folding@Home 是設計供 CPU 使用，因此會造成主機功耗達 100%。但根據斯坦福方面有關 PS3 主機的常見問題，指出每台主機「在執行該程式時，其估計功率約為 200W 左右」。截至 2008 年 5 月底，共有 51,000 多台 PS3 主機為該計劃提供 1,400 多 TFlops 的運算能力，每台 PS3 平均提供近 30,000MFlops，以史丹福的每台主機 200W 輸出（使用 90nm 製程的處理器）估計，每瓦輸出提供 150 多 MFlops。隨著 PS3 的 Cell 處理器改用更微細的 65nm 及 45nm 製程，處理器的功耗會進一步下降，其每瓦輸出提供的運算的能力也會提高。

### PC 相關

取決於 PC 本身 CPU 最大能耗以及計算程式設定。

## 注意事項

1. 本專案使用獨立計算程式，可以在多平台下進行計算，包括 PC、MAC 和 PS3
2. 本專案的客戶端分為 3 類，分別是 CPU 計算客戶端，GPU 計算客戶端和 PS3 計算客戶端
3. 本專案的 GPU 計算客戶端支援 AMD-ATI HD2000 及以上系列和 nVidia 所有支援 CUDA 系列的顯示卡
4. 最新版的 V7 綜合客戶端同時支援多核 CPU 和 AMD/ATI HD2000 及以上系列、NVIDIA 8xxx 及以上系列顯示卡計算
5. 為獲得更好的計算效能建議使用 V7 綜合客戶端或者 V6/High Performance Clients 客戶端計算

## 參考資料

## 參見

* 分散式計算
* Rosetta@home
* World Community Grid
* BOINC

## 外部連結

* Folding@home 官方網站（頁面存檔備份，存於網際網路檔案館）（英文）
* Folding@home 官方論壇（頁面存檔備份，存於網際網路檔案館）（英文）
* Folding@home Chrome Client（頁面存檔備份，存於網際網路檔案館）（英文）（免安裝，只支援 CPU 摺疊，須使用 Chrome 瀏覽器）
* Folding@home 中文網（頁面存檔備份，存於網際網路檔案館）
* Folding@Home 簡體中文論壇（中國隊 China Folding@Home Power 3213）（頁面存檔備份，存於網際網路檔案館）
* 「Folding@HOME」滄者極限團隊（台灣隊：31403）（頁面存檔備份，存於網際網路檔案館）
* Folding@Home Taiwan Facebook 專頁（頁面存檔備份，存於網際網路檔案館）
* FAH 部落格（頁面存檔備份，存於網際網路檔案館）
* Folding@home Wiki
* 英文維基百科團隊（頁面存檔備份，存於網際網路檔案館）
* 中文維基百科團隊（頁面存檔備份，存於網際網路檔案館）