容器與HPC的互惠互利

在過去的五到六年中,軟體容器技術主導了資料中心,從小型私有資料中心到大型企業資料中心和公有云。伴隨著這一創新,高效能計算(HPC)和人工智慧(AI)在企業內部的應用也在不斷增長,以支援不同垂直行業中各種裝置生成的大量資料。關注如此大量資料的關鍵原因是生成分析和實時可操作的洞察。

容器可以用來處理HPC工作負載,以解決傳統HPC工作負載管理平臺的重要缺陷——這一點得到承認並有了例項。Kubernetes和Docker容器技術已經成為可以為HPC工作負載提供動力併為大規模計算工作負載啟用若干功能的框架。

容器概述

資料中心和軟體技術行業的每個人都知道容器。它帶來的一些好處是:

——在裸機上工作的作業系統級虛擬化。

——打包所有不同型別的依賴關係以執行可以與同一作業系統中的其他容器隔離的應用程式。

——容器帶來了跨不同環境的應用程式可移植性。

——與VM相比,容器的啟動速度非常快,能夠為新服務快速推出軟體堆疊,並加快整體交付速度。

——容器推動DevOps管道。

——支援微服務架構,進一步支援應用程式的靈活性和可伸縮性。

HPC概述

技術不斷髮展,許多行業(醫療保健、工業、汽車、航空等)已經可以支援每天產生大量資料的用例。例如,自動駕駛汽車每8小時產生40TB的資料,工業機械每天將產生100TB的資料,用於處理、儲存和生產分析。但是要處理這麼大的資料量,不可能是一個單一的系統(擁有足夠的計算能力、儲存和基礎設施)。

HPC可以利用分散式計算和儲存資源來解決大資料量的複雜問題。HPC叢集通常被稱為超級計算機。複雜演算法用於大型資料集以生成洞察。HPC系統在並行架構中使用大量的CPU或GPU,這些CPU或GPU可以建立足夠的計算資源池來執行復雜的數學演算法。

目前,高效能計算機系統廣泛應用於科學研究、軍事行動、天體物理學、大資料分析、金融、網路安全、天氣/氣候和生物資訊學等領域。使用HPC系統,我們可以在幾分鐘內而不是幾小時或幾天內得到數學模擬的結果。在企業的私有資料中心中,HPC被大量採用。此外,公有云供應商的訂戶可以在Azure、AWS和Google Cloud Platform上獲得HPC。

容器如何改善HPC

HPC工作負載本質上是單體的。傳統上,HPC應用程式運行於整個資料中心的大型資料集。應用程式容器化的主要優點在於容器的可移植性。我們可以打包HPC應用程式並跨叢集執行以處理大量資料。

容器為微服務架構提供動力,而微服務體系結構對應用程式服務有好處。任何使用基於微服務方法構建的應用程式都傾向於擁有一系列可以打包在容器中的小服務。所有這些服務都保持其生命週期,以及獨立開發、粒度擴充套件、打補丁和故障修復等特定於服務的需求。

以類似的方式,HPC應用程式工作負載可以獲得包括擴充套件和開發在內的隔離管理的優勢。容器的這種擴充套件能力非常重要,因為當資料處理需求激增時,HPC工作負載可能會面臨這樣的情況,並且應該在不停機的情況下執行。部署在容器中的HPC應用程式可以獨立擴充套件以處理此類峰值。

此外,當容器用於微服務架構時,它們帶來速度、可伸縮性和模組化。HPC包含一個帶有大量庫和軟體元件的容器,以及執行高階應用程式的複雜依賴關係。在這種情況下,容器可以幫助HPC工作負載隱藏複雜性並使部署更容易。

HPC如何改進容器化

最初,容器被認為為與HPC工作流不相容。現在,隨著一些開源專案的開發,人們發明了新的方法來使用HPC工作負載的容器。其中一些專案包括Singularity、Charliecloud、Shifter和Podman等。

目前,容器主要由Kubernetes編排(它可以持續執行容器)。HPC工作負載執行並完成分配的任務,例如財務資料或基因組工作流模擬。在容器中執行HPC工作負載有利於容器本身定期執行任務,並在HPC系統需要時呼叫容器。

結論

為了評估容器與HPC的協同整合,已經進行了各種研究,併發布了一些開源和商業解決方案。大型企業已經採用Kubernetes和Singularity來處理HPC工作負載,基於單體的HPC必須進行分散式以進一步支援大量的資料池,而容器化對於實現動態編排、可移植性和可擴充套件性已經變得非常重要。隨著時間的推移,我們將在容器和HPC領域看到更多的進展。