HPC系統:走出實驗室 進入企業
高性能計算的需求長期以來為科學家所用,但是大數據的出現和云計算的有效性將HPC系統帶入到企業中。
高性能計算旨在解決計算密集型問題,比如天氣預報、石油勘探和生物化學問題,但是其擴展范圍并不大。HPC擁有廣泛的業務應用,從分析增長的大型客戶數據量和監控實時網絡和應用日志,到模型化復雜工作流和模仿產品設計。HPC技術可以寫幫助解決一些業務和IT中最難的挑戰,比如預測哪些客戶會流失、為交叉銷售識別最佳實踐、理解為什么產品失敗和跨企業網絡監控安全事件。HPC的好處還包括協助理解什么硬件、軟件和方法論可用,以及哪一個最適合企業。
確定企業HPC硬件選擇
高性能計算通常在超級計算機上執行,比如IBM Blue Gene,或者連接了高速網絡連接器的計算機集群。假設你沒有數百萬美元來購買超級計算機,集群選擇最適合企業,以內商品化硬件和開源HPC集群軟件一應俱全。
當對于HPC應用有一致且長期的需求時,最合理的選擇就是構建一個本地集群。像Amax、Aspen Systems和PCCS Labs這樣的廠商可以提供預配置HPC集群,旨在支持大量核心處理器、高速網絡和高性能存儲。或者你可以使用商品服務器和隨手可得的集群操作系統,比如MOSIX,來構建你自己的本地集群。
另一個選擇就是用公有云提供商供應集群。亞馬遜Web服務(AWS)提供的集群計算實例,配置了2個Intel Xeon E5-2670處理器,60.5 GB內存和10GB以太網。AWS的機器映像旨在為HPC提供性能改善,通過使用硬件虛擬化實現,在一些案例中,支持圖形處理單元。集群內的虛擬服務器可以放在一個單一的布局群組中,最小化延遲。
如果你更樂意花費更多的時間分析你的數據,而不是配置集群,考慮使用MIT提供的StarCluster工具集;這個工具集旨在自動化亞馬遜彈性計算云(EC2)上的虛擬機集群配置和管理。然而,如果你正在開發自己的HPC應用,平臺即服務選擇谷歌App Engine可能比亞馬遜EC2更適合。通過谷歌App Engine,你可以用谷歌App Engine軟件開發者工具集構建自己的應用,而且支持數個語言。
使用企業方法論 確定HPC軟件
企業開發者對于HPC軟件選擇頗多,包括MapReduce平臺、自動化處理軟件、圖形數據庫和高性能、基于代理的建模系統。每一個都很好的適用于HPC特定的用例類型和方法論。
MapReduce用來處理模型,由谷歌推廣流行,用Hadoop實現。MapReduce很好的修復了業務問題,可以分解成更小的問題,同時處理掉,并將其結果結合產生輸出。例如,一個市場經理可能要想理解與客戶相關的在線購物時間花費特性。數據來源于Web應用日志,手機了客戶的IP地址的地理位置信息,會話開始和停留時間以及訪問過的網頁,結合來自第三方廠商的統計數據,產生一個客戶的多特征視圖。由于每一個客戶同Web應用的交互是每一個客戶的獨立行為,這個數據集可以輕松分成子集并跨集群分布。
Hadoop在諸多實現中可用,包括Apache Hadoop、Cloudera Hadoop和MapR Hadoop。
然而,并不是所有的業務問題都可以輕松分解成更小的問題。比如,在市場經理手機了每個客戶的信息以及其購物模式之后,她可能想要看到客戶之間的關系。是否有客戶集群鏈接了社交關系,能夠影響產品購買選擇?這種類型的社交網絡分析更適合圖形數據庫,比如Neo4j。圖形數據庫允許企業輕松模塊化實體,比如客戶和產品,以及這些實體間的關系,比如客戶的社交連接或者可能捆綁銷售產品。實體和關系的數量在現實問題中相當大,且要求高性能計算硬件。
HPC也能夠幫助處理企業實時事件監控,安全信息管理系統為例,可以收集網絡上的實踐數據流,比如登錄失敗、變更管理權限或者訪問沖突。理想上,這些事件能夠分析且企業其他發生的事情有對應關系。自動處理系統,比如Storm和S4,允許用戶分析持續的數據流。Splunk是一個商業支持的大機數據分析工具,用于若干IT事件管理用例,包括應用管理、IT操作、安全和法規遵從。
數據中心之外的HPC
盡管HPC經常和大數據分析結盟,對于其他業務處理HPC也很有用。企業正在使用建模和仿真工具協助業務改善模板設計,優化機械系統性能并分析組件失敗。一些仿真事件,比如為汽車的氣流建模,需要基于不同設備的計算密集模型。設計師可以利用建模和HPC來更好地理解在一系列情況下產品功能如何。商業工具,比如Matlab,和開源工具,比如NumPy和SciPy包,針對Python,廣泛用于這種類型的HPC問題。
其他類型的仿真可以作為系統交互代理的最佳模型,比如人們在流感期間改變了其消費習慣,或者業務響應市場情況調整價格。
Repast是一個廣泛用于模擬業務應用的工具集,包括消費者市場模型。Repast有針對工作站的Java版本以及更小的集群,或者HPC C++版本。