周 婧,王一超,韋建文,文敏華,林新華
(上海交通大學(xué) 網(wǎng)絡(luò)信息中心,上海 200240)
高性能計(jì)算系統(tǒng)已逐步成為高校科學(xué)計(jì)算和虛擬仿真類實(shí)驗(yàn)教學(xué)的主要實(shí)踐平臺(tái),為高校科學(xué)研究與人才培養(yǎng)提供了重要支撐。這些平臺(tái)承載了越來越多的虛擬仿真實(shí)驗(yàn)室,參與線上實(shí)驗(yàn)教學(xué)的師生數(shù)量與日俱增,對(duì)算力的需求不斷攀升,高性能計(jì)算集群建設(shè)規(guī)模日益擴(kuò)大[1-4]。為提高實(shí)驗(yàn)效率,平臺(tái)除需為用戶提供可靠的硬件環(huán)境外,還應(yīng)提供靈活易用的軟件環(huán)境及工具。上海交通大學(xué)自2013 年開始建設(shè)校級(jí)計(jì)算平臺(tái)“交我算”,經(jīng)過十年持續(xù)建設(shè),已建成多個(gè)高性能計(jì)算集群,包括國(guó)內(nèi)高校領(lǐng)先的計(jì)算平臺(tái)π2.0、國(guó)內(nèi)高校首個(gè)國(guó)產(chǎn)ARM 計(jì)算平臺(tái),以及國(guó)內(nèi)高校一流綠色水冷集群“思源一號(hào)”,總聚合算力達(dá)到10PFLOPS(每秒千萬億次)。為統(tǒng)一管理校級(jí)異構(gòu)集群(存在多套不同架構(gòu)的集群)和異地集群(跨區(qū)域的集群)[5],“交我算”構(gòu)建聚合門戶,為用戶提供統(tǒng)一的計(jì)算服務(wù)體驗(yàn)[6-7]。
在“交我算”平臺(tái)構(gòu)建初期,為使用高性能計(jì)算服務(wù),用戶需要經(jīng)歷相對(duì)繁瑣的步驟。首先,用戶不得不進(jìn)行多端協(xié)同,即“交我算”網(wǎng)站前端與終端軟件的協(xié)同。用戶需要在“交我算”網(wǎng)站前端查詢目標(biāo)高性能計(jì)算集群的信息,如用于登錄的域名,并手動(dòng)輸入用戶名、密碼和集群信息到終端軟件中,再用終端軟件登錄和使用目標(biāo)集群。在登錄與使用過程中,用戶可能遇到多種連接錯(cuò)誤(包括客戶端網(wǎng)絡(luò)設(shè)置錯(cuò)誤、賬戶狀態(tài)異常、密碼錯(cuò)誤等),必須人工排查連接錯(cuò)誤原因[8]。在調(diào)試完連接錯(cuò)誤后,用戶還需要在終端命令行中手動(dòng)傳輸程序與數(shù)據(jù)文件,進(jìn)而將目標(biāo)程序提交到高性能集群的任務(wù)調(diào)度系統(tǒng)中。對(duì)于高性能計(jì)算用戶,特別是非計(jì)算機(jī)專業(yè)用戶,這一系列步驟非常具有挑戰(zhàn)性。
為進(jìn)一步提升 “交我算”高性能計(jì)算平臺(tái)的用戶使用體驗(yàn),本文設(shè)計(jì)并開發(fā)了面向“交我算”高性能計(jì)算平臺(tái)的服務(wù)系統(tǒng)(簡(jiǎn)稱“交我算”服務(wù)系統(tǒng)),向用戶提供集群登錄與使用的一站式便捷服務(wù),并能夠自動(dòng)檢測(cè)連接錯(cuò)誤原因,極大地簡(jiǎn)化了用戶使用高性能計(jì)算服務(wù)的步驟,從而提升其完成高性能計(jì)算任務(wù)的效率。
當(dāng)前,已有一系列工作提供了基于網(wǎng)頁的一站式高性能計(jì)算服務(wù)系統(tǒng),根據(jù)不同科學(xué)計(jì)算應(yīng)用設(shè)計(jì)專門的任務(wù)提交、管理、查看的網(wǎng)頁界面,如中國(guó)科學(xué)院的HPCP 與科學(xué)計(jì)算應(yīng)用平臺(tái)[9]、中國(guó)科技云門戶管理系統(tǒng)[10]、于默奧大學(xué)的HPC2N[11]等,旨在降低高性能計(jì)算的使用門檻,然而,由于不同科學(xué)計(jì)算應(yīng)用有不同的特點(diǎn)(如輸入?yún)?shù)、輸出格式、執(zhí)行環(huán)境等),上述工作需要為不同應(yīng)用針對(duì)性設(shè)計(jì)任務(wù)的提交、管理、查詢等頁面。
“交我算”平臺(tái)也提供了類似基于網(wǎng)頁的高性能計(jì)算平臺(tái)服務(wù)。然而,當(dāng)前計(jì)算機(jī)與人工智能快速發(fā)展,大量涌現(xiàn)的新應(yīng)用需求接踵而至,通過定制網(wǎng)頁服務(wù)已無法及時(shí)支持這些目標(biāo)應(yīng)用,仍有非常多的師生需要基于終端的方式管理高性能計(jì)算任務(wù)。因此,本文設(shè)計(jì)與實(shí)現(xiàn)的”交我算“服務(wù)系統(tǒng)通過簡(jiǎn)化終端模擬器的共性使用流程、優(yōu)化界面與使用方式等提升用戶體驗(yàn)。
“交我算”服務(wù)系統(tǒng)以終端使用為中心提供一站式服務(wù),根據(jù)長(zhǎng)期服務(wù)高性能計(jì)算用戶的經(jīng)驗(yàn),該系統(tǒng)需要滿足以下需求:
(1)易用性。首先,客戶端應(yīng)提供終端軟件功能,用戶只需通過客戶端即可完成高性能集群的登錄與使用;其次,應(yīng)盡可能簡(jiǎn)化用戶使用終端的步驟,如提供自動(dòng)信息補(bǔ)全、圖形化用戶文件傳輸?shù)裙δ?;最后,客戶端?yīng)盡可能提供現(xiàn)代化、可配置的界面,支持用戶根據(jù)自己的使用習(xí)慣自定義主題和快捷鍵,以支撐不同高性能應(yīng)用的需要。此外,為了方便使用,當(dāng)遇到集群連接錯(cuò)誤時(shí),客戶端應(yīng)能夠自動(dòng)識(shí)別導(dǎo)致連接錯(cuò)誤的具體原因并向用戶提示。
(2)兼容性。為滿足不同用戶的計(jì)算機(jī)和命令行環(huán)境使用習(xí)慣,客戶端應(yīng)具備跨平臺(tái)能力,能夠在主流的Windows、MacOS 和Linux 操作系統(tǒng)以及X86 或ARM 架構(gòu)處理器上運(yùn)行,并提供跨端的一致體驗(yàn)。
(3)高質(zhì)量服務(wù)。服務(wù)系統(tǒng)應(yīng)能向用戶提供低時(shí)延與高吞吐量的服務(wù)。同時(shí),為服務(wù)大規(guī)模用戶,系統(tǒng)還應(yīng)保證系統(tǒng)在峰值工作負(fù)載時(shí)的穩(wěn)定性。
“交我算”服務(wù)系統(tǒng)架構(gòu)如圖1 所示,主要包括客戶端與后端。用戶可借助客戶端提供的命令行環(huán)境,通過SSH(Secure Shell Protocol)協(xié)議[12-13]登錄并使用目標(biāo)高性能計(jì)算集群。同時(shí),客戶端與后端使用HTTP 協(xié)議通信,支持用戶登錄與信息同步。目前,服務(wù)系統(tǒng)已集成了用戶使用高性能計(jì)算所需的必要功能,提供了一站式高性能計(jì)算服務(wù)。
Fig.1 Architecture of “Counting-On-Me” service system圖1 “交我算”服務(wù)系統(tǒng)架構(gòu)
Fig.2 Architecture of “Counting-On-Me” service system client圖2 “交我算”服務(wù)系統(tǒng)客戶端架構(gòu)
“交我算”服務(wù)系統(tǒng)的客戶端是一個(gè)跨平臺(tái)桌面應(yīng)用程序,可運(yùn)行在主流操作系統(tǒng)與處理器架構(gòu)上,向用戶提供可配置的用戶界面與快捷鍵設(shè)置,其架構(gòu)如圖 2 所示。一方面,該系統(tǒng)內(nèi)置終端模擬器,提供終端功能,支持高性能計(jì)算集群的登錄與使用,提供便捷的文件傳輸功能,并能夠自動(dòng)診斷連接錯(cuò)誤;另一方面,其與后端協(xié)同管理用戶信息,并能定時(shí)同步集群信息,實(shí)現(xiàn)信息的自動(dòng)補(bǔ)全功能。
2.1.1 跨平臺(tái)編程語言技術(shù)選型
為提供良好的跨平臺(tái)能力,該系統(tǒng)選擇成熟的跨平臺(tái)編程語言TypeScript 作為客戶端的開發(fā)語言,基于以下兩點(diǎn)考慮:第一,TypeScript 比Java 和Python 具有更成熟的開源前端生態(tài),根據(jù)2023 年StackOverflow[14]統(tǒng)計(jì),全世界使用量排名前5 位的前端框架均支持TypeScript 語言;第二,TypeScript 采用靜態(tài)類型系統(tǒng),可使開發(fā)者顯式定義程序變量類型并在編譯時(shí)檢查,能有效降低代碼產(chǎn)生BUG 的可能性,提升程序的可維護(hù)性。鑒于“交我算”服務(wù)系統(tǒng)客戶端會(huì)長(zhǎng)期作為用戶訪問“交我算”高性能平臺(tái)的入口,需要長(zhǎng)期維護(hù)和添加新功能,可維護(hù)性需求高,因此最終采用TypeScript語言。
2.1.2 跨平臺(tái)桌面應(yīng)用程序安裝包創(chuàng)建
Electron[15]是一個(gè)支持TypeScript 的跨平臺(tái)桌面應(yīng)用程序框架,能夠?yàn)樽烂鎽?yīng)用程序創(chuàng)建跨平臺(tái)安裝包。本文系統(tǒng)使用Electron 為不同處理器架構(gòu)與操作系統(tǒng)組合創(chuàng)建對(duì)應(yīng)的客戶端安裝包,提供了良好的跨平臺(tái)能力。
“交我算”服務(wù)系統(tǒng)客戶端需要內(nèi)置終端模擬器,以向用戶提供終端軟件的功能,因此需要對(duì)被集成的終端模擬器進(jìn)行選型?;赥ypeScript 的開源終端模擬器Tabby[16]是一款完善的終端模擬器,可提供現(xiàn)代化用戶界面,且支持PowerShell、WSL、Git-Bash 和Cygwin 等多種命令行環(huán)境。同時(shí),Tabby 具有高度可配置的特點(diǎn),允許用戶根據(jù)自身喜好個(gè)性化設(shè)置外觀主題和快捷鍵,與“交我算”服務(wù)系統(tǒng)高可配置性的目標(biāo)吻合。因此,本文系統(tǒng)將Tabby 集成進(jìn)客戶端,并復(fù)用其成熟的可配置外觀主題和快捷鍵功能。
由于不同用戶會(huì)使用不同操作系統(tǒng)的不同命令行環(huán)境,“交我算”客戶端集成了Tabby 的高可配置特點(diǎn),允許用戶根據(jù)自身使用習(xí)慣選擇界面主題、快捷鍵和命令行環(huán)境等,用戶也可以定制具有配色、字體、窗口樣式的主題??蛻舳藢?duì)上述配置進(jìn)行擴(kuò)展,將它們以yaml 文件的形式保存,在客戶端啟動(dòng)時(shí)會(huì)讀取該配置文件以渲染頁面。當(dāng)用戶通過配置界面修改主題時(shí),修改也會(huì)體現(xiàn)在yaml 配置文件中。
圖3 為用戶yaml 配置文件的示例??梢钥闯?,用戶定義了常用快捷鍵,例如滾動(dòng)屏幕、新建窗口等。用戶還定義了終端樣式,包括顏色主題和字體,其中顏色主題采用RGB 值指定了背景顏色。
Fig.3 Example of user yaml configuration file圖3 用戶yaml配置文件示例
“交我算”客戶端支持用戶登錄已認(rèn)證的高性能計(jì)算賬戶,并能夠與后端進(jìn)行信息同步,從而實(shí)現(xiàn)信息的自動(dòng)補(bǔ)全,簡(jiǎn)化用戶操作。其主要功能包括但不限于:①客戶端支持用戶SSH 私鑰、客戶端配置等文件的同步,當(dāng)用戶在不同計(jì)算機(jī)的客戶端使用高性能計(jì)算服務(wù)時(shí)無需手動(dòng)傳輸上述文件或重新配置即可直接使用,極大地方便了用戶;②當(dāng)用戶需要輸入集群信息,例如選擇需要登錄的高性能計(jì)算集群時(shí),客戶端會(huì)顯示下拉菜單,其中包含可供用戶選擇的集群節(jié)點(diǎn)名稱,用戶只需點(diǎn)選所需登錄的集群名稱,客戶端即可自動(dòng)補(bǔ)全對(duì)應(yīng)的信息(如集群域名);③登錄集群時(shí),客戶端同樣會(huì)顯示下拉菜單,用戶可以選擇本地或在后端同步的SSH 私鑰文件,從而實(shí)現(xiàn)私鑰的一鍵選取。
在傳統(tǒng)場(chǎng)景下,用戶需要在終端中手動(dòng)輸入scp 命令以完成文件傳輸,同時(shí)需要手動(dòng)輸入源路徑與目標(biāo)路徑。為使用戶更方便地進(jìn)行文件傳輸,“交我算”服務(wù)系統(tǒng)客戶端支持基于SFTP(SSH File Transfer Protocol)協(xié)議的文件傳輸。SFTP 是一個(gè)基于SSH 的文件傳輸協(xié)議[17-18],提供文件存取、傳輸和管理等功能,并保證了上述功能的安全性。為使用戶在使用SFTP 傳輸文件時(shí)快速定位目標(biāo)路徑,客戶端支持圖形化目錄選取界面,用戶只需通過鼠標(biāo)點(diǎn)擊即可選取目標(biāo)路徑。需要注意的是,在終端使用SFTP 向Linux 系統(tǒng)傳輸文件時(shí)存在易用性方面的問題,默認(rèn)目標(biāo)路徑為系統(tǒng)的根目錄,而大部分情況下用戶希望將文件保存在自己的工作目錄下,非Linux 系統(tǒng)用戶可能缺乏該認(rèn)識(shí)而難以找到自己的文件。為簡(jiǎn)化用戶操作步驟,在用戶登錄集群初時(shí),客戶端會(huì)通過在終端中執(zhí)行echo-e $(pwd)命令獲取當(dāng)前的工作目錄——家目錄(Home Directory),即操作系統(tǒng)中給定用戶的默認(rèn)文件存儲(chǔ)位置。上述被記錄的家目錄會(huì)被設(shè)置為SFTP 目錄選取界面的初始目錄。
為幫助用戶更清楚地了解SSH 連接失敗或斷開的原因,“交我算”服務(wù)系統(tǒng)客戶端專門設(shè)計(jì)了連接錯(cuò)誤診斷模塊。該模塊能夠?qū)SH 連接錯(cuò)誤進(jìn)行分類診斷[19-21],并向用戶提供詳細(xì)報(bào)告。該功能涵蓋了用戶日常面臨連接錯(cuò)誤的92%。根據(jù)診斷時(shí)機(jī),可以將連接錯(cuò)誤分為以下3類:①連接前錯(cuò)誤。指發(fā)起SSH 連接前可以被診斷出的錯(cuò)誤;②連接失敗錯(cuò)誤。指發(fā)起SSH 連接失敗時(shí)可被診斷出的錯(cuò)誤;③連接斷開錯(cuò)誤。指SSH 成功連接但最終被斷開的錯(cuò)誤。SSH 連接錯(cuò)誤分類診斷總體流程如圖4 所示,按順序分別檢測(cè)連接前錯(cuò)誤、連接失敗錯(cuò)誤以及連接斷開錯(cuò)誤。
Fig.4 SSH connection error classification diagnosis process圖4 SSH連接錯(cuò)誤分類診斷流程
Fig.5 Architecture of “Counting-On-Me” service system backend圖5 “交我算”服務(wù)系統(tǒng)后端架構(gòu)
Fig.6 Throughput test result of “Counting-On-Me” service system圖6 “交我算”服務(wù)系統(tǒng)吞吐量測(cè)試結(jié)果
Fig.7 The illustration of user logging in and transferring files using the “Counting-On-Me” client圖7 用戶使用“交我算”客戶端登錄集群及傳輸文件
在用戶發(fā)起集群登錄請(qǐng)求前,客戶端會(huì)首先檢測(cè)連接前錯(cuò)誤。連接前錯(cuò)誤可進(jìn)一步被細(xì)分為網(wǎng)絡(luò)連接錯(cuò)誤、未使用校園網(wǎng)錯(cuò)誤和域名解析錯(cuò)誤。對(duì)于網(wǎng)絡(luò)連接錯(cuò)誤,客戶端會(huì)訪問上海交通大學(xué)的若干公開域名,如果失敗則認(rèn)為是客戶端網(wǎng)絡(luò)未連接成功。在確認(rèn)客戶端正常連接網(wǎng)絡(luò)后,客戶端會(huì)訪問上海交通大學(xué)的IP 查詢服務(wù),查詢校園網(wǎng)IP 地址范圍,并檢測(cè)客戶端IP 地址是否在查詢的IP地址范圍中。如果不在,則報(bào)告未使用校園網(wǎng)錯(cuò)誤。如果客戶端網(wǎng)絡(luò)可用并且正在使用校園網(wǎng)(僅針對(duì)需要通過校園網(wǎng)訪問的集群),客戶端會(huì)嘗試解析用戶指定的服務(wù)器域名。如果無法解析,則報(bào)告域名解析錯(cuò)誤。
在確保沒有檢測(cè)到連接前錯(cuò)誤后,客戶端會(huì)向服務(wù)器發(fā)起SSH 連接,并在連接失敗的情況下診斷連接失敗錯(cuò)誤。首先,客戶端會(huì)預(yù)置一個(gè)檢測(cè)連接失敗錯(cuò)誤的時(shí)間閾值。如果用戶已經(jīng)輸入密碼并且在該時(shí)間閾值內(nèi)仍無響應(yīng),則認(rèn)為當(dāng)前使用的節(jié)點(diǎn)過于繁忙,需向用戶報(bào)告節(jié)點(diǎn)負(fù)載過高錯(cuò)誤。否則,如果連接失敗的原因?yàn)镾SH 會(huì)話發(fā)起失敗,則根據(jù)會(huì)話發(fā)起失敗的異常信息向用戶報(bào)告失敗原因。如果會(huì)話發(fā)起失敗的原因?yàn)榈卿浾J(rèn)證失敗,則向用戶報(bào)告密碼不匹配錯(cuò)誤。如果原因?yàn)橛脩舳啻蔚卿浾J(rèn)證失敗,則報(bào)告賬號(hào)暫時(shí)封禁錯(cuò)誤,用戶由于輸入密碼錯(cuò)誤次數(shù)過多而被封禁,需1 h 后重試。如果不屬于上述任一種情況,則SSH 連接錯(cuò)誤信息與網(wǎng)絡(luò)有關(guān),客戶端向后端查詢集群當(dāng)前狀態(tài)。如果目標(biāo)集群屬于不可用狀態(tài),則向用戶報(bào)告集群停機(jī)錯(cuò)誤;否則告知用戶聯(lián)系集群管理員,確認(rèn)具體連接錯(cuò)誤原因。成功連接集群后,如果在集群使用過程中連接異常斷開,客戶端會(huì)診斷連接斷開錯(cuò)誤。首先向后端查詢當(dāng)前用戶狀態(tài),如果顯示用戶狀態(tài)被凍結(jié),則會(huì)報(bào)告對(duì)應(yīng)錯(cuò)誤并提醒用戶發(fā)送郵件申請(qǐng)解封;否則向用戶報(bào)告配置文件設(shè)置錯(cuò)誤,提醒用戶聯(lián)系集群管理員重置出錯(cuò)的終端配置文件或SSH 腳本。
“交我算”服務(wù)系統(tǒng)后端主要由單機(jī)部署的HTTP 服務(wù)器和MySQL 數(shù)據(jù)庫組成,架構(gòu)如圖 5 所示。HTTP 服務(wù)器采用成熟的Java 后端框架Spring Framework[22]、Hibernate[23]和JDBC[24]實(shí)現(xiàn),這些框架能夠極大程度地簡(jiǎn)化后端服務(wù)器的開發(fā)。數(shù)據(jù)庫采用成熟的關(guān)系型數(shù)據(jù)庫MySQL。
“交我算”后端數(shù)據(jù)庫用于維護(hù)用戶信息與集群信息。用戶表的信息主要包括用戶名、加密后的登錄密碼、SSH私鑰文件、客戶端配置文件、用戶狀態(tài)等;集群信息包括集群名、域名和集群狀態(tài)等。由于集群狀態(tài)為動(dòng)態(tài)信息,為了維護(hù)當(dāng)前不同集群的狀態(tài),后端會(huì)定期檢查計(jì)算平臺(tái)集群節(jié)點(diǎn)的網(wǎng)絡(luò)是否能夠正常連通,如果發(fā)現(xiàn)出現(xiàn)網(wǎng)絡(luò)故障的集群,便會(huì)將對(duì)應(yīng)的集群狀態(tài)從“可用”修改為“不可用”。
為了同步信息數(shù)據(jù),客戶端會(huì)定時(shí)向后端發(fā)起查詢請(qǐng)求,從而輔助客戶端的信息自動(dòng)補(bǔ)全功能。同時(shí),后端的信息管理能夠擴(kuò)展到其他集群配置信息[25],使客戶端支持對(duì)此類集群配置信息的查詢,以使客戶端支持更多功能。
4.1.1 系統(tǒng)部署
將“交我算”服務(wù)系統(tǒng)后端部署在上海交通大學(xué)網(wǎng)絡(luò)信息中心機(jī)房的單臺(tái)服務(wù)器中。服務(wù)器硬件配置為24 核Intel(R)Xeon(R)Gold 5317 CPU,128 GB 內(nèi)存以及Broadcom BCM5720 千兆網(wǎng)卡,操作系統(tǒng)為Ubuntu 18.04.6 LTS。
4.1.2 端對(duì)端時(shí)延測(cè)試
為驗(yàn)證“交我算”服務(wù)系統(tǒng)的性能,首先測(cè)試客戶端從用戶點(diǎn)擊到接收請(qǐng)求結(jié)果的端對(duì)端時(shí)延。使用一臺(tái)Windows 臺(tái)式機(jī)運(yùn)行客戶端,并向后端發(fā)送5 000 次“用戶/集群信息查詢”請(qǐng)求,取平均值作為結(jié)果。測(cè)試結(jié)果顯示,單次信息查詢請(qǐng)求的平均時(shí)延為80.3 ms,驗(yàn)證了“交我算”服務(wù)系統(tǒng)能夠提供較好的用戶使用體驗(yàn)。
4.1.3 吞吐量測(cè)試
對(duì)“交我算”服務(wù)系統(tǒng)進(jìn)行壓力測(cè)試,使用HTTP 測(cè)試工具wrk[26]模擬并發(fā)用戶的模擬峰值工作負(fù)載,主要測(cè)試后端處理并發(fā)請(qǐng)求的峰值吞吐量。將wrk 運(yùn)行在一臺(tái)與后端服務(wù)器相同配置的服務(wù)器上,與后端服務(wù)器之間的最大網(wǎng)絡(luò)帶寬為1 Gb/s。在測(cè)試時(shí),不斷增加模擬并發(fā)用戶數(shù)量,直至吞吐量達(dá)到峰值。測(cè)試結(jié)果如圖 6 所示,圖中的每個(gè)性能點(diǎn)為5 次測(cè)試的中位數(shù)。隨著并發(fā)用戶數(shù)的上升,后端服務(wù)器最多可以在350 個(gè)并發(fā)模擬客戶端請(qǐng)求下達(dá)到每秒7 138 請(qǐng)求的峰值吞吐量。此時(shí),服務(wù)器的CPU 資源占用率大于90%,而網(wǎng)絡(luò)帶寬占用僅為609.68 Mb/s(未及最大網(wǎng)絡(luò)帶寬的1 Gb/s),因此后端服務(wù)器的CPU 處理能力成為瓶頸。根據(jù)測(cè)試可知,“交我算”服務(wù)系統(tǒng)足以應(yīng)對(duì)目前高性能計(jì)算平臺(tái)的用戶規(guī)模。
以納米級(jí)電子結(jié)構(gòu)計(jì)算和材料建模的科學(xué)計(jì)算應(yīng)用Quantum ESPRESSO[27]為案例,介紹使用“交我算”服務(wù)系統(tǒng)客戶端進(jìn)行科學(xué)計(jì)算的流程?!敖晃宜恪狈?wù)系統(tǒng)支持用戶基于終端命令執(zhí)行管理任務(wù),不同應(yīng)用間的主要區(qū)別在于任務(wù)腳本的撰寫,整體流程不變。因此,該流程只需替換用戶的任務(wù)腳本即可適用于其他應(yīng)用,如生物信息計(jì)算(如AlphaFold2[28]、BEDTOOL2[29])、原子分子工程計(jì)算(如ABINIT[30]、OpenFOAM[31])等科學(xué)計(jì)算工具以及基于常用機(jī)器學(xué)習(xí)框架(如Tensorflow[32]、PyTorch[33])的各類人工智能應(yīng)用。
如圖 7(1)(彩圖掃OSID 碼可見)所示,用戶登錄客戶端后首先進(jìn)入主頁,并通過“配置與連接”按鈕創(chuàng)建對(duì)集群的SSH 連接。主頁會(huì)記錄用戶最近使用的連接配置,如第二行紅框所選的“交我算平臺(tái):思源一號(hào)”表示最近使用的SSH 連接配置。在發(fā)起新連接時(shí),用戶可以在圖 7(2)所示下拉菜單中選擇“交我算”客戶端緩存的集群信息,指定登錄的集群。圖 7(3)顯示了創(chuàng)建連接時(shí)的密碼輸入界面,支持記錄用戶輸入的密碼或記錄用于登錄的密鑰。如果連接失敗,則會(huì)收到圖 7(4)所示的連接錯(cuò)誤診斷信息。如圖 7(5)所示,用戶SSH 連接成功后即可通過終端在集群節(jié)點(diǎn)上提交計(jì)算任務(wù)。如果需要傳輸文件,則點(diǎn)擊SFTP 鍵,彈出圖 7(6)的文件傳輸界面?!敖晃宜恪苯K端模擬器會(huì)檢測(cè)當(dāng)前目錄位置,并支持用戶從當(dāng)前位置開始查找或傳輸文件。此外,界面還提供了創(chuàng)建文件夾、上傳文件等按鈕,幫助用戶便捷地上傳需要執(zhí)行的任務(wù)腳本。
“交我算”平臺(tái)使用Slurm 作業(yè)調(diào)度系統(tǒng)[34]管理高性能計(jì)算集群上的任務(wù),用戶可使用如圖 7(7)所示的sbatch命令提交作業(yè),其中qe_intel.slurm 為用戶上傳和指定運(yùn)行的任務(wù)腳本。用戶還可通過squeue 命令查詢當(dāng)前任務(wù)狀態(tài)。最后,圖 7(8)顯示了任務(wù)結(jié)束后的輸出文件目錄結(jié)構(gòu),用戶可使用命令行命令在終端查看結(jié)果,也可便捷地通過客戶端的文件傳輸功能下載輸出文件并在本地查看。
“交我算”服務(wù)系統(tǒng)上線后,根據(jù)工單系統(tǒng)和微信群統(tǒng)計(jì),用戶匯報(bào)連接錯(cuò)誤的頻率顯著降低,關(guān)于連接錯(cuò)誤的用戶咨詢?cè)谒凶稍兊恼急葟?%降低到1%,顯著提升了用戶(尤其是非計(jì)算機(jī)專業(yè)用戶)對(duì)于高性能集群的使用效率與用戶體驗(yàn)。
本文針對(duì)高性能計(jì)算用戶使用“交我算”高性能計(jì)算平臺(tái)時(shí)遇到的步驟繁瑣問題,設(shè)計(jì)并開發(fā)了“交我算”一站式服務(wù)系統(tǒng)。該服務(wù)系統(tǒng)具有跨平臺(tái)客戶端,通過集成終端模擬器提供集群登錄和使用功能,并且具備現(xiàn)代化的用戶界面。該系統(tǒng)支持高度可配置的主題配色和快捷鍵設(shè)置,能夠自動(dòng)補(bǔ)全用戶所需填寫的信息,簡(jiǎn)化用戶向集群傳輸文件的過程,并能夠幫助用戶自動(dòng)分析連接錯(cuò)誤。測(cè)試結(jié)果與實(shí)際部署表明,“交我算”服務(wù)系統(tǒng)能夠提供低時(shí)延與高并發(fā)的服務(wù),并顯著提升了上海交通大學(xué)師生使用高性能集群的體驗(yàn)。該系統(tǒng)對(duì)其他高校和科研機(jī)構(gòu)的高性能計(jì)算機(jī)群運(yùn)營(yíng)亦具有一定的參考價(jià)值。
為進(jìn)一步提升“交我算”服務(wù)系統(tǒng)的易用性,未來將在以下3 個(gè)方面進(jìn)行系統(tǒng)優(yōu)化與拓展:①增強(qiáng)軟件在不同操作系統(tǒng)上的兼容性,并提供更多操作系統(tǒng)版本的支持服務(wù);②添加與超算可視化平臺(tái)的互聯(lián)功能,方便用戶在“交我算”系統(tǒng)上運(yùn)行可視化程序;③集成集群的低效作業(yè)提醒功能,通過監(jiān)測(cè)低效運(yùn)行作業(yè)并及時(shí)通知用戶以提高集群計(jì)算資源的運(yùn)行效率。