?

面向高性能計算平臺的一站式服務系統

2024-02-21 06:00王一超韋建文文敏華林新華
軟件導刊 2024年1期
關鍵詞:跨平臺高性能客戶端

周 婧,王一超,韋建文,文敏華,林新華

(上海交通大學 網絡信息中心,上海 200240)

0 引言

高性能計算系統已逐步成為高??茖W計算和虛擬仿真類實驗教學的主要實踐平臺,為高??茖W研究與人才培養提供了重要支撐。這些平臺承載了越來越多的虛擬仿真實驗室,參與線上實驗教學的師生數量與日俱增,對算力的需求不斷攀升,高性能計算集群建設規模日益擴大[1-4]。為提高實驗效率,平臺除需為用戶提供可靠的硬件環境外,還應提供靈活易用的軟件環境及工具。上海交通大學自2013 年開始建設校級計算平臺“交我算”,經過十年持續建設,已建成多個高性能計算集群,包括國內高校領先的計算平臺π2.0、國內高校首個國產ARM 計算平臺,以及國內高校一流綠色水冷集群“思源一號”,總聚合算力達到10PFLOPS(每秒千萬億次)。為統一管理校級異構集群(存在多套不同架構的集群)和異地集群(跨區域的集群)[5],“交我算”構建聚合門戶,為用戶提供統一的計算服務體驗[6-7]。

在“交我算”平臺構建初期,為使用高性能計算服務,用戶需要經歷相對繁瑣的步驟。首先,用戶不得不進行多端協同,即“交我算”網站前端與終端軟件的協同。用戶需要在“交我算”網站前端查詢目標高性能計算集群的信息,如用于登錄的域名,并手動輸入用戶名、密碼和集群信息到終端軟件中,再用終端軟件登錄和使用目標集群。在登錄與使用過程中,用戶可能遇到多種連接錯誤(包括客戶端網絡設置錯誤、賬戶狀態異常、密碼錯誤等),必須人工排查連接錯誤原因[8]。在調試完連接錯誤后,用戶還需要在終端命令行中手動傳輸程序與數據文件,進而將目標程序提交到高性能集群的任務調度系統中。對于高性能計算用戶,特別是非計算機專業用戶,這一系列步驟非常具有挑戰性。

為進一步提升 “交我算”高性能計算平臺的用戶使用體驗,本文設計并開發了面向“交我算”高性能計算平臺的服務系統(簡稱“交我算”服務系統),向用戶提供集群登錄與使用的一站式便捷服務,并能夠自動檢測連接錯誤原因,極大地簡化了用戶使用高性能計算服務的步驟,從而提升其完成高性能計算任務的效率。

1 服務系統需求與架構

當前,已有一系列工作提供了基于網頁的一站式高性能計算服務系統,根據不同科學計算應用設計專門的任務提交、管理、查看的網頁界面,如中國科學院的HPCP 與科學計算應用平臺[9]、中國科技云門戶管理系統[10]、于默奧大學的HPC2N[11]等,旨在降低高性能計算的使用門檻,然而,由于不同科學計算應用有不同的特點(如輸入參數、輸出格式、執行環境等),上述工作需要為不同應用針對性設計任務的提交、管理、查詢等頁面。

“交我算”平臺也提供了類似基于網頁的高性能計算平臺服務。然而,當前計算機與人工智能快速發展,大量涌現的新應用需求接踵而至,通過定制網頁服務已無法及時支持這些目標應用,仍有非常多的師生需要基于終端的方式管理高性能計算任務。因此,本文設計與實現的”交我算“服務系統通過簡化終端模擬器的共性使用流程、優化界面與使用方式等提升用戶體驗。

1.1 服務系統需求

“交我算”服務系統以終端使用為中心提供一站式服務,根據長期服務高性能計算用戶的經驗,該系統需要滿足以下需求:

(1)易用性。首先,客戶端應提供終端軟件功能,用戶只需通過客戶端即可完成高性能集群的登錄與使用;其次,應盡可能簡化用戶使用終端的步驟,如提供自動信息補全、圖形化用戶文件傳輸等功能;最后,客戶端應盡可能提供現代化、可配置的界面,支持用戶根據自己的使用習慣自定義主題和快捷鍵,以支撐不同高性能應用的需要。此外,為了方便使用,當遇到集群連接錯誤時,客戶端應能夠自動識別導致連接錯誤的具體原因并向用戶提示。

(2)兼容性。為滿足不同用戶的計算機和命令行環境使用習慣,客戶端應具備跨平臺能力,能夠在主流的Windows、MacOS 和Linux 操作系統以及X86 或ARM 架構處理器上運行,并提供跨端的一致體驗。

(3)高質量服務。服務系統應能向用戶提供低時延與高吞吐量的服務。同時,為服務大規模用戶,系統還應保證系統在峰值工作負載時的穩定性。

1.2 服務系統架構

“交我算”服務系統架構如圖1 所示,主要包括客戶端與后端。用戶可借助客戶端提供的命令行環境,通過SSH(Secure Shell Protocol)協議[12-13]登錄并使用目標高性能計算集群。同時,客戶端與后端使用HTTP 協議通信,支持用戶登錄與信息同步。目前,服務系統已集成了用戶使用高性能計算所需的必要功能,提供了一站式高性能計算服務。

Fig.1 Architecture of “Counting-On-Me” service system圖1 “交我算”服務系統架構

Fig.2 Architecture of “Counting-On-Me” service system client圖2 “交我算”服務系統客戶端架構

2 客戶端設計與實現

“交我算”服務系統的客戶端是一個跨平臺桌面應用程序,可運行在主流操作系統與處理器架構上,向用戶提供可配置的用戶界面與快捷鍵設置,其架構如圖 2 所示。一方面,該系統內置終端模擬器,提供終端功能,支持高性能計算集群的登錄與使用,提供便捷的文件傳輸功能,并能夠自動診斷連接錯誤;另一方面,其與后端協同管理用戶信息,并能定時同步集群信息,實現信息的自動補全功能。

2.1 跨平臺支持

2.1.1 跨平臺編程語言技術選型

為提供良好的跨平臺能力,該系統選擇成熟的跨平臺編程語言TypeScript 作為客戶端的開發語言,基于以下兩點考慮:第一,TypeScript 比Java 和Python 具有更成熟的開源前端生態,根據2023 年StackOverflow[14]統計,全世界使用量排名前5 位的前端框架均支持TypeScript 語言;第二,TypeScript 采用靜態類型系統,可使開發者顯式定義程序變量類型并在編譯時檢查,能有效降低代碼產生BUG 的可能性,提升程序的可維護性。鑒于“交我算”服務系統客戶端會長期作為用戶訪問“交我算”高性能平臺的入口,需要長期維護和添加新功能,可維護性需求高,因此最終采用TypeScript語言。

2.1.2 跨平臺桌面應用程序安裝包創建

Electron[15]是一個支持TypeScript 的跨平臺桌面應用程序框架,能夠為桌面應用程序創建跨平臺安裝包。本文系統使用Electron 為不同處理器架構與操作系統組合創建對應的客戶端安裝包,提供了良好的跨平臺能力。

2.2 終端模擬器技術選型

“交我算”服務系統客戶端需要內置終端模擬器,以向用戶提供終端軟件的功能,因此需要對被集成的終端模擬器進行選型?;赥ypeScript 的開源終端模擬器Tabby[16]是一款完善的終端模擬器,可提供現代化用戶界面,且支持PowerShell、WSL、Git-Bash 和Cygwin 等多種命令行環境。同時,Tabby 具有高度可配置的特點,允許用戶根據自身喜好個性化設置外觀主題和快捷鍵,與“交我算”服務系統高可配置性的目標吻合。因此,本文系統將Tabby 集成進客戶端,并復用其成熟的可配置外觀主題和快捷鍵功能。

2.3 可配置功能

由于不同用戶會使用不同操作系統的不同命令行環境,“交我算”客戶端集成了Tabby 的高可配置特點,允許用戶根據自身使用習慣選擇界面主題、快捷鍵和命令行環境等,用戶也可以定制具有配色、字體、窗口樣式的主題??蛻舳藢ι鲜雠渲眠M行擴展,將它們以yaml 文件的形式保存,在客戶端啟動時會讀取該配置文件以渲染頁面。當用戶通過配置界面修改主題時,修改也會體現在yaml 配置文件中。

圖3 為用戶yaml 配置文件的示例??梢钥闯?,用戶定義了常用快捷鍵,例如滾動屏幕、新建窗口等。用戶還定義了終端樣式,包括顏色主題和字體,其中顏色主題采用RGB 值指定了背景顏色。

Fig.3 Example of user yaml configuration file圖3 用戶yaml配置文件示例

2.4 用戶與集群信息管理

“交我算”客戶端支持用戶登錄已認證的高性能計算賬戶,并能夠與后端進行信息同步,從而實現信息的自動補全,簡化用戶操作。其主要功能包括但不限于:①客戶端支持用戶SSH 私鑰、客戶端配置等文件的同步,當用戶在不同計算機的客戶端使用高性能計算服務時無需手動傳輸上述文件或重新配置即可直接使用,極大地方便了用戶;②當用戶需要輸入集群信息,例如選擇需要登錄的高性能計算集群時,客戶端會顯示下拉菜單,其中包含可供用戶選擇的集群節點名稱,用戶只需點選所需登錄的集群名稱,客戶端即可自動補全對應的信息(如集群域名);③登錄集群時,客戶端同樣會顯示下拉菜單,用戶可以選擇本地或在后端同步的SSH 私鑰文件,從而實現私鑰的一鍵選取。

2.5 便捷文件傳輸功能

在傳統場景下,用戶需要在終端中手動輸入scp 命令以完成文件傳輸,同時需要手動輸入源路徑與目標路徑。為使用戶更方便地進行文件傳輸,“交我算”服務系統客戶端支持基于SFTP(SSH File Transfer Protocol)協議的文件傳輸。SFTP 是一個基于SSH 的文件傳輸協議[17-18],提供文件存取、傳輸和管理等功能,并保證了上述功能的安全性。為使用戶在使用SFTP 傳輸文件時快速定位目標路徑,客戶端支持圖形化目錄選取界面,用戶只需通過鼠標點擊即可選取目標路徑。需要注意的是,在終端使用SFTP 向Linux 系統傳輸文件時存在易用性方面的問題,默認目標路徑為系統的根目錄,而大部分情況下用戶希望將文件保存在自己的工作目錄下,非Linux 系統用戶可能缺乏該認識而難以找到自己的文件。為簡化用戶操作步驟,在用戶登錄集群初時,客戶端會通過在終端中執行echo-e $(pwd)命令獲取當前的工作目錄——家目錄(Home Directory),即操作系統中給定用戶的默認文件存儲位置。上述被記錄的家目錄會被設置為SFTP 目錄選取界面的初始目錄。

2.6 連接錯誤診斷

為幫助用戶更清楚地了解SSH 連接失敗或斷開的原因,“交我算”服務系統客戶端專門設計了連接錯誤診斷模塊。該模塊能夠對SSH 連接錯誤進行分類診斷[19-21],并向用戶提供詳細報告。該功能涵蓋了用戶日常面臨連接錯誤的92%。根據診斷時機,可以將連接錯誤分為以下3類:①連接前錯誤。指發起SSH 連接前可以被診斷出的錯誤;②連接失敗錯誤。指發起SSH 連接失敗時可被診斷出的錯誤;③連接斷開錯誤。指SSH 成功連接但最終被斷開的錯誤。SSH 連接錯誤分類診斷總體流程如圖4 所示,按順序分別檢測連接前錯誤、連接失敗錯誤以及連接斷開錯誤。

Fig.4 SSH connection error classification diagnosis process圖4 SSH連接錯誤分類診斷流程

Fig.5 Architecture of “Counting-On-Me” service system backend圖5 “交我算”服務系統后端架構

Fig.6 Throughput test result of “Counting-On-Me” service system圖6 “交我算”服務系統吞吐量測試結果

Fig.7 The illustration of user logging in and transferring files using the “Counting-On-Me” client圖7 用戶使用“交我算”客戶端登錄集群及傳輸文件

在用戶發起集群登錄請求前,客戶端會首先檢測連接前錯誤。連接前錯誤可進一步被細分為網絡連接錯誤、未使用校園網錯誤和域名解析錯誤。對于網絡連接錯誤,客戶端會訪問上海交通大學的若干公開域名,如果失敗則認為是客戶端網絡未連接成功。在確認客戶端正常連接網絡后,客戶端會訪問上海交通大學的IP 查詢服務,查詢校園網IP 地址范圍,并檢測客戶端IP 地址是否在查詢的IP地址范圍中。如果不在,則報告未使用校園網錯誤。如果客戶端網絡可用并且正在使用校園網(僅針對需要通過校園網訪問的集群),客戶端會嘗試解析用戶指定的服務器域名。如果無法解析,則報告域名解析錯誤。

在確保沒有檢測到連接前錯誤后,客戶端會向服務器發起SSH 連接,并在連接失敗的情況下診斷連接失敗錯誤。首先,客戶端會預置一個檢測連接失敗錯誤的時間閾值。如果用戶已經輸入密碼并且在該時間閾值內仍無響應,則認為當前使用的節點過于繁忙,需向用戶報告節點負載過高錯誤。否則,如果連接失敗的原因為SSH 會話發起失敗,則根據會話發起失敗的異常信息向用戶報告失敗原因。如果會話發起失敗的原因為登錄認證失敗,則向用戶報告密碼不匹配錯誤。如果原因為用戶多次登錄認證失敗,則報告賬號暫時封禁錯誤,用戶由于輸入密碼錯誤次數過多而被封禁,需1 h 后重試。如果不屬于上述任一種情況,則SSH 連接錯誤信息與網絡有關,客戶端向后端查詢集群當前狀態。如果目標集群屬于不可用狀態,則向用戶報告集群停機錯誤;否則告知用戶聯系集群管理員,確認具體連接錯誤原因。成功連接集群后,如果在集群使用過程中連接異常斷開,客戶端會診斷連接斷開錯誤。首先向后端查詢當前用戶狀態,如果顯示用戶狀態被凍結,則會報告對應錯誤并提醒用戶發送郵件申請解封;否則向用戶報告配置文件設置錯誤,提醒用戶聯系集群管理員重置出錯的終端配置文件或SSH 腳本。

3 后端設計與實現

“交我算”服務系統后端主要由單機部署的HTTP 服務器和MySQL 數據庫組成,架構如圖 5 所示。HTTP 服務器采用成熟的Java 后端框架Spring Framework[22]、Hibernate[23]和JDBC[24]實現,這些框架能夠極大程度地簡化后端服務器的開發。數據庫采用成熟的關系型數據庫MySQL。

“交我算”后端數據庫用于維護用戶信息與集群信息。用戶表的信息主要包括用戶名、加密后的登錄密碼、SSH私鑰文件、客戶端配置文件、用戶狀態等;集群信息包括集群名、域名和集群狀態等。由于集群狀態為動態信息,為了維護當前不同集群的狀態,后端會定期檢查計算平臺集群節點的網絡是否能夠正常連通,如果發現出現網絡故障的集群,便會將對應的集群狀態從“可用”修改為“不可用”。

為了同步信息數據,客戶端會定時向后端發起查詢請求,從而輔助客戶端的信息自動補全功能。同時,后端的信息管理能夠擴展到其他集群配置信息[25],使客戶端支持對此類集群配置信息的查詢,以使客戶端支持更多功能。

4 性能測試與應用效果

4.1 性能測試

4.1.1 系統部署

將“交我算”服務系統后端部署在上海交通大學網絡信息中心機房的單臺服務器中。服務器硬件配置為24 核Intel(R)Xeon(R)Gold 5317 CPU,128 GB 內存以及Broadcom BCM5720 千兆網卡,操作系統為Ubuntu 18.04.6 LTS。

4.1.2 端對端時延測試

為驗證“交我算”服務系統的性能,首先測試客戶端從用戶點擊到接收請求結果的端對端時延。使用一臺Windows 臺式機運行客戶端,并向后端發送5 000 次“用戶/集群信息查詢”請求,取平均值作為結果。測試結果顯示,單次信息查詢請求的平均時延為80.3 ms,驗證了“交我算”服務系統能夠提供較好的用戶使用體驗。

4.1.3 吞吐量測試

對“交我算”服務系統進行壓力測試,使用HTTP 測試工具wrk[26]模擬并發用戶的模擬峰值工作負載,主要測試后端處理并發請求的峰值吞吐量。將wrk 運行在一臺與后端服務器相同配置的服務器上,與后端服務器之間的最大網絡帶寬為1 Gb/s。在測試時,不斷增加模擬并發用戶數量,直至吞吐量達到峰值。測試結果如圖 6 所示,圖中的每個性能點為5 次測試的中位數。隨著并發用戶數的上升,后端服務器最多可以在350 個并發模擬客戶端請求下達到每秒7 138 請求的峰值吞吐量。此時,服務器的CPU 資源占用率大于90%,而網絡帶寬占用僅為609.68 Mb/s(未及最大網絡帶寬的1 Gb/s),因此后端服務器的CPU 處理能力成為瓶頸。根據測試可知,“交我算”服務系統足以應對目前高性能計算平臺的用戶規模。

4.2 應用示例

以納米級電子結構計算和材料建模的科學計算應用Quantum ESPRESSO[27]為案例,介紹使用“交我算”服務系統客戶端進行科學計算的流程?!敖晃宜恪狈障到y支持用戶基于終端命令執行管理任務,不同應用間的主要區別在于任務腳本的撰寫,整體流程不變。因此,該流程只需替換用戶的任務腳本即可適用于其他應用,如生物信息計算(如AlphaFold2[28]、BEDTOOL2[29])、原子分子工程計算(如ABINIT[30]、OpenFOAM[31])等科學計算工具以及基于常用機器學習框架(如Tensorflow[32]、PyTorch[33])的各類人工智能應用。

如圖 7(1)(彩圖掃OSID 碼可見)所示,用戶登錄客戶端后首先進入主頁,并通過“配置與連接”按鈕創建對集群的SSH 連接。主頁會記錄用戶最近使用的連接配置,如第二行紅框所選的“交我算平臺:思源一號”表示最近使用的SSH 連接配置。在發起新連接時,用戶可以在圖 7(2)所示下拉菜單中選擇“交我算”客戶端緩存的集群信息,指定登錄的集群。圖 7(3)顯示了創建連接時的密碼輸入界面,支持記錄用戶輸入的密碼或記錄用于登錄的密鑰。如果連接失敗,則會收到圖 7(4)所示的連接錯誤診斷信息。如圖 7(5)所示,用戶SSH 連接成功后即可通過終端在集群節點上提交計算任務。如果需要傳輸文件,則點擊SFTP 鍵,彈出圖 7(6)的文件傳輸界面?!敖晃宜恪苯K端模擬器會檢測當前目錄位置,并支持用戶從當前位置開始查找或傳輸文件。此外,界面還提供了創建文件夾、上傳文件等按鈕,幫助用戶便捷地上傳需要執行的任務腳本。

“交我算”平臺使用Slurm 作業調度系統[34]管理高性能計算集群上的任務,用戶可使用如圖 7(7)所示的sbatch命令提交作業,其中qe_intel.slurm 為用戶上傳和指定運行的任務腳本。用戶還可通過squeue 命令查詢當前任務狀態。最后,圖 7(8)顯示了任務結束后的輸出文件目錄結構,用戶可使用命令行命令在終端查看結果,也可便捷地通過客戶端的文件傳輸功能下載輸出文件并在本地查看。

4.3 部署效果

“交我算”服務系統上線后,根據工單系統和微信群統計,用戶匯報連接錯誤的頻率顯著降低,關于連接錯誤的用戶咨詢在所有咨詢的占比從5%降低到1%,顯著提升了用戶(尤其是非計算機專業用戶)對于高性能集群的使用效率與用戶體驗。

5 結語

本文針對高性能計算用戶使用“交我算”高性能計算平臺時遇到的步驟繁瑣問題,設計并開發了“交我算”一站式服務系統。該服務系統具有跨平臺客戶端,通過集成終端模擬器提供集群登錄和使用功能,并且具備現代化的用戶界面。該系統支持高度可配置的主題配色和快捷鍵設置,能夠自動補全用戶所需填寫的信息,簡化用戶向集群傳輸文件的過程,并能夠幫助用戶自動分析連接錯誤。測試結果與實際部署表明,“交我算”服務系統能夠提供低時延與高并發的服務,并顯著提升了上海交通大學師生使用高性能集群的體驗。該系統對其他高校和科研機構的高性能計算機群運營亦具有一定的參考價值。

為進一步提升“交我算”服務系統的易用性,未來將在以下3 個方面進行系統優化與拓展:①增強軟件在不同操作系統上的兼容性,并提供更多操作系統版本的支持服務;②添加與超算可視化平臺的互聯功能,方便用戶在“交我算”系統上運行可視化程序;③集成集群的低效作業提醒功能,通過監測低效運行作業并及時通知用戶以提高集群計算資源的運行效率。

猜你喜歡
跨平臺高性能客戶端
跨平臺APEX接口組件的設計與實現
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設計與實現
一款高性能BGO探測器的研發
高性能砼在橋梁中的應用
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
SATA推出全新高性能噴槍SATAjet 5000 B
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合