两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

低時延集群計算的制作方法

文檔序號:6485458閱讀:252來源:國知局
低時延集群計算的制作方法
【專利摘要】實施例包括用于對分布式應(yīng)用執(zhí)行檢查點的低時延機(jī)制。更具體地,本發(fā)明的實施例包括在集群中所包含的計算節(jié)點上執(zhí)行第一應(yīng)用,以產(chǎn)生第一計算數(shù)據(jù),然后將第一計算數(shù)據(jù)存儲在計算節(jié)點本地包含的易失性存儲器中;基于啟動的檢查點,暫停第一應(yīng)用的處理,并且將與暫停的第一應(yīng)用對應(yīng)的第一狀態(tài)數(shù)據(jù)存儲在易失性存儲器中;將第一狀態(tài)信息和第一計算數(shù)據(jù)存儲在計算節(jié)點本地包含的非易失性存儲器中;以及恢復(fù)處理所述暫停的第一應(yīng)用,然后繼續(xù)處理第一應(yīng)用以產(chǎn)生第二計算數(shù)據(jù),同時將第一狀態(tài)信息和第一計算數(shù)據(jù)從非易失性存儲器拉出到輸入/輸出(IO)節(jié)點。
【專利說明】低時延集群計算
【背景技術(shù)】
[0001]高性能計算(HPC)和集群計算涉及到連接各計算節(jié)點以形成能夠解決復(fù)雜問題的分布式系統(tǒng)。這些節(jié)點可以是單個的臺式計算機(jī)、服務(wù)器、處理器或能夠托管單個計算實例的類似機(jī)器。更具體地,這些節(jié)點是由包括但不限于處理器、易失性存儲器(RAM)、磁存儲驅(qū)動器、主板、網(wǎng)絡(luò)接口卡等硬件部件構(gòu)成的。
[0002]可擴(kuò)展的HPC應(yīng)用需要檢查點能力。在分布式共享存儲器系統(tǒng)中,檢查點是一種幫助容忍導(dǎo)致失去長期運行的應(yīng)用的工作效力的錯誤的技術(shù)。檢查點技術(shù)有助于在故障的情況下保持系統(tǒng)一致性。隨著集群尺寸增長,故障之間的平均時間減小,這需要應(yīng)用來創(chuàng)建更頻繁的檢查點。這驅(qū)動了對于快速檢查點能力的需求。
【專利附圖】

【附圖說明】
[0003]通過隨附的權(quán)利要求書、一個或多個示例性實施例的如下詳細(xì)說明以及對應(yīng)的附圖,本發(fā)明的實施例的多個特征和優(yōu)點將變得清晰,在附圖中:
[0004]圖1包括本發(fā)明的實施例中的用于HPC的集群的示意圖。
[0005]圖2包括本發(fā)明的實施例中的計算節(jié)點的示意圖。
[0006]圖3包括本發(fā)明的實施例中的計算節(jié)點的易失性存儲器的框圖。
[0007]圖4-5包括本發(fā)明的實施例中的檢查點處理的第一階段的流程圖。
[0008]圖6-7包括本發(fā)明的實施例中的檢查點處理的第二階段的流程圖。
【具體實施方式】
[0009]在下面的說明中,闡述了多方面具體的細(xì)節(jié),但是本發(fā)明的實施例可以在不具有這些具體細(xì)節(jié)的情況下實施。為避免使對本說明書的理解模糊,未詳細(xì)示出公知的電路、結(jié)構(gòu)和技術(shù)?!皩嵤├?、“各個實施例”等表示如此描述的實施例可以包括特定的特征、結(jié)構(gòu)或特點,但是不是每一個實施例必然包括該所述特定的特征、結(jié)構(gòu)或特點。一些實施例可以具有針對其他實施例所描述的特征中的一些、全部或不包括?!暗谝弧薄ⅰ暗诙?、“第三”等描述了共同的對象并且表示提及類似對象的不同實例。這些形容詞不暗示如此描述的對象必須以時間上或空間上的給定序列中、按級別或以任何其他方式?!斑B接”可以表示元件彼此直接物理或電接觸,“耦合”可表示元件彼此配合或相互作用,但是它們可以或者可以不直接物理或電接觸。而且,雖然相似或相同的標(biāo)記可以用來在不同圖中指示相同或相似的部件,這樣做不意味著包括相似或相同標(biāo)記的所有圖都構(gòu)成單個或相同的實施例。
[0010]本發(fā)明的實施例包括用于對分布式應(yīng)用執(zhí)行檢查點的低時延機(jī)制。這包括使得應(yīng)用所經(jīng)受的時延最小化的多步檢查點過程。
[0011]圖1和圖2 —起解決了包括計算節(jié)點以及計算節(jié)點本身的更詳細(xì)的示例的集群。下面根據(jù)需要討論兩個圖來描述本發(fā)明的各個實施例。
[0012]圖1包括實施例中的用于高性能計算的集群的示意圖。分布式應(yīng)用正在通過遠(yuǎn)程直接存儲器存取(RDMA)使能網(wǎng)絡(luò)115連接的多個計算節(jié)點110、111、112、113和114上運行。輸入/輸出(IO)節(jié)點120、121、122通過RDMA網(wǎng)絡(luò)115連接到計算節(jié)點110、111、112、113、114且經(jīng)由存儲網(wǎng)絡(luò)125連接到永久存儲陣列130。雖然單獨地示出,但是計算節(jié)點、IO節(jié)點和網(wǎng)絡(luò)可以共享相同的硬件。
[0013]過程管理器105控制應(yīng)用的總流程。更具體地,“過程管理器”用來控制集群中的其他節(jié)點。例如,過程管理器105可用于遠(yuǎn)程啟動在集群中多個機(jī)器上的過程,設(shè)置集群環(huán)境并且發(fā)起在消息傳遞接口(MIP)作業(yè)中使用的過程,提供與MPI任務(wù)和分布式計算有關(guān)的命令庫,以規(guī)劃的間隔啟動檢查點,等等。MPI是允許計算機(jī)彼此通信的應(yīng)用程序接口(API)規(guī)范。該規(guī)范定義了可用于集群計算中的庫例程的核心的語法和語義。在實施例中,過程管理器105與計算節(jié)點和IO節(jié)點通信以啟動檢查點,來協(xié)調(diào)在檢查點期間的節(jié)點的活動,并且接收檢查點完成的指示。
[0014]圖2包括本發(fā)明的實施例中的計算節(jié)點210的示意圖。對于每個計算節(jié)點,一個或多個處理器201、202、203、204可用于處理一個或多個應(yīng)用過程,諸如分布式應(yīng)用的過程。處理器201、202、203、204可以經(jīng)由RDMA網(wǎng)絡(luò)接口卡(NIC) 220或其他RDMA硬件與易失性存儲器(例如,RAM) 215耦合。易失性存儲器215還可以與非易失性存儲器區(qū)域(NMR)(例如,閃存、應(yīng)用優(yōu)化非易失性存儲器等)225耦合。因此,各計算節(jié)點為應(yīng)用提供對低時延NMR的存取。NMR可本地包含在計算節(jié)點(如圖2所示)內(nèi)或可通過RDMA網(wǎng)絡(luò)存取。RDMANIC220將計算節(jié)點210和IO節(jié)點與RDMA網(wǎng)絡(luò)115耦合并且能夠直接存取NMR225和/或易失性存儲器215。
[0015]RDMA通過實現(xiàn)與應(yīng)用存儲器直接進(jìn)行數(shù)據(jù)傳遞來支持零復(fù)制網(wǎng)絡(luò)化,消除了在應(yīng)用存儲器(例如,存儲器215)與操作系統(tǒng)中的數(shù)據(jù)緩沖器之間復(fù)制數(shù)據(jù)的需要。這種傳遞不需要通過CPU、高速緩存或上下文開關(guān)來完成工作,并且傳遞與其他系統(tǒng)操作并行地繼續(xù)。當(dāng)應(yīng)用執(zhí)行RDMA讀或?qū)懻埱髸r,應(yīng)用數(shù)據(jù)直接輸送到網(wǎng)絡(luò),降低了時延。
[0016]在實施例中,當(dāng)需要檢查點時,過程管理器105對包括在處理器201、202、203和204中的應(yīng)用發(fā)信號。在接收到來自過程管理器105的信號之后,應(yīng)用暫停外部通信且將所有計算的狀態(tài)保存到NMR225中。可以利用諸如NMR225的本地NMR的總線傳遞,或者利用本地或遠(yuǎn)程N(yùn)MR的RDMA NIC220,將狀態(tài)數(shù)據(jù)寫入NMR225。本地NMR225的RDMA NIC220的使用可以免除主機(jī)處理器(例如,處理器201)控制總線傳遞的需要。一旦完成,應(yīng)用過程應(yīng)答過程管理器105:它們已經(jīng)完成了它們的檢查點任務(wù)并且繼續(xù)進(jìn)行進(jìn)一步的計算。這完成了檢查點過程的第一階段。CPU(201、202、203和204)或RDMA還可以將與在計算節(jié)點210上處理的應(yīng)用有關(guān)的過程數(shù)據(jù)從易失性存儲器215傳遞到NMR225。
[0017]在計算狀態(tài)和處理數(shù)據(jù)已經(jīng)保存到NMR225之后,開始檢查點過程的第二階段。然后,IO節(jié)點120、121、122跨越RDMA網(wǎng)絡(luò)115來訪問NMR225。狀態(tài)信息和過程數(shù)據(jù)從一個或多個NMR225中讀出且寫入存儲陣列130。將檢查點的最終完成通知過程管理器105,這允許重新使用NMR (例如,225)。
[0018]雖然NMR225的使用提供了較大的容錯恢復(fù),但是在檢查點過程的第一階段使用非易失性存儲器可由易失性存儲器替代,從而減少時延,但是付出更大的代價。
[0019]因此,常規(guī)的系統(tǒng)可以將計算狀態(tài)保存到永久存儲中。對于分布式應(yīng)用,這通常意味著,利用分布式文件系統(tǒng)將狀態(tài)信息保存到遠(yuǎn)程定位的硬盤驅(qū)動器。結(jié)果,防止應(yīng)用繼續(xù)計算,直到檢查點數(shù)據(jù)已經(jīng)跨越時延誘發(fā)網(wǎng)絡(luò)而寫入永久存儲。作為對比,本發(fā)明的實施例使用多階段檢查點過程和RDMA來減少執(zhí)行檢查點所需的時延(從應(yīng)用的視角看到的)。這允許更頻繁地出現(xiàn)檢查點,這對于將應(yīng)用擴(kuò)展到大的集群尺寸(例如,千兆兆級)是很重要的。通過利用RDMA技術(shù),實施例避免了在將數(shù)據(jù)從計算節(jié)點復(fù)制到存儲陣列的同時與用于處理電力的應(yīng)用競爭。
[0020]此外,常規(guī)的系統(tǒng)不將快速的輔助存儲器區(qū)域(例如,NMR225)的使用與RDMA協(xié)議結(jié)合。同時,這些特征允許應(yīng)用將數(shù)據(jù)快速地檢查點到較小的、可負(fù)擔(dān)的存儲器區(qū)域,后臺RDMA傳遞將數(shù)據(jù)卸載給較大的、較廉價的存儲單元。本發(fā)明的實施例可以用于各種產(chǎn)品,包括在集群和HPC系統(tǒng)中涉及到的MPI產(chǎn)品。
[0021]現(xiàn)在解決更詳細(xì)的實施例。圖3包括在本發(fā)明的實施例中的計算節(jié)點的易失性存儲器的框圖。圖4-5包括本發(fā)明的實施例中的檢查點處理的第一階段的流程圖。圖6-7包括本發(fā)明的實施例中的檢查點處理的第二階段的流程圖。
[0022]如上所示,多個應(yīng)用可以在每個計算節(jié)點110、111、112、113和114上運行。圖3包括易失性存儲器的實施例,諸如圖2的存儲器215。存儲器315被劃分成多個工作空間316、336、346,每個應(yīng)用一個工作空間。每個工作空間被劃分成計算的過程數(shù)據(jù)(例如,由于處理分布式應(yīng)用而產(chǎn)生的)的一個或多個區(qū)段,以及關(guān)于計算進(jìn)程的普通狀態(tài)信息(例如,處理器寄存器的內(nèi)容)。例如,工作空間316包括用于與第一應(yīng)用有關(guān)的狀態(tài)數(shù)據(jù)的區(qū)段317。工作空間316還包括分別用于都與第一應(yīng)用有關(guān)的過程數(shù)據(jù)321、322的區(qū)段318和319。以類似的方式,第二應(yīng)用與狀態(tài)信息337和數(shù)據(jù)341的區(qū)段338有關(guān)。第三應(yīng)用與狀態(tài)信息347和分別用于數(shù)據(jù)351、352的區(qū)段348、349有關(guān)。
[0023]常規(guī)的檢查點操作可通過下面的序列來描述:(I)啟動檢查點,以使應(yīng)用暫停計算;(2)計算節(jié)點通過網(wǎng)絡(luò)將工作空間狀態(tài)信息傳遞到IO節(jié)點;(3) IO節(jié)點將工作空間狀態(tài)數(shù)據(jù)寫入非易失性存儲器(例如,硬盤驅(qū)動器);(4)計算節(jié)點將已處理的工作空間數(shù)據(jù)區(qū)段傳遞到IO節(jié)點;(5) IO節(jié)點將每個區(qū)段寫入非易失性存儲器;以及然后(6)計算節(jié)點繼續(xù)進(jìn)行計算。這能夠視為推模型(push model),其中計算節(jié)點(及其處理器)將數(shù)據(jù)推入/寫入IO節(jié)點,并且處理器負(fù)擔(dān)所有到IO節(jié)點的數(shù)據(jù)傳遞。
[0024]相比而言,圖4-7中的實施例涉及拉模型(pull model),其中通過IO節(jié)點來讀取(即,拉出)狀態(tài)信息和計算數(shù)據(jù)。因此,實施例通過網(wǎng)絡(luò)拉出數(shù)據(jù)以緩解IO節(jié)點處的網(wǎng)絡(luò)擁塞。利用RDMA NIC,IO節(jié)點從計算節(jié)點讀取數(shù)據(jù)。為了減少應(yīng)用所經(jīng)過的檢查點時間,過程的工作空間中的數(shù)據(jù)被復(fù)制到計算節(jié)點上的NMR。數(shù)據(jù)的復(fù)制是計算節(jié)點CPU與RDMANIC之間的聯(lián)合努力。例如,實施例使用以下序列:(I)啟動檢查點;(2)應(yīng)用暫停計算;(3)計算節(jié)點處理器將工作空間復(fù)制到本地NMR ; (4)計算節(jié)點繼續(xù)進(jìn)行計算;(5) IO節(jié)點將工作空間讀入IO網(wǎng)絡(luò)緩沖器;以及然后(6) IO節(jié)點將IO網(wǎng)絡(luò)緩沖器寫入非易失性存儲器(例如,硬盤驅(qū)動器)。
[0025]具體地參考圖4,在框405中,處理器210判定檢查點是否存在。例如,計算節(jié)點210的處理器201判定過程管理器105是否已啟動檢查點。如果為否,則在框410中,處理器201處理應(yīng)用。然而,如果檢查點已經(jīng)啟動,則在框415、420中,每個過程暫停,且在一個實施例中,將狀態(tài)信息存儲到易失性存儲器215中(連同也存儲在存儲器215中的過程數(shù)據(jù)一起)。在框425中,狀態(tài)信息隨后存儲到NMR225中。然而,在其他實施例中,狀態(tài)信息被直接存儲到NMR225中,而不是首先定位在存儲器215中。[0026]在框430中,“未決的RDMA請求”被設(shè)定為O。然后,在框435中,工作空間(例如,包括狀態(tài)信息317 (如果不是已經(jīng)位于NMR中)和數(shù)據(jù)321,322)保存到NMR225中。圖5示出了框435的更詳細(xì)的實施例。在框440中,如果不存在未決的RDMA請求,則在框410中處理器繼續(xù)計算。但是,如果存在這樣的請求,則在框445中處理RDMA請求。由于RDMA的使用以及狀態(tài)信息和數(shù)據(jù)存儲在NMR225中,這可與處理器處理應(yīng)用同時完成。在圖6和圖?中更詳細(xì)地論述了框445的實施例。
[0027]在圖5中,框535對應(yīng)于圖4中的框435。過程500包括用于將工作空間316、336、346保存到NMR的可選路徑。在框540中,系統(tǒng)判定是否已處理了所有的區(qū)段。如果為是,則無需復(fù)制(框545)。然而,如果仍需要處理區(qū)段,則過程前進(jìn)到框550。在框550中,判定未決的RDMA請求的數(shù)量是否滿足閾值。該閾值可以基于設(shè)備(例如,RDMA NIC)的容量限制。例如,如果未決的請求數(shù)量小于閾值,則RDMA是可選項。因此,在框555中,未決的RDMA請求的數(shù)量增加。在框560中,RDMA寫被提交(例如,提交到隊列中),從而通過例如計算節(jié)點210中所包含的RDMA NIC220將相關(guān)區(qū)段(例如,工作空間316)復(fù)制到NMR225。
[0028]然而,如果在框550中RDMA請求超過閾值,則在框575中區(qū)段(例如,工作空間316)可經(jīng)由處理器(例如,處理器201)復(fù)制到NMR225中。在復(fù)制之后,易失性存儲器中的區(qū)段被標(biāo)記為可用(框580),并且處理器201可以恢復(fù)處理應(yīng)用并且將其他數(shù)據(jù)存儲到剛剛釋放的易失性存儲器中。在框585中,可以將拉出請求連同區(qū)段的NMR地址和任何所需的加密密鑰、散列等 一起提交給遠(yuǎn)程節(jié)點(例如,IO節(jié)點120)。在框565中,如果RDMA請求完成,則可以在框570中處理RDMA請求(下文結(jié)合圖6進(jìn)行更詳細(xì)論述)。
[0029]因此,如圖5中所看出的,過程數(shù)據(jù)(以及在一些實施例中可能的狀態(tài)信息)從易失性存儲器215中的工作空間復(fù)制或傳遞到NMR225是計算節(jié)點處理器(例如,CPU201)和RDMA實用程序(例如,RDMA NIC220)之間的聯(lián)合努力。主機(jī)CPU可以執(zhí)行步驟575、580和585,并且RDMA NIC可以執(zhí)行步驟555和560???50的決策“未決的RDMA請求〈閾值”用來判定RDMA NIC220是否利用RDMA寫將區(qū)段復(fù)制到NMR225 ( “是”路徑)或者主機(jī)CPU201是否將區(qū)段復(fù)制到NMR225( “否”路徑)。作為例子,RDMA NIC220可以將區(qū)段1-1(元素318)復(fù)制到NMR225的第一部分,而CPU201將區(qū)段1_2 (元素319)復(fù)制到NMR225的第二部分。NMR225的該第二部分與第一部分不重疊。換言之,第一和第二部分可共享同一存儲器,但是彼此分離,從而允許對第一和第二部分同時存取。復(fù)制可與CPU201和NIC220兩者處理傳遞的不同部分并行地(即,同時地)進(jìn)行。這與常規(guī)方法形成對比,常規(guī)方法利用更直接的方法,其中CPU處理所有的復(fù)制。在實施例中,一旦RAM215的區(qū)段已被復(fù)制到NMR225,就可以修改RAM215。例如,一開始修改RAM215,計算就可以在計算節(jié)點上繼續(xù)進(jìn)行。
[0030]圖6包括示出了圖5的框570的更多細(xì)節(jié)的實施例。在圖6中,框670包括處理RDMA完成。RDMA完成可以是指示從計算節(jié)點的本地易失性存儲器(例如,215)傳遞或復(fù)制信息到本地非易失性存儲器(例如,225)完成的信號。此外,在數(shù)據(jù)已經(jīng)復(fù)制到NMR225之后,計算節(jié)點210可以對控制節(jié)點發(fā)出其已完成的信號。當(dāng)計算節(jié)點210已經(jīng)完成將其數(shù)據(jù)復(fù)制到NMR225時,控制節(jié)點隨后可以對IO節(jié)點發(fā)信號。
[0031]在框680中,未決的RDMA請求的數(shù)量可以遞減(這將影響圖5的框550)。在框685中,易失性存儲器(已從其復(fù)制了狀態(tài)信息和/或過程數(shù)據(jù))215可標(biāo)記為可用。換言之,存儲器215的那些部分被“釋放”,因此計算節(jié)點上的過程可以處理應(yīng)用并且將狀態(tài)和/或過程數(shù)據(jù)存儲到所釋放的存儲器中。在框690中,“拉出”請求可以提交給IO節(jié)點(或其他遠(yuǎn)程節(jié)點)。請求可以為非易失性存儲器部分(225)提供包括要拉出IO節(jié)點的狀態(tài)信息和/或過程數(shù)據(jù)的地址。在框690的請求中,還可以包括對NMR225部分存取所需的任何必要的加密工具(例如,密鑰、散列)。在框695中,過程可以朝向?qū)嶋H的拉出操作繼續(xù)。
[0032]圖7涉及拉出操作,如從IO節(jié)點120、121、122的視角所看到的。在框705中,IO節(jié)點(例如,120)接收通知。通知或信號可以是作為圖6中的框690的主題的拉出請求。如果是,則在框710中,IO節(jié)點120將RDMA讀連同所需的加密信息提交到指定的NMR225地址(例如,以與計算節(jié)點上的密鑰兼容的方式加密的密鑰或信息,等等)。然后,過程返回到框 705。
[0033]然而,如果框705的信號或通知包括RDMA讀(即,拉出)完成的通知,則IO節(jié)點120現(xiàn)在可以將接收到的信息寫入(即,推入)諸如陣列130的其他非易失性存儲設(shè)備中。在框720中,IO節(jié)點120可以向過程管理器105發(fā)信號:推入(到存儲陣列)以及拉出(從NMR)操作完成。過程隨后返回到框705。在拉出操作中,RDMA NIC220直接存取數(shù)據(jù),而不涉及計算節(jié)點210或多個節(jié)點的主機(jī)CPU(201、202、203、204)。
[0034]在各個實施例中,RDMA硬件(例如,RDMA NIC220)可本地定位在計算節(jié)點210中或者僅可經(jīng)由RDMA網(wǎng)絡(luò)115訪問。將硬件本地定位在每個計算節(jié)點上允許計算節(jié)點CPU (201、202,203,204)和 RDMA NIC220 將數(shù)據(jù)從 RAM215 復(fù)制到 NMR225,從 NMR225 中 IO 節(jié)點 120、121、122能夠取得數(shù)據(jù)。
[0035]因此,各個實施例提供了一個或多個特征,這些特征例如幫助減少檢查點時延。例如,一個實施例調(diào)用CPU201和RDMA NIC220的組合使用以將工作空間數(shù)據(jù)傳遞到本地NMR225。在圖5的框550的“是”和“否”分支中例示出所述“組合使用”。組合使用格式幫助從計算節(jié)點處理器卸 載傳遞負(fù)擔(dān),因此處理器能夠更快速地返回以處理應(yīng)用。
[0036]實施例還基于計算節(jié)點的本地NMR225和DMA輔助硬件(例如,RDMA NIC220)的使用來幫助減少時延,從(在計算節(jié)點上運行的)應(yīng)用的視角看,這有助于減少完成檢查點所需的時間(例如,通過免除將信息從易失性存儲器215跨越網(wǎng)絡(luò)鏈路115傳遞到遠(yuǎn)程10120、121、122的傳統(tǒng)需要)。
[0037]此外,利用工作空間數(shù)據(jù)分割成區(qū)段的實施例幫助減少時延。如圖3所示,過程數(shù)據(jù)區(qū)段321和322被劃分成彼此遠(yuǎn)離。而且,狀態(tài)信息317被劃分而遠(yuǎn)離區(qū)段321、322。結(jié)果,一旦區(qū)段已保存到NMR225,計算過程就可以繼續(xù)對該區(qū)段內(nèi)的數(shù)據(jù)進(jìn)行計算。RDMA硬件能夠繼續(xù)復(fù)制區(qū)段(在后臺),而CPU201再次專用于執(zhí)行計算。
[0038]而且,在一些實施例中,IO節(jié)點120、121、122使用RDMA硬件從計算節(jié)點NMR225拉出保存的區(qū)段有助于減少時延。IO節(jié)點120、121、122可以在區(qū)段一旦復(fù)制到NMR225時就拉出區(qū)段,提供與新區(qū)段保存到易失性存儲器215以及甚至保存到NMR225的其他區(qū)段相重疊的操作。這減少了檢查點之間所需的最小時間。在IO節(jié)點120、121、122通過網(wǎng)絡(luò)115取得數(shù)據(jù)的情況下,RDMA的使用允許這在不使用計算節(jié)點210上的處理能力的情況下發(fā)生。當(dāng)在RAM215與NMR225之間復(fù)制數(shù)據(jù)時,也可以使用RDMA設(shè)備。這允許系統(tǒng)將處理與在RAM215與NMR225之間復(fù)制數(shù)據(jù)相重疊(一旦RAM的某部分可修改),還允許處理與通過網(wǎng)絡(luò)115將數(shù)據(jù)傳遞到IO節(jié)點120、121、122相重疊。
[0039]具體地,常規(guī)方法集中于提高執(zhí)行任何傳統(tǒng)步驟的速度。也即,當(dāng)檢查點被請求時,所有節(jié)點停止計算,通過網(wǎng)絡(luò)將它們的數(shù)據(jù)寫入永久存儲,然后恢復(fù)計算。在IO節(jié)點處已收集到所有數(shù)據(jù)之后,從計算節(jié)點的視角看,完成了檢查點。IO節(jié)點隨后將存儲在NMR中的數(shù)據(jù)復(fù)制到更廉價的磁盤。這是“推”模型,其中通過寫入IO節(jié)點的網(wǎng)絡(luò)速度來限制檢查點時間。在檢查點網(wǎng)絡(luò)操作正在進(jìn)行的同時,計算受阻擋。相比而言,本發(fā)明的各個實施例通過利用硬件輔助便于重疊操作而減少了時延(即,在IO節(jié)點從計算節(jié)點拉出信息的同時在計算節(jié)點上處理應(yīng)用的能力)。
[0040] 諸如計算節(jié)點210和/或IO節(jié)點120、121、122的實施例可以多種不同的系統(tǒng)類型來實現(xiàn)?,F(xiàn)在參考圖8,顯示了依照本發(fā)明的實施例的系統(tǒng)的框圖。多處理器系統(tǒng)500是點對點互連系統(tǒng),并且包括經(jīng)由點對點互連550稱合的第一處理器570和第二處理器580。處理器570和580中的每一個可以是多核處理器。第一處理器570可以包括存儲器控制器中心(MCH)和點對點(P-P)接口。類似地,第二處理器580可以包括MCH和P-P接口。MCH可以將處理器耦合到各存儲器,即存儲器532和存儲器534,存儲器532和存儲器534可以是本地附接到相應(yīng)處理器的主存儲器(例如,動態(tài)隨機(jī)存取存儲器(DRAM))的部分。第一處理器570和第二處理器580可以分別經(jīng)由P-P互連與芯片組590耦合。芯片組590可以包括P-P接口。此外,芯片組590可以經(jīng)由接口與第一總線516耦合。各個輸入/輸出(I/O)設(shè)備514可以連同將第一總線516與第二總線520稱合的總線橋518 —起與第一總線516耦合。各個設(shè)備可以與第二總線520耦合,包括例如鍵盤/鼠標(biāo)522、通信設(shè)備526以及數(shù)據(jù)存儲單元528,諸如磁盤驅(qū)動器或其他大容量存儲設(shè)備,在一個實施例中,可以包括代碼530。代碼可以包括在一個或多個存儲器中,包括存儲器528、532、534、經(jīng)由網(wǎng)絡(luò)與系統(tǒng)500耦合的存儲器,等等。此外,音頻1/0524可以與第二總線520耦合。
[0041 ] 術(shù)語“處理器”可以指代處理來自寄存器和/或存儲器的電子數(shù)據(jù)以將該電子數(shù)據(jù)變換成可存儲在寄存器和/或存儲器中的其他電子數(shù)據(jù)的任何設(shè)備或設(shè)備的部分。處理器或者控制器可以包括意在表示本領(lǐng)域公知的各種控制邏輯中的任一種的控制邏輯,因此,可以很好地實現(xiàn)為微處理器、微控制器、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、可編程邏輯設(shè)備(PLD)等。
[0042]實施例可以以代碼實現(xiàn)并且可以存儲在非暫態(tài)存儲介質(zhì)上,非暫態(tài)存儲介質(zhì)上存儲有指令,指令能夠用于對系統(tǒng)編程以執(zhí)行指令。存儲介質(zhì)可以包括但不限于:任意類型的磁盤,包括軟盤、光盤、固態(tài)驅(qū)動器(SSD)、只讀式光盤存儲器(⑶-ROM)、可重寫光盤(CD-RW)以及磁光盤;半導(dǎo)體器件,諸如只讀存儲器(ROM);隨機(jī)存取存儲器(RAM),諸如動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、可擦除可編程只讀存儲器(EPROM)、閃存、電可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡;或任何適合存儲電子指令的其他類型的介質(zhì)。
[0043]在本文中參考諸如指令、函數(shù)、程序、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序、配置設(shè)定、代碼等數(shù)據(jù)對本發(fā)明的實施例進(jìn)行了描述。當(dāng)通過機(jī)器存取數(shù)據(jù)時,機(jī)器可通過執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類型、建立低級硬件上下文和/或執(zhí)行其他操作來做出響應(yīng),如本文更詳細(xì)說明的。數(shù)據(jù)可以存儲在易失性和/或非易失性數(shù)據(jù)存儲設(shè)備中。術(shù)語“代碼”或“程序”涵蓋了寬范圍的部件和構(gòu)造,包括應(yīng)用、驅(qū)動器、過程、例程、方法、模塊和子程序,并且可指代任何指令集合,當(dāng)通過處理系統(tǒng)執(zhí)行時,其執(zhí)行期望的一種或多種操作。另外,可選的實施例可以包括使用比所披露的全部操作少的過程、使用附加操作的過程、使用不同序列中的相同操作的過程以及本文所披露的各項操作結(jié)合、細(xì)分或以其他方式改動的過程。部件或模塊可以根據(jù)需要結(jié)合或分離,并且可以定位在設(shè)備的一個或多個部分中。
[0044]雖然已經(jīng)參考有限數(shù)量的實施例描述了本發(fā)明,但本領(lǐng)域技術(shù)人員將從其中理解多個修改和變型例。隨附權(quán)利要求書意在涵蓋落在本發(fā)明的主旨和范圍內(nèi)的所有這樣的修改和變型例。
【權(quán)利要求】
1.一種方法,包括: 在包含于集群中的計算節(jié)點上處理第一應(yīng)用,以產(chǎn)生第一計算數(shù)據(jù),然后將所述第一計算數(shù)據(jù)存儲在所述計算節(jié)點中本地包含的易失性存儲器中; 基于啟動的檢查點來暫停所述第一應(yīng)用的處理; 將所述第一計算數(shù)據(jù)和與暫停的第一應(yīng)用對應(yīng)的第一狀態(tài)數(shù)據(jù)存儲在所述計算節(jié)點本地包含的非易失性存儲器中;以及 恢復(fù)所述暫停的第一應(yīng)用的處理,然后繼續(xù)處理所述第一應(yīng)用以產(chǎn)生第二計算數(shù)據(jù),同時將第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到輸入/輸出(IO)節(jié)點。
2.如權(quán)利要求1所述的方法,包括:利用所述易失性存儲器的直接存儲器存取(DMA)將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)中的一個存儲在所述非易失性存儲器中。
3.如權(quán)利要求2所述的方法,包括: 將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器中;以及 利用所述計算節(jié)點所包含的至少一個處理器而不利用所述易失性存儲器的DMA,將所述第二計算數(shù)據(jù)存儲在所述非易失性存儲器中。
4.如權(quán)利要求3所述的 方法,包括: 判定對所述易失性存儲器的未決的存取請求的數(shù)量滿足閾值;以及 基于判定所述未決的存取請求的數(shù)量滿足所述閾值,利用所述處理器將所述第二計算數(shù)據(jù)存儲在所述非易失性存儲器中。
5.如權(quán)利要求1所述的方法,包括: 將所述第一計算數(shù)據(jù)存儲在所述易失性存儲器的第一部分中; 在所述計算節(jié)點上處理所述第一應(yīng)用以產(chǎn)生第三計算數(shù)據(jù),然后將所述第三計算數(shù)據(jù)存儲在所述易失性存儲器的第三部分中,所述第三部分與所述第一部分不重疊; 利用所述易失性存儲器的直接存儲器存取(DMA)將所述第一計算數(shù)據(jù)存儲在所述非易失性存儲器中,同時利用所述計算節(jié)點中所包含的至少一個處理器而不利用所述易失性存儲器的DMA將所述第三計算數(shù)據(jù)存儲在所述非易失性存儲器中。
6.如權(quán)利要求1所述的方法,包括:利用遠(yuǎn)程直接存儲器存取(RDMA)將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到所述IO節(jié)點。
7.如權(quán)利要求1所述的方法,包括:將所述第一計算數(shù)據(jù)存儲在所述易失性存儲器的第一區(qū)段中,以及將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器的第二區(qū)段中。
8.如權(quán)利要求7所述的方法,包括:將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器的所述第二區(qū)段中,同時將所述第一計算數(shù)據(jù)存儲在所述非易失性存儲器中。
9.如權(quán)利要求7所述的方法,包括:為所述第一應(yīng)用保留所述易失性存儲器的所述第一區(qū)段和第二區(qū)段。
10.如權(quán)利要求1所述的方法,其中將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到所述IO節(jié)點包括:所述IO節(jié)點讀取所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)。
11.如權(quán)利要求1所述的方法,包括:經(jīng)由寫操作,將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述IO節(jié)點推入到非易失性存儲陣列,同時處理所述第一應(yīng)用。
12.如權(quán)利要求1所述的方法,包括:在所述第一應(yīng)用的處理暫停的同時,將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)存儲在所述非易失性存儲器中。
13.駐留于一個或多個存儲介質(zhì)中的指令集,所述指令集由至少一個處理器執(zhí)行以實現(xiàn)如權(quán)利要求1至12所述的方法。
14.一種系統(tǒng),包括: 計算節(jié)點,其包含在集群中; 在所述計算節(jié)點中本地包含的易失性存儲器和非易失性存儲器;以及 其上存儲有指令的至少一個機(jī)器可存取介質(zhì),當(dāng)所述指令在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng): 處理第一應(yīng)用以產(chǎn)生第一計算數(shù)據(jù),然后將所述第一計算數(shù)據(jù)存儲在所述易失性存儲器中; 基于啟動的檢查點來暫停所述第一應(yīng)用的處理; 將所述第一計算數(shù)據(jù)和與暫停的第一應(yīng)用對應(yīng)的第一狀態(tài)數(shù)據(jù)存儲在所述非易失性存儲器中;以及 恢復(fù)所述暫停的 第一應(yīng)用的處理,然后繼續(xù)處理所述第一應(yīng)用以同時產(chǎn)生第二計算數(shù)據(jù)并且將第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到輸入/輸出(IO)節(jié)點。
15.如權(quán)利要求14所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令:利用所述易失性存儲器的直接存儲器存取(DMA)將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)中的一個存儲在所述非易失性存儲器中。
16.如權(quán)利要求15所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令: 將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器中;以及 利用所述計算節(jié)點中所包含的至少一個處理器而不利用所述易失性存儲器的DMA將所述第二計算數(shù)據(jù)存儲在所述非易失性存儲器中。
17.如權(quán)利要求16所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令: 判定對所述易失性存儲器的未決的存取請求的數(shù)量滿足閾值;以及 基于判定出所述未決的存取請求的數(shù)量滿足所述閾值,利用所述至少一個處理器將所述第二計算數(shù)據(jù)存儲在所述非易失性存儲器中。
18.如權(quán)利要求14所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令: 將所述第一計算數(shù)據(jù)存儲在所述易失性存儲器的第一部分中; 在所述計算節(jié)點上處理所述第一應(yīng)用以產(chǎn)生第三計算數(shù)據(jù),然后將所述第三計算數(shù)據(jù)存儲在所述易失性存儲器的第三部分中,所述第三部分與所述第一部分不重疊; 利用所述易失性存儲器的直接存儲器存取(DMA)將所述第一計算數(shù)據(jù)存儲在所述非易失性存儲器中,同時利用所述計算節(jié)點中所包含的至少一個處理器而不利用所述易失性存儲器的DMA將所述第三計算數(shù)據(jù)存儲在所述非易失性存儲器中。
19.如權(quán)利要求14所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令:利用遠(yuǎn)程直接存儲器存取(RDMA)將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到所述IO節(jié)點。
20.如權(quán)利要求14所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令:將所述第一計算數(shù)據(jù)存儲在所述易失性存儲器的第一區(qū)段中,以及將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器的第二區(qū)段中。
21.如權(quán)利要求20所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)用于以下操作的指令:同時將所述第二計算數(shù)據(jù)存儲在所述易失性存儲器的所述第二區(qū)段中,以及將所述第一計算數(shù)據(jù)存儲在所述非易失性存儲器中。
22.如權(quán)利要求14所述的系統(tǒng),其中將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述非易失性存儲器拉出到所述IO節(jié)點包括:所述IO節(jié)點讀取所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)。
23.如權(quán)利要求14所述的系統(tǒng),還包括當(dāng)在所述系統(tǒng)上執(zhí)行時使所述系統(tǒng)同時用于以下操作的指令:經(jīng)由寫操作,(a)將所述第一狀態(tài)信息和所述第一計算數(shù)據(jù)從所述IO節(jié)點推入到非易失性存儲陣列,以及(b)處理所述第一應(yīng)用。
【文檔編號】G06F13/14GK104025036SQ201180076175
【公開日】2014年9月3日 申請日期:2011年12月30日 優(yōu)先權(quán)日:2011年12月30日
【發(fā)明者】M·S·赫夫蒂, A·戴維斯, R·伍德拉夫, S·蘇爾, S-W·程 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
济南市| 正阳县| 肥东县| 文山县| 洛阳市| 芦山县| 赤水市| 铁岭市| 潞西市| 阿克陶县| 长岛县| 古浪县| 镇康县| 奎屯市| 铜陵市| 奉化市| 宜都市| 财经| 商河县| 柳林县| 什邡市| 漳州市| 剑河县| 庆阳市| 夏邑县| 麻江县| 东辽县| 来安县| 泰安市| 绥芬河市| 商南县| 咸阳市| 桂林市| 安塞县| 鄂托克旗| 上杭县| 库尔勒市| 屏南县| 彭泽县| 钟祥市| 铜鼓县|