趙 勇,李有福,李小龍,劉 鵬,田文洪
(電子科技大學計算機科學與工程學院 成都 611731)
我們正在進入一個“大數據”時代,全球產生的數據量呈“爆炸式”的增長。根據最近的IDC研究報告,在2010年全球的數據信息總和達到1 ZB(zettabyte)。Google和Bing等搜索引擎每天都會產生數TB的搜索日志。社交網絡產生的數據量也十分巨大,Facebook每月產生300億條內容,包括web鏈接、新聞、狀態、博客文章和視頻與圖片的評論等[1]??茖W界同樣面臨來自實驗數據、模擬數據、傳感器數據和衛星數據等“數據泛濫”問題[2]。歐洲核子研究組織的大型強子對撞機[3]每秒鐘能夠產生大于100 TB的碰撞數據;GenBank[4]是全球最大的DNA序列數據庫之一,其中已經包含了超過1 200億個堿基數據,并且這一數量每9~12個月翻一番。物理學、地球學、醫學等許多領域的數據量也在快速增長。
科學工作流管理系統(SWFMS)對于科學計算有重要的意義,它們提供了工作流定義、過程協調、作業調度與執行、資源跟蹤和容錯等功能。Taverna[5],Kepler[6],Vistrails[7],Pegasus[8],Sw ift[9],VIEW[10]等工作流系統在許多領域都有廣泛的應用,如物理學、天文學、生物信息學、神經科學、地球學和社會科學等。同時,科學設備和網絡計算的發展向可靠的工作流系統在數據規模和應用復雜度方面發起了新的挑戰。
高性能計算(high performance computing,HPC)是計算機科學的一個分支,可以最大限度提高系統的I/O、計算和數據傳送性能。主要用于解決大規??茖W問題的計算和海量數據的處理,如科學研究、氣象預報、計算模擬、軍事研究、CFD/CAE、生物制藥、基因測序、圖像處理等。
本文提出一個將科學工作流系統與高性能計算平臺結合的方案,集成方案涵蓋工作流定義與提交、流程解析、任務調度與執行以及狀態監測等工作流管理涉及到的所有主要過程。既能靈活方便地描述大規模的應用流程,又能有效地利用高性能計算集群資源管理和任務調度功能,實現對大規模HPC應用并行化端到端的支持。
學術界和業界根據不同研究和應用方向開發出各具特點的工作流系統[11],隨著科學計算過程中數據信息的處理規模急劇增長,集群計算資源在科學工作流中扮演著越來越重要的角色。一些研究集中在基于Taverna工作流系統與網格環境協作,如UNICORE plugin[12]、gLite plugin[13]、caGrid plugin[14]等,它們使Taverna工作流系統能夠便捷地訪問網格計算資源;基于Windows平臺工作流系統的研究專注于Windows Workflow Foundation (WWF)[15-16]的相關應用和平臺架構[17],如MyCoG。NET[18]實現WWF和Globus網格服務無縫結合,基于WWF的Trident[19]為NEPTUNE[20]海洋學項目、Pan-STARRS[21]天文學項目等科學研究提供高效的科學工作流平臺。由于Windows HPC Server并不支持應用流程的管理和定制,使用WWF工作流工具并不能有效地支持大規模的并行應用,也沒有實現和Windows HPC Server的有效的集成。
Sw ift工作流系統提供了可以實現和各種資源管理器和任務調度器協作的Provider接口,目前已經實現了的接口包括PBS[22]、Condor[23]、Globus Toolkit 4[24]等,它們也使Sw ift工作流系統能夠便捷獲取網格等計算資源;文獻[25]研究了工作流系統與云計算的集成方案,詳細描述了將工作流管理作為云服務的集成架構,并以Sw ift工作流系統與OpenNebula云平臺集成為例,驗證并分析集成方案的功能。這些研究主要集中在工作流系統與網格計算、云計算和分布式計算等計算資源的協作。工作流系統與高性能計算集群資源相結合方面的研究并不多見。
文獻[26]等實現了基于MATLAB的SSH工具包,用戶可以使用簡單的MATLAB命令訪問遠程高性能計算資源,運行MATLAB應用并獲取運行結果。文獻[27]探討了使用Windows高性能計算資源進行并行化地理空間分析,Windows HPC Server運行Inverse Distance Weighting (IDW)應用程序,IDW程序的運行的整體流程包括域分解、空間內插、輸出采集及數據可視化。這些研究主要是基于科學應用訪問Windows高性能計算資源,并沒有深入探討應用程序運行過程中的計算并行化與流程管理。
本文首先介紹科學工作流系統與高性能計算集成的統一架構,并分析架構的重要組成子系統和組件,然后以Sw ift科學工作流管理系統與Windows高性能計算平臺集成方案為例,通過對Sw ift與Windows HPC的架構進行分析,映射到參考架構中,從而進一步驗證集成參考架構的可行性。
科學工作流管理系統與高性能計算集成的參考架構可以作為一種規范化工作流系統與高性能計算集成的研究和開發工作的嘗試,如圖1所示,參考架構包含5個邏輯層和11個主要的功能子系統,自上而下涵蓋從工作流定義、任務調度到最終大規模應用的整體過程。第一層是開發層,其中包括工作流的開發環境、提交軟件工具等服務及相應的操作環境;第二層稱作工作流管理層,這一層包括4個子系統:工作流引擎、任務管理、工作流監控和資源配置管理;第三層稱作集成中間件層,由任務提交組件和計算資源供應服務組成;第四層為高性能計算管理層,由作業執行組件、資源調度系統和集群管理系統組成;最后一層為應用層,簡要描述基于集成平臺的科學應用。
參考架構允許科學工作流與高性能計算研究人員根據不同的工作流系統和高性能計算平臺特性,定制可用的集成平臺以滿足大規模數據處理和科學計算等需求。
Sw ift系統作為科學工作流和并行計算之間的橋梁,是一個面向大規模科學和工程工作流的快速、可靠的定義、執行和管理的并行化編程工具。Sw ift采用結構化的方法管理工作流的定義、調度和執行,它包含簡單的腳本語言Sw iftScript[28],Sw iftScript可以用來簡潔地描述基于數據集類型和迭代的復雜并行計算[29],同時還可以對不同數據格式的大規模數據進行動態的數據集映射。運行時系統提供一個高效的工作流引擎用來進行調度和負載均衡,它還可以與PBS和Condor等資源管理系統進行交互,完成任務執行。
圖2為Sw ift系統架構,由4個主要組件組成:工作流定義、調度、執行、資源供應。使用簡單高效的腳本語言Sw iftScript定義計算,Sw iftScript腳本被編譯成抽象的計算計劃,然后被工作流引擎調度到分配的資源上執行。Sw ift中的資源配置非常的靈活,任務可以被調度到多種資源環境中執行,資源供應者的接口可以是本地主機、集群環境、多站點網格環境或Amazon EC2服務。

圖1 集成參考架構

圖2 Sw ift架構
Windows HPC Server[30]可為以超級計算機為主的HPC環境提供企業級的工具、性能和伸縮性,而且是一個完整、綜合的集群環境,包含操作系統、HPC工作調度器、消息傳遞接口第二版(M IP2)支持、集群慣例和監視、分布式Excel計算能力、空閑Windows 7系統工作站利用能力等等。
Windows HPC Server集群架構由一系列節點、組件、服務及接口組成。集群中關鍵組件包括Head Node、Compute Node、Job Scheduler和Broker Node(用于支持SOA集群):
1) Head Node:作為管理單元,對集群進行作業調度。它提供了故障轉移和控制,并調節集群資源訪問。
2) Compute Node:執行需要執行的計算任務,這些任務由作業調度器分配到計算節點中。

圖3 Windows HPC Server架構
3) Job Scheduler:將作業和其相關的任務進行排隊,它給這些作業分配資源,在計算節點上加入新的任務,并且對作業、任務和計算節點進行狀態監控。

圖4 Sw ift與Windows HPC Server集成架構
4) Broker Node:在應用程序和服務之間扮演中介的角色,代理對服務進行負載平衡,最后將結果返回到應用程序。
Sw ift工作流管理系統提供結構化的方法管理工作流的定義、調度和執行;W indows HPC提供基于Windows平臺的集群管理、任務管理、任務調度等機制和開發接口。將Windows HPC Server與Sw ift工作流并行計算系統映射到集成參考架構中,可以實現Windows平臺上的大規模并行計算與工作流應用,相應的實例集成架構描述如圖4所示。
工作流開發層:提供工作流定義腳本Sw iftScript的開發環境,并提供接口用于提交工作流。
Sw ift工作流管理層:Sw ift通過解析腳本語言Sw iftScript的工作流流程定義、數據調用和配置信息,工作流引擎將整個工作流任務進行分片,并通過定制的接口與集成中間件層進行交互,在任務調度器的調度下,使得數據處理在集群中并行執行。
集成中間件層:該層中包含Windows HPC Server Provider和Sw iftHpcService兩個組件。Sw ift提供的Provider接口可以實現和各種資源管理器和任務調度器相互協作的功能。Provider接口定義了跟任務運行相關的一些功能,包括任務提交、任務結束、任務取消和獲取任務狀態等。Windows HPC Server Provider是針對Windows HPC Server平臺的Provider接口的具體實現。本文開發了基于Windows Communication Foundation (WCF) Service的Sw iftHpcService服務并部署在集群的Head Node中,Windows HPC Server Provider組件通過調用Sw iftHpcService提供的相應服務,將任務提交到Windows HPC計算集群中,Windows HPC Server層根據服務配置信息返回計算任務狀態給Sw ift工作流管理層。
W indows HPC Server層:提供了完善的W indows平臺上的集群管理、任務管理、任務調度等機制和開發接口,通過定制的接口與集成中間件層進行交互,Job Scheduler組件調度由中間件層提交的計算任務,分配相應的計算資源,完成工作流任務執行。
應用層:主要是描述可以在此集成方案的架構下運行的高性能并行計算應用,如MODIS圖片處理、蛋白質結構預測和分子結構模擬等。
本文通過NASA MODIS圖片處理工作流分析并驗證Sw ift工作流系統與Windows HPC Server集成的功能。輸入數據為120個大小為5.5 MB左右的衛星航拍數據塊,數據塊中含有水域、沙地、綠地和城市等地質特點,計算這些數據塊中城市面積最大的前12個地區。
使用5臺計算機,其中包括1臺Sw ift Client、1臺HPC Head Node和3臺Compute Node,其中Head Node中還部署有Broker Node、Active Directory服務器和NFS服務器端。集群環境和節點配置如圖5所示。

圖5 集群環境配置
實驗中通過圖片的像素和顏色計算城市的面積,再獲取面積最大的前12個地區。首先將圖片文件存儲在NFS共享文件系統中,配置Sw ift與Windows HPC Server交互接口;然后執行Sw iftScript工作流腳本NASA MODIS圖片處理工作流為:


如圖6所示,Sw ift能夠根據輸入目錄下的modis數據文件的數量,自動動態地將工作流解析成為對這120個圖片進行處理的執行計劃,并把并行的任務發送到Windows HPC Server的Head Node,然后Job Scheduler根據資源使用情況為任務分配計算資源。衛星云圖加載后,對每張圖片的計算被識別為任務并提交給getLanduse接口進行城域面積的分析,然后提交給analyzeLandUse接口對圖片中的陸地部分進行進一步的分析和計算,得出面積最大的12張圖片,將其文件名列表存入urbantiles文件中,并將其逐一轉換成png文件,最后合成一張整圖,如圖7所示。
實驗過程中,可以不斷向集群中動態添加計算節點,集群性能也不斷提高,動態添加計算節點性能增長如圖8所示。隨著節點數的增加,運行時間也在相應縮短,獲得的加速基本呈線性增長,且接近理想值(虛線為理想加速值,實線為實際加速值)。同時,隨著節點的不斷增多,性能的增加趨于平緩,理想加速值與實際加速值的差不斷擴大,在集群規模不斷擴大的情況下,節點間的通信開銷和NFS作為共享文件系統所帶來的開銷逐漸成為制約集群整體性能提升的瓶頸。所以當處理的數據規模一定時,用戶需要綜合考慮任務處理規模與數據量來決定集群規模,這樣才能獲取更高的性價比。

圖6 工作流計算流程(局部)

圖7 工作流計算結果

圖8 圖片處理與性能
通過這個應用實例,本文演示了Sw ift和W indows HPC Server的集成過程,集成的成功應用、W indows HPC Server本身對計算節點的調度、以及用HPC集群所獲得的線性加速。同時,W indows HPC Server可以從微軟Azure云平臺中獲取計算資源,Sw ift不僅可以利用Azure云平臺提供的伸縮性和資源按需分配等優勢,而且可以為Azure提供一個靈活的工作流應用定制前端和界面。
數據與計算的大規?;厔輰θ藗兩畹挠绊懺絹碓缴钊?,相應的技術與概念也不斷涌現,基于海量數據的計算從數據存儲到并行化處理,整個過程需要不同的技術支撐,產生了許多基于不同系統與架構的解決方案。
本文提出科學工作流系統與高性能計算平臺相結合的集成參考架構,實現高性能計算平臺上的大規模并行計算,在提供資源管理和集群調度的同時,為用戶提供方便的應用定制和管理前端,實現對大規模HPC應用的端到端的支持。以Sw ift工作流系統與W indows HPC Server集成的方案為例,通過NASA MODIS圖片處理工作流來分析并驗證集成方案的可行性和性能,以及對應用的線性加速效果。Sw ift系統和Windows HPC Server的有效集成能促進更多領域、更大規模的HPC應用運行在W indows的集群和云平臺環境中。同時,集成參考架構的提出能夠為規范化工作流系統與高性能計算平臺的集成研究提供參考與實例,結合工作流系統與高性能計算的優勢與特點以應對科學計算日益增長的規模與復雜度。
在后期的研究工作中會考慮使用更高效的分布式文件系統來進行數據的存儲,突破由NFS所帶來的性能瓶頸。同時,在現有統一集成框架的基礎上,進一步研究工作流系統與其他高性能計算平臺集成的實現,實現高性能計算平臺上的大規模并行計算與應用流程管理等功能。
[1] ROGERS S. Big data is scaling BI and analytics[J].Information Management, 2011, 21(5): 14.
[2] BELL G, HEY T, SZALAY A. Beyond the data deluge[J].Science, 2009, 323(5919): 1297-1298.
[3] Conseil Européen pour la Recherche Nucléaire(CERN).Large Hadron Collider[R/OL]. [2012-03-02] http://lhc.web.cern.ch.
[4] National Center for Biotechnology Information(NCBI).GenBank Overview[R/OL]. [2012-03-03]. http://www.ncbi.nlm.nih.gov/genbank
[5] HULL D, WOLSTENCROFT K, STEVENS R, et al. A tool for building and running workflows of services[J]. Nucleic Acids Research, 2006, 34(suppl 2): 729-732.
[6] LUD?SCHER B, ALTINTAS I, BERKLEY C, et al.Scientific workflow management and the Kepler system[J].Concurrency and Computation: Practice and Experience,2006, 18(10): 1039-1065.
[7] FREIRE J, SILVA C T, CALLAHAN S P, et al. Managing rapidly-evolving scientific workflows, provenance and annotation of data[J]. Lecture Notes in Computer Science,2006(4145): 10-18.
[8] DEELMAN E, SINGH G, SU MH, et al. Pegasus: a framework for mapping complex scientific workflows onto distributed systems[J]. Scientific Programming, 2005, 13(3):219-237.
[9] ZHAO Y, HATEGAN M, CLIFFORD B, et al. Fast, reliable,loosely coupled parallel computation[C]//2007 IEEE Congress on Services. Salt Lake City: IEEE Computer Society, 2007.
[10] LIN C, LU S Y, LAI Z Q, et al. Service-oriented architecture for view: a visual scientific workflow management system[C]//Proc of the IEEE 2008 International Conference on Services Computing (SCC).Honolulu: IEEE Computer Society, 2008.
[11] 羅海濱, 范玉順, 吳澄. 工作流技術綜述[J]. 軟件學報,2000, 11(7): 89-90.
LUO Hai-bin, FAN Yu-shun, WU Cheng. Overview of workflow technology[J]. Journal of Software, 2000, 11(7):89-90.
[12] HOLL S, ZIMMERMANN O, HOFMANN-APITIUS M.A unicore plugin for hpc-enabled scientific workflows in taverna 2.2[C]//IEEE Congress on Services (SERVICES).Washington D C: IEEE Computer Society, 2011.
[13] MAHESHWARI K, GOBLE C, M ISSIER P, et al. Medical image processing workflow support on the EGEE grid w ith Taverna[C]//IEEE International Symposium on Computer-Based Medical Systems (CBMS). A lbuquerque: IEEE,2009.
[14] TAN W, MADDURI R, NENADIC A, et al. CaGrid workflow toolkit: a taverna based workflow tool for cancer grid[J]. BMC Bioinformatics, 2010, 11(1): 542.
[15] Windows Workflow Foundation(WWF). Windows Workflow Foundation Introduction[R/OL]. [2012-03-02].http://www.w indowsworkflow foundation.eu/
[16] 楊利國. 基于WF工作流技術研究及應用[D]. 武漢: 武漢理工大學, 2008.
YANG Li-guo. Research and application based on w indows workflow foundation technology[D]. Wuhan:Wuhan University of Technology, 2008.
[17] ZAPLETAL M, Van der Aalst W M P, RUSSELL N, et al.An analysis of w indows workflow's control-flow expressiveness[C]//Seventh IEEE European Conference on Web Services. Eindhoven: IEEE Computer Society, 2009.
[18] PAVENTHAN A, TAKEDA K, COX S J, et al. Leveraging w indows workflow foundation for scientific workflow s in w ind tunnel applications[C]//22nd International Conference on Data Engineering Workshops. Atlanta:IEEE Computer Society, 2006.
[19] BARGA R, JACKSON J, ARAUJO N, et al The trident scientific workflow workbench[C]//Fourth International Conference on Science. Indianapolis: IEEE Computer Society, 2008.
[20] BARGA R, JACKSON J, ARAUJO N, et al. Trident:scientific workflow workbench for oceanography[C]//IEEE Congress on Services - Part I. Honolulu: IEEE Computer Society, 2008.
[21] SIMMHAN Y, BARGA R, Van INGEN C, et al. Building the trident scientific workflow workbench for data management in the cloud[C]//Third International Conference on Advanced Engineering Computing and Applications in Sciences. Sliema: IEEE Computer Society,2009.
[22] BODE B, HALSTEAD D M, KENDALL R, et al. The portable batch scheduler and the maui scheduler on linux clusters[C]//ALS'00 Proceedings of the 4th Annual Linux Show case & Conference. Berkeley: USENIX Association,2000.
[23] BERMAN F, FOX G, HEY A J G. Grid computing: making the global infrastructure a reality[M]. Chichester: John Wiley & Sons, Ltd, 2003.
[24] FOSTER I. Globus Toolkit version 4: software for service-oriented systems[J]. Journal of Computer Science and Technology, 2006, 21(4): 513-520.
[25] ZHAO Y, LI Y F, TIAN W H, et al. Scientific-workflowmanagement-as-a-service in the cloud[C]//2012 Second International Conference on Cloud and Green Computing(CGC). Xiangtan: IEEE Computer Society, 2012.
[26] NEHRBASS J, SAMSI S, CHAVES J C, et al. Interfacing PC-BASED MATLAB directly to HPC resources[C]//HPCMP Users Group Conference. Denver, Colorado: IEEE,2006.
[27] XIA Y J, SHI X M, KUANG L, et al. Parallel geospatial analysis on w indows HPC platform[C]//2010 International Conference on Environmental Science and Information Application Technology (ESIAT). Wuhan: IEEE, 2010.
[28] W ILDE M, HATEAGN M, WOZNIAK J M, et al. A language for distributed parallel scripting[J]. Parallel Computing, 2011, 37(9): 633-652.
[29] ZHAO Y, DOBSON J, FOSTER I, et al. A notation and system for expressing and executing cleanly typed workflows on messy scientific data[J]. ACM SIGMOD Record, 2005, 34(3): 37-43.
[30] M icrosoft. HPC - Technical Overview of Windows HPC Server 2008 R2 [R/OL]. [2012-03-01]. http://www.microsoft.com/download/en/details.aspx?id=434
編 輯 稅 紅