研究筆記使用高效能運算對抗 HIV

Kristin Firth 和 Mia Matusow

一提到從事醫學研究工作者,您是否聯想到身穿白袍拿著試管及使用顯微鏡的男男女女?也許是大學或藥廠中的一群化學家?這些都是對於醫療研究普遍而且真實的印象,不過只能代表

這個領域的其中一個面向。在現實生活中,某些醫療研究的工作是在極端不同的情境下進行。

您也許會很訝異,其實 Microsoft Research 在研發人類免疫缺乏病毒 (HIV) 的疫苗方面扮演舉足輕重的角色。而且,Microsoft 在進行這項工作時可沒有使用任何實驗用的本生燈。工作場景就像其他常見的辦公室格局,再加上幾張普通的桌子和很多台電腦。

那麼,Microsoft 在整個研究中到底扮演什麼角色呢?身穿白袍遍佈在各所大學和研究中心的研究者 (包括美國波士頓的麻州醫院、英屬哥倫比亞大學、美國佛瑞德亨崔森癌症研究中心 (Fred Hutchinson Cancer Research Center),以及澳洲的梅鐸大學) 都收集了大量的專案資料。由六人左右組成的 Microsoft Research eScience 小組成員大部分都在華盛頓州雷德蒙市工作 (有一人在新墨西哥州),此 eScience 小組協助這些研究人員處理和分析龐大的資料量。Microsoft Research 於 2003 年首次接觸這類專案,今日的 eScience 小組與科學家攜手推動處理攸關社會問題的各種專案。這個小組與組織外的科學家密切合作,針對各個專案建置自訂解決方案、統計數據和分析結果。

在其中一項優先專案中,Microsoft 協助分析與 HIV 變異模式相關的資料。根據 Microsoft 的資深研究員 David Heckerman 醫學博士的說明,HIV 在受到感染者免疫系統攻擊時會急速變異。「我們目前進行的研究是要確定 HIV 如何回應宿主的免疫系統。為此,我們正在尋找個人免疫系統類型與宿主所感染的 HIV 蛋白質序列之間的關聯性。」

科學家利用 HIV 感染者的取樣來確定免疫系統類型與 HIV 序列。數據統計就在這時派上用場。這項研究需要找出 3,000 種 HIV 氨基酸與好幾百名參與者的上百種免疫系統類型之間的關聯性。「我們所設計的統計考驗可以提供更可靠的關聯性,可減少假陽性及假陰性的數目,」擔任 Microsoft 的 Principal Research Software Development Engineer 的 Carl Kadie 博士這麼說。「然而,進行這些統計考驗需要大量的運算能力,而且如果能納入越多實驗對象越好。我們的想法是要執行數百萬次的模擬來發掘最可靠的關聯性。」

使用 HPC 對抗 HIV

就在幾年前,研究成果由於運算處理的限制而受到妨礙。參與此專案的 Microsoft 研究人員只配備了六台電腦,因此缺乏足夠的運算處理能力在合理的時間內執行分析。單就 200 的實驗對象而言,尋找疫苗的基因組中的所有部位以及各種不同的免疫類型可能需要花上一整年的時間。即使研究人員有 20 台專門用來分析的電腦,仍須面對一個根本的問題,就是分別在 20 台電腦上手動執行統計考驗,接收 20 組個別的結果,而且需要其他程式 (還有更多時間) 將個別的結果組製作成表格。管理多項工作、收集部分輸出,以及其他所有相關的各項任務都需要花費太多時間。因此他們向 Microsoft 的高效能運算 (High-Performance Computing,HPC) 小組尋求協助。

在 2006 年,研究人員實作了 Windows® Compute Cluster Server 2003。此 HPC 解決方案為研究人員提供一個直接了當的方法來管理多台同時作業的電腦。基本上,Windows Compute Cluster Server 可將工作分散到平行執行的數個伺服器節點上。將資料分散到各節點、管理資料和合併結果等任務全都自動化完成。這個解決方案包括安裝程序、管理工具套件以及整合的工作排程器。

最後,有了這套解決方案,便可克服最大的技術障礙:運算能力不再受限,且分散工作和管理資料的作業皆已完全自動化。

安裝

對 Microsoft Research 來說,運算叢集方法非常理想。Windows Compute Cluster Server 2003 特別適合需要應用程式不斷執行相同作業的專案;例如當平行執行任務可加速問題解決與分析的情況時。不過,此解決方案的部署作業不能輕忽,因為高效能運算可能需要大筆資金 — 尤其是在電源和冷卻方面。這個解決方案往往需要多部伺服器接連幾週都以 100% CPU 使用率的狀態執行。

接下來的步驟是確定組織所能負擔的最大叢集,以及存放叢集的位置。如果環境中已具備 Windows 架構且 Active Directory® 也已就緒,系統管理員就具有安裝、部署和支援叢集所需的基礎結構。至於在尚未使用 Active Directory 的環境中,則需要進行一些額外的設定步驟。

您還必須決定如何在運算叢集中佈建節點,這意味著選擇是否要使用 Windows Compute Cluster Server 2003 隨附的工具,或使用自己內部的部署方法。您需要部署 Windows Compute Cluster Server 2003 本身以及您要在叢集上執行的軟體應用程式。此外還必須建立叢集的使用者存取,好讓使用者能夠連線到叢集並提交工作,這個步驟可以透過內含的圖形 UI 或經由命令列介面來完成。

Windows Compute Cluster Server 2003 是 64 位元的作業系統 (Windows Compute Cluster Server 2003 環境的典型架構如 [圖 1] 所示)。在撰寫本專欄時 (2007 年 6 月),Microsoft Research 正於由 25 部 IBM eServer 326 伺服器所建置的叢集上執行各式各樣的應用程式。其中的每一部伺服器都配備了兩顆以 2.6 GHz 執行的 AMD Opteron 處理器。

[圖 1] 使用 Windows Compute Cluster Server 2003 駕馭運算能力

[圖 1]** 使用 Windows Compute Cluster Server 2003 駕馭運算能力 **(按影像可放大)

完成 Windows Compute Cluster Server 的部署之後,小組更新了用在叢集上執行以進行基因關聯性的應用程式。運算叢集在部署應用程式時所面對的複雜度可能不盡相同。應用程式本身會影響需要進行多少程式設計作業。

首先,小組使用 Windows Compute Cluster Server 內建的工具以快速建立一般 UI。但這只是一個緩衝之計,因為小組很快地便建立了自訂的 Web 應用程式,以便提供更大彈性並支援將部分叢集節點的選項公開給 Microsoft 組織以外的科學家。事實上,Microsoft 屬於開放式網格運算論壇的 (Open Grid Forum) 的一員,有些 Microsoft Research 叢集可提供來自世界各所大學的使用者存取,藉此促進研究人員的合作以及分擔工作量。

除了圖形 UI,Windows Compute Cluster Server 也支援命令列作業,讓使用者撰寫指令碼。而且它還提供豐富的 API,可用來撰寫直接與 Windows Compute Cluster 工作排程器互動的程式 — Microsoft Research 也採用了這項技術。

獲得成效

多虧運用了高效能運算,Microsoft Research 的 eScience 小組在開發 HIV 疫苗的競賽中大幅超前。「藉由高效能運算,我們終於能夠更快速地掌握分析結果,」Heckerman 如是說。「與我們共同合作的好幾個外部團體現在都使用我們的統計技術並分享他們的發現成果。而科學家也因此提出新的假設來讓我們進行驗證。過去,光要取得每一個程序步驟的結果就得花上一年,現在卻只要一天。」

Windows Compute Cluster Server 出現之前,Microsoft Research 使用的方法執行分析所需的時間過長,因此不切實際。Kadie 說,「有了 Windows Compute Cluster Server,我們可以執行含 200,000 個工作項目的 50 項工作,以前花同樣的時間只能執行 1 項工作。」

現在 eScience 小組擁有唾手可得的強大運算功能,便可以大量執行模擬資料來進行統計考驗。在模擬資料上執行的作業,是判斷哪些真實資料的結果值得注意的關鍵。所執行的模擬越多,所得到的結果也就越可靠。

心得

Microsoft Research 明顯受惠於使用 Windows Compute Cluster Server,但彼此之間的關係是共生共榮的。高效能運算 (High-Performance Computing) 小組中的開發人員目前正在研發第二版的 Windows Compute Cluster Server,他們將繼續吸收 eScience 小組提供的寶貴意見。

最重要的是,透過監視與分析 Microsoft Research 叢集的行為以便找出最好的方式來平衡多位使用者間的叢集資源,HPC 小組學習到許多關於資源配置的知識。比方說,在這個專案中,使用者通常一次會建立一項工作,而且每項工作平均包括 50 個相關任務。使用者提交工作,Windows Compute Cluster Job Manager 接著會配置足夠的資源來管理這 50 項任務。為了這麼做,它會立刻要求叢集上所有可用的節點都用來處理這些任務。這在單一使用者的環境中可能不會造成問題,但是在多位使用者的設定中,各項專案必須同時進行,因此會產生問題。

以目前來說,當工作的 50 個任務中的 10 個任務完成時,並不會馬上釋放 10 部伺服器。作業管理員會等待這個工作內的 50 個任務全都完成,才會釋放伺服器以處理另一項工作。HPC 開發人員現在正設法在每個任務 (而非整個工作) 完成時重新配置資源。

Microsoft Research 也期望 HPC 小組能夠針對研究人員希望使用 Windows Compute Cluster Server 的方式而產生的特定問題,提供解決的方法。值得一提的是,研究人員想要設定安全性,好讓使用者憑證從 Web 前端自動傳播到電腦叢集中。解決方案是在 Microsoft® .NET Framework 內部進行處理,並延伸 ASP.NET 表單驗證,如此一來,Web 應用程式就能夠在每次使用者提交工作時,提供完整的使用者驗證給叢集節點。

Microsoft Research 的 eScience 小組成員與來自世界各地的同仁現在能夠專注在最重要的工作環節上,至於處理和管理資料的相關任務就交由電腦執行。「因此,我們能夠以團隊方式往前邁進,」Heckerman 這麼說。「我們擴展了 HIV 的相關知識領域,並且在對抗這個疾病的努力上有長足的進展。」

Kristin Firth 和 Mia Matusow 均任職於 Blue Line Writing & Editing,過去十年來致力於為三大洲的企業組織公私領域打造策略內容。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.