容器世界里,高性能計(jì)算不轉(zhuǎn)型不行了

隨著時(shí)間的推移,這些系統(tǒng)變得更加復(fù)雜,具有多層存儲(chǔ)和計(jì)算資源組,但基本的Beowulf框架已經(jīng)保持了30年。HPC工作流程也是如此。從用戶的角度來(lái)看,三十多年來(lái),HPC使用者的生活沒(méi)有變得更輕松。

本文來(lái)自微信公眾號(hào)“開(kāi)源云中文社區(qū)”。

回到1994年(是的,差不多30年前了),Thomas Sterling和Donald Becker在美國(guó)國(guó)家航空航天局制造了一臺(tái)名為Beowulf的計(jì)算機(jī)。

這臺(tái)計(jì)算機(jī)(又名Beowulf集群)的架構(gòu)由一個(gè)廉價(jià)的個(gè)人計(jì)算機(jī)網(wǎng)絡(luò)組成,這些計(jì)算機(jī)串聯(lián)在局域網(wǎng)中,以便在它們之間共享處理能力。這是一臺(tái)專門(mén)為高性能計(jì)算(HPC)設(shè)計(jì)的計(jì)算機(jī)的開(kāi)創(chuàng)性例子,它完全由商品部件和免費(fèi)軟件組成。

Beowulf集群可用于并行計(jì)算,其中許多計(jì)算或進(jìn)程在許多計(jì)算機(jī)之間同時(shí)進(jìn)行,并與消息傳遞軟件協(xié)調(diào)。這是Linux和HPC開(kāi)源的開(kāi)端,使Beowulf真正具有革命性。在接下來(lái)的10多年里,越來(lái)越多的人遵循Beowulf模式。2005年,Linux在top500.org上占據(jù)了第一的位置,從那以后,它一直是HPC的主導(dǎo)操作系統(tǒng)。

Beowulf集群的基本架構(gòu)從一個(gè)交互式控制節(jié)點(diǎn)開(kāi)始,用戶可以在該節(jié)點(diǎn)登錄系統(tǒng)并與系統(tǒng)交互。計(jì)算、存儲(chǔ)和其他資源都連接到一個(gè)(或多個(gè))專用網(wǎng)絡(luò)。軟件堆棧包括Linux、操作系統(tǒng)管理/供應(yīng)(例如Warewulf)、消息傳遞(MPI)、其他科學(xué)軟件和優(yōu)化的庫(kù)以及用于管理用戶作業(yè)的批處理調(diào)度器。

1.png

隨著時(shí)間的推移,這些系統(tǒng)變得更加復(fù)雜,具有多層存儲(chǔ)和計(jì)算資源組,但基本的Beowulf框架已經(jīng)保持了30年。HPC工作流程也是如此。從用戶的角度來(lái)看,三十多年來(lái),HPC使用者的生活沒(méi)有變得更輕松。通常,對(duì)于所有HPC系統(tǒng),每個(gè)HPC用戶都必須遵循相同的一般步驟:

——SSH到交互節(jié)點(diǎn)。

——研究并了解存儲(chǔ)系統(tǒng)配置和裝載點(diǎn)。

——將源代碼下載到正確的存儲(chǔ)路徑。

——編譯源代碼時(shí)要考慮系統(tǒng)或優(yōu)化的編譯器、數(shù)學(xué)庫(kù)(和位置)、MPI,以及可能的存儲(chǔ)和網(wǎng)絡(luò)架構(gòu)。

——將要計(jì)算的數(shù)據(jù)上傳到正確的存儲(chǔ)路徑(可能與上面的源代碼路徑不同)。

——研究資源管理器隊(duì)列、賬戶和策略。

——根據(jù)測(cè)試數(shù)據(jù)測(cè)試和驗(yàn)證編譯的軟件。

——監(jiān)控作業(yè)執(zhí)行情況并驗(yàn)證功能是否正確。

——驗(yàn)證作業(yè)輸出。

——如有必要,重復(fù)上述步驟。

——下載生成的數(shù)據(jù)進(jìn)行后期處理或進(jìn)一步研究。

使用有30年歷史的HPC架構(gòu)的不斷增長(zhǎng)的成本

我們繼續(xù)使用遺留的HPC框架,因?yàn)槭C(jī)會(huì)、無(wú)人認(rèn)領(lǐng)的規(guī)模經(jīng)濟(jì)和影子IT成本,給科學(xué)界帶來(lái)了高昂的損失。

失去的機(jī)會(huì)包括研究人員和組織,他們無(wú)法使用遺留的HPC計(jì)算架構(gòu),而是只能使用不可支持、不可擴(kuò)展和不專業(yè)維護(hù)的架構(gòu)。例如,筆者見(jiàn)過(guò)許多研究人員使用筆記本電腦作為計(jì)算基礎(chǔ)設(shè)施。

其他失去的機(jī)會(huì)包括無(wú)法適應(yīng)現(xiàn)代工作負(fù)載,其中許多工作負(fù)載沒(méi)有得到遺留HPC架構(gòu)的充分支持。例如,幾乎不可能將傳統(tǒng)的HPC系統(tǒng)架構(gòu)安全地集成到用于自動(dòng)化訓(xùn)練和分析的CI/CD管道中;更簡(jiǎn)單的開(kāi)發(fā)和資源前端,如Jupyter;日益多樣化的工作;以及multi-prem、off-prem甚至云資源。

此外,許多企業(yè)已經(jīng)表現(xiàn)出對(duì)Beowulf等遺留系統(tǒng)架構(gòu)的抵制。“我們不希望系統(tǒng)管理員再使用安全外殼(SSH),Beowulf要求所有使用SSH的用戶與系統(tǒng)接口!”

當(dāng)IT團(tuán)隊(duì)必須為特定的需求和用途構(gòu)建定制系統(tǒng)時(shí)(這是目前許多科學(xué)中心正在發(fā)生的事情),他們無(wú)法有效地利用硬件投資,因?yàn)槊總€(gè)“系統(tǒng)”都是一個(gè)孤立的資源池。我們現(xiàn)在看到了這一點(diǎn),中心為基于計(jì)算的服務(wù)構(gòu)建了完全獨(dú)立的系統(tǒng),Jupyter與Kubernetes構(gòu)建了系統(tǒng)。如果HPC資源正確地支持所有這些用例,那么可以實(shí)現(xiàn)規(guī)模經(jīng)濟(jì)。

此外,在太多的情況下,研究團(tuán)隊(duì)試圖在IT權(quán)限之外構(gòu)建自己的系統(tǒng)或使用云實(shí)例,因?yàn)樗麄冇X(jué)得IT沒(méi)有提供研究所需的工具。雖然云使某些形式的計(jì)算變得容易,但在本地預(yù)處理資源上,或者如果你被鎖定在一個(gè)云供應(yīng)商中,它并不總是有意義的。

這些不幸的事實(shí)正在扼殺研究和科學(xué)進(jìn)步。

進(jìn)步的暗示?

當(dāng)然,已經(jīng)出現(xiàn)了一些讓HPC用戶的體驗(yàn)變得更容易的事情。例如,Open OnDemand是封裝整個(gè)Beowulf架構(gòu)并將其作為基于http(即基于web)的圖形界面返回給用戶的一種極好的方式。OnDemand在提供比SSH更現(xiàn)代的用戶界面(UI)方面提供了巨大的價(jià)值,但許多網(wǎng)站發(fā)現(xiàn),它并沒(méi)有顯著降低進(jìn)入門(mén)檻,因?yàn)橛脩羧匀恍枰斫馍厦娓攀龅乃邢嗤襟E。

另一個(gè)改進(jìn)是Jupyter Notebooks,它在讓研究人員和開(kāi)發(fā)人員的生活變得更好方面是一個(gè)巨大的飛躍。Jupyter經(jīng)常在學(xué)術(shù)界用于教學(xué)目的,它幫助研究人員進(jìn)行實(shí)時(shí)開(kāi)發(fā),并使用更現(xiàn)代的交互式網(wǎng)絡(luò)界面運(yùn)行“筆記本”。通過(guò)Jupyter,我們終于看到了用戶體驗(yàn)的演變——步驟列表被簡(jiǎn)化了。

然而,Jupyter通常與傳統(tǒng)的HPC架構(gòu)不兼容,因此,它不可能與現(xiàn)有的HPC架構(gòu)集成。事實(shí)上,許多傳統(tǒng)的HPC中心在一側(cè)運(yùn)行其傳統(tǒng)的HPC系統(tǒng),而在另一側(cè)使用其Jupyter系統(tǒng)在Kubernetes和以企業(yè)為中心的基礎(chǔ)設(shè)施之上運(yùn)行。的確,你可以使用Open OnDemand加上Jupyter來(lái)合并這些方法,但這會(huì)為用戶重新構(gòu)建流程——添加更多不同的步驟,使流程變得困難。

容器引領(lǐng)邁向更現(xiàn)代的HPC世界

容器已經(jīng)成為HPC世界的“潘多拉盒子”(以一種很好的方式?。?,展現(xiàn)了在非HPC領(lǐng)域中發(fā)生了許多創(chuàng)新對(duì)HPC社區(qū)非常有益。

企業(yè)中容器的出現(xiàn)是通過(guò)Docker等實(shí)現(xiàn)的,但這些容器實(shí)現(xiàn)需要特權(quán)根訪問(wèn)才能操作,因此允許非特權(quán)用戶訪問(wèn)運(yùn)行容器會(huì)給HPC系統(tǒng)帶來(lái)安全風(fēng)險(xiǎn)。這就是為什么筆者為HPC創(chuàng)建了第一個(gè)通用容器系統(tǒng)——Singularity——由于之前大量未滿足的需求,該系統(tǒng)立即被全球HPC中心采用。從那以后,筆者將Singularity加入了Linux基金會(huì),以保證該項(xiàng)目將始終為社區(qū)服務(wù),由社區(qū)管理,不受所有公司控制。作為這一舉措的一部分,該項(xiàng)目被重命名為Apptainer。

Apptainer改變了人們對(duì)可復(fù)制計(jì)算的看法?,F(xiàn)在,應(yīng)用程序在系統(tǒng)、研究人員和基礎(chǔ)設(shè)施之間變得更加可移植和可重用。容器簡(jiǎn)化了為HPC系統(tǒng)構(gòu)建自定義應(yīng)用程序的過(guò)程,因?yàn)樗鼈儸F(xiàn)在可以很容易地封裝到包含所有依賴項(xiàng)的容器中。容器在啟動(dòng)HPC現(xiàn)代化過(guò)程中發(fā)揮了重要作用,但這只是改善HPC用戶生活的第一步。想象一下,隨著驅(qū)動(dòng)下一代HPC環(huán)境的HPC轉(zhuǎn)型,接下來(lái)會(huì)發(fā)生什么。

接下來(lái)會(huì)發(fā)生什么?

現(xiàn)在是計(jì)算轉(zhuǎn)型的時(shí)候了:通用HPC架構(gòu)需要現(xiàn)代化,以便能夠更好地提供更廣泛的應(yīng)用程序、工作流和用例。利用現(xiàn)代基礎(chǔ)設(shè)施創(chuàng)新(云架構(gòu)、GPU等硬件),我們必須構(gòu)建不僅支持歷史/遺留用例,而且支持下一代HPC工作負(fù)載的HPC系統(tǒng)。

在CIQ,我們目前正在進(jìn)行這方面的工作,并一直在開(kāi)發(fā)一種解決方案,使HPC能夠?yàn)樗畜w驗(yàn)級(jí)別的用戶所接受。我們的愿景是提供一個(gè)現(xiàn)代的云原生、混合、聯(lián)邦基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施將在云和多云中,甚至在多云的多個(gè)可用性區(qū)域中,在內(nèi)部和多混合中運(yùn)行集群。

一個(gè)巨大的分布式計(jì)算架構(gòu)將與一個(gè)單一的API結(jié)合在一起,為研究人員提供在位置、移動(dòng)性、重力和數(shù)據(jù)安全方面的完全靈活性。此外,我們的目標(biāo)是抽象掉操作的所有復(fù)雜性,并最大限度地減少運(yùn)行HPC工作流所涉及的步驟。

我們的目標(biāo)是通過(guò)使HPC架構(gòu)現(xiàn)代化來(lái)實(shí)現(xiàn)科學(xué)——既支持更廣泛的工作多樣性,又降低更多研究人員進(jìn)入HPC的門(mén)檻,優(yōu)化所有人的體驗(yàn)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論