本發(fā)明涉及高性能計(jì)算技術(shù)領(lǐng)域,特別是涉及一種高性能計(jì)算集群動(dòng)態(tài)節(jié)點(diǎn)作業(yè)方法。
背景技術(shù):
高性能計(jì)算(highperformancecomputing,縮寫hpc)指通常使用很多處理器(作為單個(gè)機(jī)器的一部分)或者某一集群中組織的幾臺(tái)計(jì)算機(jī)(作為單個(gè)計(jì)算資源操作)的計(jì)算系統(tǒng)和環(huán)境。高性能計(jì)算在航空航天、材料、數(shù)學(xué)、生物、物理、化學(xué)、氣象、環(huán)境、金融、媒體、電磁等多個(gè)行業(yè)具有較為廣泛和重要的作用。當(dāng)前高性能計(jì)算75%以上的系統(tǒng)都是通過x86服務(wù)器以clustre架構(gòu)進(jìn)行構(gòu)建,隨著服務(wù)器節(jié)點(diǎn)的增多和對(duì)集群效率、實(shí)測(cè)計(jì)算峰值、能耗等各方面要求的提升,傳統(tǒng)的高性能計(jì)算集群存在諸多瓶頸,需要廣大科研人員和集群維護(hù)人員進(jìn)行研究和探索。
通過基于infiniband網(wǎng)絡(luò)的無盤部署、標(biāo)準(zhǔn)化的作業(yè)提交流程和步驟、自動(dòng)控制和調(diào)整計(jì)算節(jié)點(diǎn)開機(jī)數(shù)量可以實(shí)現(xiàn):
a、節(jié)能,基于無盤部署,計(jì)算節(jié)點(diǎn)不需要配置硬盤,降低了集群的功率開銷和故障點(diǎn),通過動(dòng)態(tài)調(diào)整計(jì)算節(jié)點(diǎn)開關(guān)機(jī)數(shù)量,避免了大量計(jì)算節(jié)點(diǎn)開機(jī)空轉(zhuǎn)的情況,提高了能源的使用率;
b、性能,基于infiniband網(wǎng)絡(luò)的無盤部署,將系統(tǒng)鏡像通過低延時(shí)的高速網(wǎng)絡(luò)加載到各計(jì)算節(jié)點(diǎn)內(nèi)存中,提升了計(jì)算節(jié)點(diǎn)開機(jī)速度,并且充分利用了ramdisk的iops性能優(yōu)勢(shì),極大提升計(jì)算任務(wù)在計(jì)算節(jié)點(diǎn)單機(jī)內(nèi)部的收斂速率。
c、標(biāo)準(zhǔn)化,由于高性能計(jì)算涉及行業(yè)較多、范圍較廣、海量的專業(yè)軟件,導(dǎo)致了傳統(tǒng)用戶在使用高性能計(jì)算集群時(shí)需要去針對(duì)具體的計(jì)算軟件進(jìn)行了解學(xué)習(xí)后才能上機(jī)使用。通過對(duì)作業(yè)流程的重構(gòu)和標(biāo)準(zhǔn)化,將海量的專業(yè)軟件的作業(yè)提交流程通過中間件固定為同樣的步驟和流程,極大簡(jiǎn)化了上機(jī)操作步驟,讓傳統(tǒng)用戶能快速的入手并將集群充分使用起來。
d、節(jié)約,最大程度減少不必要的軟硬件投入(如計(jì)算節(jié)點(diǎn)硬盤、計(jì)算節(jié)點(diǎn)操作系統(tǒng)),提升資金使用率;
e、低故障率,傳統(tǒng)高性能計(jì)算集群在每個(gè)計(jì)算節(jié)點(diǎn)上需要安裝1塊硬盤用于存放操作系統(tǒng)。機(jī)械硬盤價(jià)格便宜,使用年限久,但性能較差;固態(tài)硬盤性能較好,但成本太高,壽命太短。并且當(dāng)集群意外斷電時(shí)極易導(dǎo)致操作系統(tǒng)損壞。通過無盤部署,有效避免了由硬盤導(dǎo)致的故障,極大降低集群故障率。
f、高效率,傳統(tǒng)高性能計(jì)算集群需要對(duì)所有的節(jié)點(diǎn)安裝操作系統(tǒng)和配置環(huán)境變量才能工作,本申請(qǐng)所描述方式無需該環(huán)節(jié),極大減少了集群部署時(shí)間,提升了集群部署的效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種高性能計(jì)算集群動(dòng)態(tài)節(jié)點(diǎn)作業(yè)方法,能夠提高高性能計(jì)算集群部署效率,降低故障率,簡(jiǎn)化作業(yè)提交,提高能源和資金利用率,提升使用效率和性能。
為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是:提供一種高性能計(jì)算集群動(dòng)態(tài)節(jié)點(diǎn)作業(yè)方法,其特征在于,包括如下步驟:
步驟1:配置服務(wù)器,包括管理網(wǎng)絡(luò)n1、計(jì)算網(wǎng)絡(luò)n2和用戶網(wǎng)絡(luò)n3,以及用戶網(wǎng)絡(luò)n3和管理網(wǎng)絡(luò)n1之間的安全防護(hù)網(wǎng)絡(luò)f1、登陸節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn;所述登陸節(jié)點(diǎn)、管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)分別與管理網(wǎng)絡(luò)和計(jì)算網(wǎng)絡(luò)建立通信連接;所述登陸節(jié)點(diǎn)和管理節(jié)點(diǎn)通過計(jì)算網(wǎng)絡(luò)掛載共享存儲(chǔ)s1;
步驟2:在管理節(jié)點(diǎn)m1上安裝并配置啟動(dòng)管理服務(wù)(flexboot)、動(dòng)態(tài)主機(jī)配置協(xié)議服務(wù)(dhcp)、文件傳輸協(xié)議服務(wù)(tftp)、域名系統(tǒng)服務(wù)(dns)、共享服務(wù)、認(rèn)證服務(wù)以及作業(yè)調(diào)度,配置完成后啟動(dòng)計(jì)算節(jié)點(diǎn);
步驟3:用戶網(wǎng)絡(luò)n3中的用戶,經(jīng)過安全防護(hù)網(wǎng)絡(luò)f1以安全外殼協(xié)議ssh登錄到登陸節(jié)點(diǎn)l1上,通過ssh將需要計(jì)算的算例上傳至登陸節(jié)點(diǎn)l1上的共享存儲(chǔ)s1;
步驟4:用戶在登陸節(jié)點(diǎn)l1上通過作業(yè)調(diào)度中間件,指定作業(yè)參數(shù)完成作業(yè)腳本的生成并啟動(dòng)提交給m1的作業(yè)調(diào)度進(jìn)行資源分配和計(jì)算;
步驟5:管理節(jié)點(diǎn)m1收到登陸節(jié)點(diǎn)l1上用戶提交的作業(yè)腳本后,首先將作業(yè)腳本中的函數(shù)調(diào)用請(qǐng)求交給管理節(jié)點(diǎn)中的maui.d進(jìn)行資源配額檢查,如果配額不足則報(bào)錯(cuò)提示,如果配額足夠,則將作業(yè)腳本轉(zhuǎn)交給m1上作業(yè)調(diào)度pbs_server進(jìn)行調(diào)度;
步驟6:管理節(jié)點(diǎn)m1的作業(yè)調(diào)度pbs_server收到作業(yè)腳本后,根據(jù)作業(yè)腳本要求的節(jié)點(diǎn)數(shù)、每節(jié)點(diǎn)核心數(shù)為作業(yè)分配進(jìn)行計(jì)算的節(jié)點(diǎn)c1到cn,如果節(jié)點(diǎn)數(shù)量不足,則將作業(yè)進(jìn)行排隊(duì)等待;如果節(jié)點(diǎn)數(shù)量足夠,則根據(jù)作業(yè)腳本具體執(zhí)行內(nèi)容開始計(jì)算;
步驟7:當(dāng)c1到cn完成計(jì)算后,釋放物理內(nèi)存、處理器等資源,并向m1的pbs_server反饋“所有核心均未占用,狀態(tài)free”的信號(hào);m1的pbs_server對(duì)該信號(hào)進(jìn)行記錄,并允許后續(xù)作業(yè)在該節(jié)點(diǎn)上進(jìn)行分配和計(jì)算;
步驟8:用戶可以通過安全文件傳輸協(xié)議sftp從l1上將s1中存儲(chǔ)的計(jì)算結(jié)果等信息取回到n3中,在本地電腦上打開進(jìn)行處理和分析。
優(yōu)選地,管理網(wǎng)絡(luò)n1為以太網(wǎng)絡(luò),主要負(fù)責(zé)計(jì)算節(jié)點(diǎn)開關(guān)機(jī)控制、作業(yè)調(diào)度數(shù)據(jù)傳輸、系統(tǒng)監(jiān)控等功能,計(jì)算網(wǎng)絡(luò)n1為infiniband網(wǎng)絡(luò),提高設(shè)備的擴(kuò)展性、數(shù)據(jù)的傳輸速率及通信延遲,主要負(fù)責(zé)數(shù)據(jù)及存儲(chǔ)的io、操作系統(tǒng)鏡像分發(fā)、計(jì)算軟件工作時(shí)各進(jìn)程相互通信與數(shù)據(jù)同步等功能,用戶網(wǎng)絡(luò)n3是高性能計(jì)算機(jī)用戶所在的網(wǎng)絡(luò),安全防護(hù)f1為防火墻、utm或路由器設(shè)備,提供用戶網(wǎng)絡(luò)到管理網(wǎng)絡(luò)的端口映射、訪問權(quán)限管理、異常流量監(jiān)測(cè)、攻擊防護(hù)等功能,登錄節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn統(tǒng)一為同一處理器架構(gòu)(如x86架構(gòu)、mips架構(gòu)、arm架構(gòu)、power架構(gòu)、spark架構(gòu)等),處理器具有完全相同的指令集,根據(jù)用戶實(shí)際使用需求和高性能計(jì)算機(jī)總體計(jì)算性能要求,登錄節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn可以通過集群(cluster)方式進(jìn)行橫向擴(kuò)展,共享存儲(chǔ)s1一般為基于infiniband的nfs服務(wù)器其包含底層的硬盤柜或磁盤陣列,或基于infiniband的分布式存儲(chǔ)系統(tǒng),對(duì)外提供一個(gè)統(tǒng)一的文件系統(tǒng)空間,并且支持用戶權(quán)限控制和容量配額。
優(yōu)選地,系統(tǒng)第一次部署時(shí)將登陸節(jié)點(diǎn)l1的操作系統(tǒng)復(fù)制為鏡像文件j1,并修改j1中包含的相關(guān)個(gè)性化參數(shù)配置文件為通用配置文件,其中包括修改網(wǎng)卡配置文件,去掉mac地址、uuid等唯一信息,修改為dhcp引導(dǎo);將主機(jī)名修改為dhcp自動(dòng)獲取、將硬盤的掛載方式修改為設(shè)備名方式進(jìn)行掛載、將系統(tǒng)環(huán)境變量存放目錄修改為共享存儲(chǔ)s1上特定目錄等。
所述計(jì)算節(jié)點(diǎn)的啟動(dòng)采用無盤啟動(dòng)方式,具體步驟包括:
步驟1:將c1(或cn)開機(jī),設(shè)置為默認(rèn)pxe引導(dǎo),pxe默認(rèn)設(shè)備為主機(jī)通道適配器(hca),采用flexboot模式;flexboot初始化hca卡,檢測(cè)端口協(xié)議及狀態(tài),以infiniband方式啟動(dòng)端口,并以廣播的方式發(fā)送dhcp客戶端(client)請(qǐng)求報(bào)文;
步驟2:管理節(jié)點(diǎn)m1的dhcp服務(wù)器從infiniband網(wǎng)絡(luò)收到請(qǐng)求報(bào)文后,將c1的ip地址、tftp服務(wù)器、網(wǎng)絡(luò)引導(dǎo)啟動(dòng)鏡像目錄發(fā)送給c1;c1接收到m1發(fā)出的報(bào)文后,根據(jù)收到的報(bào)文啟動(dòng)infiniband網(wǎng)絡(luò),并從m1的tftp服務(wù)器中下載啟動(dòng)鏡像目錄并加載到內(nèi)存中,所請(qǐng)求的鏡像目錄內(nèi)包含默認(rèn)的啟動(dòng)鏡像名稱j1、默認(rèn)啟動(dòng)鏡像鏡像時(shí)間等信息,通過c1上選擇啟動(dòng)j1或者超過默認(rèn)時(shí)間后自動(dòng)選擇啟動(dòng)j1,并向m1發(fā)送請(qǐng)求j1的報(bào)文;
步驟3:m1收到c1請(qǐng)求j1的報(bào)文后,將j1通過tftp服務(wù)器發(fā)送給c1;c1的flexboot接收完j1后,將j1放入內(nèi)存進(jìn)行加載;
步驟4:c1依次加載j1的內(nèi)核、根文件系統(tǒng)、網(wǎng)絡(luò)、配置文件等;c1在加載網(wǎng)絡(luò)時(shí)廣播dhcpclient的請(qǐng)求報(bào)文,m1的dhcpserver收到請(qǐng)求報(bào)文后再次將c1的ip地址發(fā)送給c1,c1收到ip地址報(bào)文后啟動(dòng)網(wǎng)絡(luò),并向m1請(qǐng)求主機(jī)名;m1的dnsserver收到c1請(qǐng)求主機(jī)名的報(bào)文后將c1的主機(jī)名發(fā)送給c1;c1網(wǎng)絡(luò)啟動(dòng)完成后,首先加載掛載共享目錄的配置文件,根據(jù)配置文件內(nèi)容將s1通過infiniband方式進(jìn)行掛載;c1掛載完共享目錄后,啟動(dòng)計(jì)算節(jié)點(diǎn)作業(yè)調(diào)度(pbs_mom),并將作業(yè)調(diào)度狀態(tài)反饋給管理節(jié)點(diǎn)m1的作業(yè)調(diào)度(pbs_server),啟動(dòng)完成。
進(jìn)一步的,所述作業(yè)中間件中提前錄入已知的調(diào)用函數(shù),針對(duì)已知的計(jì)算軟件進(jìn)行作業(yè)提交流程的重構(gòu)和標(biāo)準(zhǔn)化,用戶在提交作業(yè)時(shí)通過調(diào)用函數(shù)輸入作業(yè)類型、參與計(jì)算節(jié)點(diǎn)數(shù)量、每個(gè)計(jì)算節(jié)點(diǎn)參與計(jì)算核心數(shù)量、輸入文件(如果有)共計(jì)4個(gè)參數(shù)即可完成作業(yè)提交,避免了編寫作業(yè)腳本的工作,極大簡(jiǎn)化上級(jí)操作步驟;
進(jìn)一步的,計(jì)算機(jī)開機(jī)節(jié)點(diǎn)自動(dòng)控制包括如下步驟:
步驟1:系統(tǒng)啟動(dòng)完成正常運(yùn)行時(shí),m1每60秒啟動(dòng)后臺(tái)監(jiān)控進(jìn)程一次并檢測(cè)啟動(dòng)時(shí)間,若未達(dá)到啟動(dòng)時(shí)間,則暫停60秒并重復(fù)步驟1;
步驟2:后臺(tái)監(jiān)控進(jìn)程正常啟動(dòng)后,檢查pbs_server是否有排隊(duì)作業(yè),若無排隊(duì)作業(yè)并且處于工作狀態(tài)的計(jì)算節(jié)點(diǎn)小于等于1時(shí),則直接退出;若無排隊(duì)作業(yè)并處于工作狀態(tài)的節(jié)點(diǎn)大于1個(gè),則通過管理網(wǎng)絡(luò)n1和ipmi接口關(guān)閉開機(jī)但位處于空閑狀態(tài)的空閑節(jié)點(diǎn)數(shù)量-1個(gè)節(jié)點(diǎn),只保留空閑節(jié)點(diǎn)中節(jié)點(diǎn)名排名最前的1個(gè)空閑計(jì)算節(jié)點(diǎn)處于開機(jī)狀態(tài)以備用;
步驟3:若檢查到有排隊(duì)作業(yè)情況時(shí),則分析處于排隊(duì)作業(yè)的原因:若為用戶超額,則直接退出系統(tǒng);若用戶未超額,則排隊(duì)原因?yàn)橘Y源不足,執(zhí)行下一步驟;
步驟4:在步驟3之后,檢查關(guān)機(jī)節(jié)點(diǎn)數(shù)量。若關(guān)機(jī)節(jié)點(diǎn)為0,則提示節(jié)點(diǎn)用盡并退出系統(tǒng);若關(guān)機(jī)節(jié)點(diǎn)大于等于1,則根據(jù)處于等待狀態(tài)各中作業(yè)各節(jié)點(diǎn)需求量的大小從小到大進(jìn)行排序,設(shè)定n為等待狀態(tài)作業(yè)最小作業(yè)節(jié)點(diǎn)需求數(shù)量,f為當(dāng)前空閑狀態(tài)節(jié)點(diǎn)數(shù)量,g為關(guān)機(jī)節(jié)點(diǎn)數(shù)量。比較當(dāng)前需要開機(jī)節(jié)點(diǎn)數(shù)量(n-f)和g-1。若n-f≤g-1,表示關(guān)機(jī)節(jié)點(diǎn)數(shù)量比需求節(jié)點(diǎn)數(shù)量大,則在管理網(wǎng)絡(luò)n1中通過ipmi接口開啟n-f+1個(gè)節(jié)點(diǎn),并重新進(jìn)行步驟2;若n-f≥g-1,表示關(guān)機(jī)節(jié)點(diǎn)數(shù)量不足,則在管理網(wǎng)絡(luò)n1中通過ipmi接口開啟所有關(guān)機(jī)節(jié)點(diǎn)并提示節(jié)點(diǎn)數(shù)用盡,然后退出系統(tǒng)。
區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明的有益效果是:
1、節(jié)能:基于無盤部署,計(jì)算節(jié)點(diǎn)不在需要硬盤,降低了集群的功率開銷和故障點(diǎn)。通過動(dòng)態(tài)調(diào)整計(jì)算節(jié)點(diǎn)開關(guān)機(jī)數(shù)量,避免了大量計(jì)算節(jié)點(diǎn)開機(jī)空轉(zhuǎn)的情況,提高了能源的使用率。
2、性能:基于infiniband網(wǎng)絡(luò)的無盤部署,將系統(tǒng)鏡像加載到各計(jì)算節(jié)點(diǎn)內(nèi)存中,提升了計(jì)算節(jié)點(diǎn)開機(jī)速度,并且充分利用了ramdisk的iops性能優(yōu)勢(shì),極大提升計(jì)算任務(wù)在計(jì)算節(jié)點(diǎn)單機(jī)內(nèi)部的收斂速率。
3、標(biāo)準(zhǔn)化:由于高性能計(jì)算涉及行業(yè)較多、范圍較廣、海量的專業(yè)軟件,導(dǎo)致了傳統(tǒng)用戶在使用高性能計(jì)算集群時(shí)需要去針對(duì)具體的計(jì)算軟件進(jìn)行了解學(xué)習(xí)后才能上機(jī)使用。通過對(duì)作業(yè)流程的重構(gòu)和標(biāo)準(zhǔn)化,將海量的專業(yè)軟件的作業(yè)提交流程通過中間件固定為同樣的步驟和流程,極大簡(jiǎn)化了上機(jī)操作步驟,讓傳統(tǒng)用戶能快速的入手并將集群充分使用起來。
4、節(jié)約:最大程度減少不必要的硬件投入(如計(jì)算節(jié)點(diǎn)硬盤),提升資金使用率。
5、低故障率:傳統(tǒng)高性能計(jì)算集群在每個(gè)計(jì)算節(jié)點(diǎn)上需要安裝1塊硬盤用于存放操作系統(tǒng)。機(jī)械硬盤價(jià)格便宜,使用年限久,但性能較差;固態(tài)硬盤性能較好,但成本太高,壽命太短。并且當(dāng)集群意外斷電時(shí)極易導(dǎo)致操作系統(tǒng)損壞。通過無盤部署,有效避免了由硬盤導(dǎo)致的故障,極大降低集群故障率。
6、高效率:傳統(tǒng)高性能計(jì)算集群需要對(duì)所有的節(jié)點(diǎn)安裝操作系統(tǒng)和配置環(huán)境變量才能工作,本申請(qǐng)所描述方式無需該環(huán)節(jié),極大減少了集群部署時(shí)間,提升了集群部署的效率。
附圖說明
圖1是本發(fā)明實(shí)施例高性能計(jì)算集群系統(tǒng)拓?fù)鋱D。
圖2是本發(fā)明實(shí)施例動(dòng)態(tài)節(jié)點(diǎn)控制流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參見圖1提供的一種高性能計(jì)算集群動(dòng)態(tài)節(jié)點(diǎn)作業(yè)方法,其特征在于,包括如下步驟:
步驟1:配置服務(wù)器,包括管理網(wǎng)絡(luò)n1、計(jì)算網(wǎng)絡(luò)n2和用戶網(wǎng)絡(luò)n3,以及用戶網(wǎng)絡(luò)n3和管理網(wǎng)絡(luò)n1之間的安全防護(hù)網(wǎng)絡(luò)f1、登陸節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn;所述登陸節(jié)點(diǎn)、管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)分別與管理網(wǎng)絡(luò)和計(jì)算網(wǎng)絡(luò)建立通信連接;所述登陸節(jié)點(diǎn)和管理節(jié)點(diǎn)通過計(jì)算網(wǎng)絡(luò)掛載共享存儲(chǔ)s1;
步驟2:在管理節(jié)點(diǎn)m1上安裝并配置啟動(dòng)管理服務(wù)(flexboot)、動(dòng)態(tài)主機(jī)配置協(xié)議服務(wù)(dhcp)、文件傳輸協(xié)議服務(wù)(tftp)、域名系統(tǒng)服務(wù)(dns)、共享服務(wù)、認(rèn)證服務(wù)以及作業(yè)調(diào)度,配置完成后啟動(dòng)計(jì)算節(jié)點(diǎn);
步驟3:用戶網(wǎng)絡(luò)n3中的用戶,經(jīng)過安全防護(hù)網(wǎng)絡(luò)f1以安全外殼協(xié)議ssh登錄到登陸節(jié)點(diǎn)l1上,通過ssh將需要計(jì)算的算例上傳至登陸節(jié)點(diǎn)l1上的共享存儲(chǔ)s1;
步驟4:用戶在登陸節(jié)點(diǎn)l1上通過作業(yè)調(diào)度中間件,指定作業(yè)參數(shù)完成作業(yè)腳本的生成并啟動(dòng)提交給m1的作業(yè)調(diào)度進(jìn)行資源分配和計(jì)算;
步驟5:管理節(jié)點(diǎn)m1收到登陸節(jié)點(diǎn)l1上用戶提交的作業(yè)腳本后,首先將作業(yè)腳本中的函數(shù)調(diào)用請(qǐng)求交給管理節(jié)點(diǎn)中的maui.d進(jìn)行資源配額檢查,如果配額不足則報(bào)錯(cuò)提示,如果配額足夠,則將作業(yè)腳本轉(zhuǎn)交給m1上作業(yè)調(diào)度pbs_server進(jìn)行調(diào)度;
步驟6:管理節(jié)點(diǎn)m1的作業(yè)調(diào)度pbs_server收到作業(yè)腳本后,根據(jù)作業(yè)腳本要求的節(jié)點(diǎn)數(shù)、每節(jié)點(diǎn)核心數(shù)為作業(yè)分配進(jìn)行計(jì)算的節(jié)點(diǎn)c1到cn,如果節(jié)點(diǎn)數(shù)量不足,則將作業(yè)進(jìn)行排隊(duì)等待;如果節(jié)點(diǎn)數(shù)量足夠,則根據(jù)作業(yè)腳本具體執(zhí)行內(nèi)容開始計(jì)算;
步驟7:當(dāng)c1到cn完成計(jì)算后,釋放物理內(nèi)存、處理器等資源,并向m1的pbs_server反饋“所有核心均未占用,狀態(tài)free”的信號(hào);m1的pbs_server對(duì)該信號(hào)進(jìn)行記錄,并允許后續(xù)作業(yè)在該節(jié)點(diǎn)上進(jìn)行分配和計(jì)算;
步驟8:用戶可以通過安全文件傳輸協(xié)議sftp從l1上將s1中存儲(chǔ)的計(jì)算結(jié)果等信息取回到n3中,在本地電腦上打開進(jìn)行處理和分析。
優(yōu)選地,管理網(wǎng)絡(luò)n1為千兆以太網(wǎng)絡(luò),主要負(fù)責(zé)計(jì)算節(jié)點(diǎn)開關(guān)機(jī)控制、作業(yè)調(diào)度數(shù)據(jù)傳輸、系統(tǒng)監(jiān)控等功能,計(jì)算網(wǎng)絡(luò)n1為infiniband網(wǎng)絡(luò),提高設(shè)備的擴(kuò)展性、數(shù)據(jù)的傳輸速率及通信延遲,主要負(fù)責(zé)數(shù)據(jù)及存儲(chǔ)的io、操作系統(tǒng)鏡像分發(fā)、計(jì)算軟件工作時(shí)各進(jìn)程相互通信與數(shù)據(jù)同步等功能,用戶網(wǎng)絡(luò)n3是高性能計(jì)算機(jī)用戶所在的網(wǎng)絡(luò),安全防護(hù)f1為防火墻、utm或路由器設(shè)備,提供用戶網(wǎng)絡(luò)到管理網(wǎng)絡(luò)的端口映射、訪問權(quán)限管理、異常流量監(jiān)測(cè)、攻擊防護(hù)等功能,登錄節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn統(tǒng)一為同一處理器架構(gòu)(如x86架構(gòu)、mips架構(gòu)、arm架構(gòu)、power架構(gòu)、spark架構(gòu)等),處理器具有完全相同的指令集,根據(jù)用戶實(shí)際使用需求和高性能計(jì)算機(jī)總體計(jì)算性能要求,登錄節(jié)點(diǎn)l1、管理節(jié)點(diǎn)m1、若干計(jì)算節(jié)點(diǎn)cn可以通過集群(cluster)方式進(jìn)行橫向擴(kuò)展,共享存儲(chǔ)s1一般為基于infiniband的nfs服務(wù)器其包含底層的硬盤柜或磁盤陣列,或基于infiniband的分布式存儲(chǔ)系統(tǒng),對(duì)外提供一個(gè)統(tǒng)一的文件系統(tǒng)空間,并且支持用戶權(quán)限控制和容量配額。
其中、系統(tǒng)第一次部署時(shí)將登陸節(jié)點(diǎn)l1的操作系統(tǒng)復(fù)制為鏡像文件j1,并修改j1中包含的相關(guān)個(gè)性化參數(shù)配置文件為通用配置文件,其中包括修改網(wǎng)卡配置文件,去掉mac地址、uuid等唯一信息,修改為dhcp引導(dǎo);將主機(jī)名修改為dhcp自動(dòng)獲取、將硬盤的掛載方式修改為設(shè)備名方式進(jìn)行掛載、將系統(tǒng)環(huán)境變量存放目錄修改為共享存儲(chǔ)s1上特定目錄等。
具體的,所述計(jì)算節(jié)點(diǎn)的啟動(dòng)采用無盤啟動(dòng)方式,具體步驟包括:
步驟1:將c1(或cn)開機(jī),設(shè)置為默認(rèn)pxe引導(dǎo),pxe默認(rèn)設(shè)備為主機(jī)通道適配器(hca),采用flexboot模式;flexboot初始化hca卡,檢測(cè)端口協(xié)議及狀態(tài),以infiniband方式啟動(dòng)端口,并以廣播的方式發(fā)送dhcp客戶端(client)請(qǐng)求報(bào)文;
步驟2:管理節(jié)點(diǎn)m1的dhcp服務(wù)器從infiniband網(wǎng)絡(luò)收到請(qǐng)求報(bào)文后,將c1的ip地址、tftp服務(wù)器、網(wǎng)絡(luò)引導(dǎo)啟動(dòng)鏡像目錄發(fā)送給c1;c1接收到m1發(fā)出的報(bào)文后,根據(jù)收到的報(bào)文啟動(dòng)infiniband網(wǎng)絡(luò),并從m1的tftp服務(wù)器中下載啟動(dòng)鏡像目錄并加載到內(nèi)存中,所請(qǐng)求的鏡像目錄內(nèi)包含默認(rèn)的啟動(dòng)鏡像名稱j1、默認(rèn)啟動(dòng)鏡像鏡像時(shí)間等信息,通過c1上選擇啟動(dòng)j1或者超過默認(rèn)時(shí)間后自動(dòng)選擇啟動(dòng)j1,并向m1發(fā)送請(qǐng)求j1的報(bào)文;
步驟3:m1收到c1請(qǐng)求j1的報(bào)文后,將j1通過tftp服務(wù)器發(fā)送給c1;c1的flexboot接收完j1后,將j1放入內(nèi)存進(jìn)行加載;
步驟4:c1依次加載j1的內(nèi)核、根文件系統(tǒng)、網(wǎng)絡(luò)、配置文件等;c1在加載網(wǎng)絡(luò)時(shí)廣播dhcpclient的請(qǐng)求報(bào)文,m1的dhcpserver收到請(qǐng)求報(bào)文后再次將c1的ip地址發(fā)送給c1,c1收到ip地址報(bào)文后啟動(dòng)網(wǎng)絡(luò),并向m1請(qǐng)求主機(jī)名;m1的dnsserver收到c1請(qǐng)求主機(jī)名的報(bào)文后將c1的主機(jī)名發(fā)送給c1;c1網(wǎng)絡(luò)啟動(dòng)完成后,首先加載掛載共享目錄的配置文件,根據(jù)配置文件內(nèi)容將s1通過infiniband方式進(jìn)行掛載;c1掛載完共享目錄后,啟動(dòng)計(jì)算節(jié)點(diǎn)作業(yè)調(diào)度(pbs_mom),并將作業(yè)調(diào)度狀態(tài)反饋給管理節(jié)點(diǎn)m1的作業(yè)調(diào)度(pbs_server),啟動(dòng)完成。
進(jìn)一步的,所述作業(yè)中間件中提前錄入已知的調(diào)用函數(shù),針對(duì)已知的計(jì)算軟件進(jìn)行作業(yè)提交流程的重構(gòu)和標(biāo)準(zhǔn)化,用戶在提交作業(yè)時(shí)通過調(diào)用函數(shù)輸入作業(yè)類型、參與計(jì)算節(jié)點(diǎn)數(shù)量、每個(gè)計(jì)算節(jié)點(diǎn)參與計(jì)算核心數(shù)量、輸入文件(如果有)共計(jì)4個(gè)參數(shù)即可完成作業(yè)提交,避免了編寫作業(yè)腳本的工作,極大簡(jiǎn)化上級(jí)操作步驟;
如圖2所示,計(jì)算機(jī)開機(jī)節(jié)點(diǎn)自動(dòng)控制包括如下步驟:
步驟1:系統(tǒng)啟動(dòng)完成正常運(yùn)行時(shí),m1每60秒啟動(dòng)后臺(tái)監(jiān)控進(jìn)程一次并檢測(cè)啟動(dòng)時(shí)間,若未達(dá)到啟動(dòng)時(shí)間,則暫停60秒并重復(fù)步驟1;
步驟2:后臺(tái)監(jiān)控進(jìn)程正常啟動(dòng)后,檢查pbs_server是否有排隊(duì)作業(yè),若無排隊(duì)作業(yè)并且處于工作狀態(tài)的計(jì)算節(jié)點(diǎn)小于等于1時(shí),則直接退出;若無排隊(duì)作業(yè)并處于工作狀態(tài)的節(jié)點(diǎn)大于1個(gè),則通過管理網(wǎng)絡(luò)n1和ipmi接口關(guān)閉開機(jī)但處于空閑狀態(tài)的空閑節(jié)點(diǎn)數(shù)量-1個(gè)節(jié)點(diǎn),只保留空閑節(jié)點(diǎn)中節(jié)點(diǎn)名排名最前的1個(gè)空閑計(jì)算節(jié)點(diǎn)處于開機(jī)狀態(tài)以備用;
步驟3:若檢查到有排隊(duì)作業(yè)情況時(shí),則分析處于排隊(duì)作業(yè)的原因:若為用戶超額,則直接退出系統(tǒng);若用戶未超額,則排隊(duì)原因?yàn)橘Y源不足,執(zhí)行下一步驟;
步驟4:在步驟3之后,檢查關(guān)機(jī)節(jié)點(diǎn)數(shù)量。若關(guān)機(jī)節(jié)點(diǎn)為0,則提示節(jié)點(diǎn)用盡并退出系統(tǒng);若關(guān)機(jī)節(jié)點(diǎn)大于等于1,則根據(jù)處于等待狀態(tài)各中作業(yè)各節(jié)點(diǎn)需求量的大小從小到大進(jìn)行排序,設(shè)定n為等待狀態(tài)作業(yè)最小作業(yè)節(jié)點(diǎn)需求數(shù)量,f為當(dāng)前空閑狀態(tài)節(jié)點(diǎn)數(shù)量,g為關(guān)機(jī)節(jié)點(diǎn)數(shù)量。比較當(dāng)前需要開機(jī)節(jié)點(diǎn)數(shù)量(n-f)和g-1。若n-f≤g-1,表示關(guān)機(jī)節(jié)點(diǎn)數(shù)量比需求節(jié)點(diǎn)數(shù)量大,則在管理網(wǎng)絡(luò)n1中通過ipmi接口開啟n-f+1個(gè)節(jié)點(diǎn),并重新進(jìn)行步驟2;若n-f≥g-1,表示關(guān)機(jī)節(jié)點(diǎn)數(shù)量不足,則在管理網(wǎng)絡(luò)n1中通過ipmi接口開啟所有關(guān)機(jī)節(jié)點(diǎn)并提示節(jié)點(diǎn)數(shù)用盡,然后退出系統(tǒng)。
通過上述方式,本發(fā)明實(shí)施例的高性能計(jì)算集群動(dòng)態(tài)節(jié)點(diǎn)作業(yè)方法,提高高性能計(jì)算集群部署效率,降低故障率,簡(jiǎn)化作業(yè)提交,提高能源和資金利用率,提升使用效率和性能。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。