專(zhuān)利名稱(chēng):進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉計(jì)算機(jī)領(lǐng)域,尤其涉及一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
為了滿(mǎn)足科學(xué)研究和工程模擬計(jì)算,超級(jí)計(jì)算機(jī)正在不斷發(fā)展。超級(jí)計(jì)算機(jī)的規(guī)模從僅僅數(shù)千個(gè)處理器核心發(fā)展到數(shù)十萬(wàn)個(gè)處理器核心,新的性能和擴(kuò)展性挑戰(zhàn)隨之誕生。在過(guò)去,并行計(jì)算應(yīng)用的性能調(diào)優(yōu),可以通過(guò)分別優(yōu)化其算法、通訊和計(jì)算等方面較輕松的完成。但是,隨著采用高速網(wǎng)絡(luò)的更大規(guī)模高性能計(jì)算集群的涌現(xiàn),這些問(wèn)題混雜在一起,必須綜合起來(lái)解決。進(jìn)程間通訊對(duì)基于高速網(wǎng)絡(luò)的超級(jí)計(jì)算機(jī)的擴(kuò)展性有重要影響,這是因?yàn)槌?jí)計(jì)算應(yīng)用的操作,如發(fā)送周遭初始輸入數(shù)據(jù)的網(wǎng)絡(luò)廣播,減少多處整合數(shù)據(jù)及整體同步的障礙,會(huì)經(jīng)常用到進(jìn)程間通信。進(jìn)程間通信尤其是其中的整體通信操作,負(fù)責(zé)整合系統(tǒng)中的全部進(jìn)程/節(jié)點(diǎn),因此對(duì)進(jìn)程間通信必須盡快和高效地處理。目前進(jìn)程間通信的擴(kuò)展性處理得并不好,受制于系統(tǒng)噪音,處理網(wǎng)絡(luò)協(xié)議也占據(jù)過(guò)多CPU處理時(shí)間,導(dǎo)致超級(jí)計(jì)算機(jī)的規(guī)模擴(kuò)大后,其運(yùn)算效率卻無(wú)法得到相應(yīng)提升。
發(fā)明內(nèi)容
本發(fā)明提供了一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備,解決了進(jìn)程間通信任務(wù)影響 CPU運(yùn)算效率的問(wèn)題。一種進(jìn)程間通信方法,包括高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。優(yōu)選的,所述高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理的步驟之前還包括所述高速網(wǎng)絡(luò)設(shè)備卸載全部經(jīng)由該高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè)。優(yōu)選的,所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包的步驟之后,還包括所述目的處理器內(nèi)存上的緩存與所述進(jìn)程間通信數(shù)據(jù)包直接交換數(shù)據(jù)。本發(fā)明還提供了一種高速網(wǎng)絡(luò)設(shè)備,包括數(shù)據(jù)包處理模塊,用于在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;數(shù)據(jù)發(fā)送模塊,用于向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。優(yōu)選的,所述高速網(wǎng)絡(luò)設(shè)備還包括數(shù)據(jù)包檢測(cè)模塊,用于卸載全部經(jīng)由所述高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè)。優(yōu)選的,所述數(shù)據(jù)發(fā)送模塊具體為高速網(wǎng)絡(luò)適配器或交換模塊。本發(fā)明提供了一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備,高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理,所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包,解決了進(jìn)程間通信任務(wù)影響CPU運(yùn)算效率的間題。
圖1為系統(tǒng)噪音對(duì)高速網(wǎng)絡(luò)的進(jìn)程間通信操作的影響示意圖;圖2為本發(fā)明的實(shí)施例一提供的一種高速網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;圖3為本發(fā)明的實(shí)施例一提供的又一種高速網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;圖4為本發(fā)明的實(shí)施例二提供的一種進(jìn)程間通信方法的流程圖。
具體實(shí)施例方式操作系統(tǒng)噪音的存在是擴(kuò)展大型應(yīng)用的主要障礙之一。CPU必須同時(shí)處理計(jì)算和通信任務(wù)(主要是協(xié)議處理),一般是串行處理。在多數(shù)服務(wù)器上,IO操作要求數(shù)據(jù)在CPU 的控制下,從入口被映射到IO內(nèi)存上,然后再傳輸?shù)接脩?hù)空間內(nèi)存。同時(shí)需要服務(wù)器掛起活動(dòng)線(xiàn)程,進(jìn)行背景轉(zhuǎn)換來(lái)處理通訊線(xiàn)程,以保證及時(shí)回應(yīng)其他進(jìn)程。進(jìn)程間操作會(huì)對(duì)CPU 運(yùn)作時(shí)間造成顯著損耗,因此系統(tǒng)噪音會(huì)對(duì)CPU任務(wù)的處理時(shí)間造成額外的延遲。系統(tǒng)噪音對(duì)高速網(wǎng)絡(luò)的進(jìn)程間通信操作的影響如圖1所示,假設(shè)一個(gè)超級(jí)計(jì)算機(jī)有8個(gè)節(jié)點(diǎn),每一橫排代表系統(tǒng)運(yùn)行的一個(gè)階段,箭頭代表信息通訊方向。在節(jié)點(diǎn)1的系統(tǒng)噪音造成了預(yù)期信息到達(dá)節(jié)點(diǎn)2的延遲。這不僅僅造成節(jié)點(diǎn)1的執(zhí)行時(shí)間延長(zhǎng),而且間接提升了 3,5,7節(jié)點(diǎn)的執(zhí)行時(shí)間,并因此影響了整體應(yīng)用的運(yùn)行時(shí)間,降低了整體系統(tǒng)的性能。為了解決上述問(wèn)題,本發(fā)明的實(shí)施例提供了一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備。下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。首先結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例一進(jìn)行說(shuō)明。本發(fā)明實(shí)施例提供了一種高速網(wǎng)絡(luò)設(shè)備,其結(jié)構(gòu)如圖2所示,包括數(shù)據(jù)包處理模塊201,用于在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;數(shù)據(jù)發(fā)送模塊202,用于向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。進(jìn)一步,如圖3所示,本發(fā)明實(shí)施例還提供了一種高速網(wǎng)絡(luò)設(shè)備,在圖2所示高速網(wǎng)絡(luò)設(shè)備的基礎(chǔ)上,還包括數(shù)據(jù)包檢測(cè)模塊203,用于卸載全部經(jīng)由所述高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè)。
優(yōu)選的,所述數(shù)據(jù)發(fā)送模塊202具體為高速網(wǎng)絡(luò)適配器或交換模塊。其中,數(shù)據(jù)包處理模塊201和數(shù)據(jù)包檢測(cè)模塊203可集成于一芯片或通過(guò)ASIC實(shí)現(xiàn)。下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例二進(jìn)行說(shuō)明。本發(fā)明實(shí)施例提供了一種進(jìn)程間通信方法,利用具通信卸載功能(如芯片或 ASIC)的高速網(wǎng)絡(luò)適配器和交換模塊,將管理進(jìn)程間通信的任務(wù)從CPU轉(zhuǎn)移到高速網(wǎng)絡(luò),從而減輕了 CPU管理通訊這一部分的工作負(fù)擔(dān),允許進(jìn)程間通信和計(jì)算重疊/并行的增加。結(jié)合本發(fā)明實(shí)施例一提供的高速網(wǎng)絡(luò)設(shè)備,使用本發(fā)明的實(shí)施例提供的進(jìn)程間通信方法完成進(jìn)程間通信的流程如圖4所示,包括步驟401、所述高速網(wǎng)絡(luò)設(shè)備卸載全部經(jīng)由該高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè);本發(fā)明實(shí)施例所涉及的超級(jí)計(jì)算機(jī)均為小型機(jī)或大型機(jī),在該超級(jí)計(jì)算機(jī)內(nèi)又包含多臺(tái)設(shè)備,各設(shè)備均有一獨(dú)立的網(wǎng)絡(luò)模塊。本發(fā)明實(shí)施例中,該網(wǎng)絡(luò)模塊即為高速網(wǎng)絡(luò)設(shè)備。本發(fā)明中,高速網(wǎng)絡(luò)設(shè)備通過(guò)其數(shù)據(jù)包卸載功能,將發(fā)往其對(duì)應(yīng)的設(shè)備的數(shù)據(jù)包全部卸載,并對(duì)卸載下來(lái)的數(shù)據(jù)包進(jìn)行檢測(cè)。具體的,主要進(jìn)行數(shù)據(jù)校驗(yàn),并對(duì)屬于同一應(yīng)用程序的不同進(jìn)程間通信進(jìn)行標(biāo)注,以便于在接收端進(jìn)行分析和處理。步驟402、高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;通常意義上說(shuō)網(wǎng)絡(luò)協(xié)議棧是軟件上用于處理網(wǎng)絡(luò)協(xié)議的堆棧,高速網(wǎng)絡(luò)通常指帶寬在1000Mb/S以上的網(wǎng)絡(luò)。本步驟中,網(wǎng)絡(luò)協(xié)議棧即對(duì)通信數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)協(xié)議處理,包括解包,分析頭地址等等過(guò)程。與協(xié)議相關(guān)的數(shù)據(jù)包處理(如本步驟中的高速網(wǎng)絡(luò)協(xié)議堆棧處理)只占高速網(wǎng)絡(luò)總開(kāi)銷(xiāo)的35%到40%,操作系統(tǒng)的開(kāi)銷(xiāo)和中間緩沖復(fù)制等等占用剩下的開(kāi)銷(xiāo)。即由高速網(wǎng)絡(luò)中的設(shè)備完成進(jìn)程間通信的處理并不會(huì)影響正常的其他通信業(yè)務(wù)。步驟403、所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包;本步驟中,高速網(wǎng)絡(luò)設(shè)備在處理完成后,將進(jìn)程間通信數(shù)據(jù)包根據(jù)其目的地址,直接向相應(yīng)的處理器內(nèi)存發(fā)送。步驟404、所述目的處理器內(nèi)存上的緩存與所述進(jìn)程間通信數(shù)據(jù)包直接交換數(shù)據(jù);本步驟中,具通信卸載功能的高速網(wǎng)絡(luò)設(shè)備接收到通信數(shù)據(jù)包后,將其卸載到本地FLASH緩存中,并利用自身處理模塊如芯片或ASIC等對(duì)其進(jìn)行協(xié)議堆棧處理,將處理后的數(shù)據(jù)直接與本機(jī)內(nèi)存進(jìn)行交互。將數(shù)據(jù)包直接發(fā)往處理器的內(nèi)存,與應(yīng)用軟件在內(nèi)存上的緩存直接交換數(shù)據(jù),可以消減緩存開(kāi)銷(xiāo),避免CPU中斷等等,提高CPU利用率,從而增強(qiáng)基于高速網(wǎng)絡(luò)的超級(jí)計(jì)算機(jī)的擴(kuò)展性和計(jì)算效率。本發(fā)明的實(shí)施例提供了一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備,高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理,所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包,解決了進(jìn)程間通信任務(wù)影響CPU運(yùn)算效率的問(wèn)題。將高速網(wǎng)絡(luò)協(xié)議堆棧處理轉(zhuǎn)移到高速網(wǎng)絡(luò)中來(lái)處理,能夠令系統(tǒng)噪音的影響最小化,且保證了超級(jí)計(jì)算機(jī)最大的擴(kuò)展性,減少CPU損耗。 進(jìn)一步,通信卸載引擎負(fù)責(zé)CPU的部分運(yùn)算,達(dá)成了通信和計(jì)算復(fù)用(同時(shí)進(jìn)行)。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的全部或部分步驟可以使用計(jì)算機(jī)程序流程來(lái)實(shí)現(xiàn),所述計(jì)算機(jī)程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,所述計(jì)算機(jī)程序在相應(yīng)的硬件平臺(tái)上(如系統(tǒng)、設(shè)備、裝置、器件等)執(zhí)行,在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用集成電路來(lái)實(shí)現(xiàn),這些步驟可以被分別制作成一個(gè)個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。上述實(shí)施例中的各裝置/功能模塊/功能單元可以采用通用的計(jì)算裝置來(lái)實(shí)現(xiàn), 它們可以集中在單個(gè)的計(jì)算裝置上,也可以分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上。上述實(shí)施例中的各裝置/功能模塊/功能單元以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述提到的計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種進(jìn)程間通信方法,其特征在于,包括高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的進(jìn)程間通信方法,其特征在于,所述高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理的步驟之前還包括所述高速網(wǎng)絡(luò)設(shè)備卸載全部經(jīng)由該高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè)。
3.根據(jù)權(quán)利要求1所述的進(jìn)程間通信方法,其特征在于,所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包的步驟之后,還包括所述目的處理器內(nèi)存上的緩存與所述進(jìn)程間通信數(shù)據(jù)包直接交換數(shù)據(jù)。
4.一種高速網(wǎng)絡(luò)設(shè)備,其特征在于,包括數(shù)據(jù)包處理模塊,用于在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;數(shù)據(jù)發(fā)送模塊,用于向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。
5.根據(jù)權(quán)利要求4所述的高速網(wǎng)絡(luò)設(shè)備,其特征在于,該高速網(wǎng)絡(luò)設(shè)備還包括數(shù)據(jù)包檢測(cè)模塊,用于卸載全部經(jīng)由所述高速網(wǎng)絡(luò)設(shè)備發(fā)送的數(shù)據(jù)包,從中進(jìn)行進(jìn)程間通信數(shù)據(jù)包的檢測(cè)。
6.根據(jù)權(quán)利要求4所述的高速網(wǎng)絡(luò)設(shè)備,其特征在于,所述數(shù)據(jù)發(fā)送模塊具體為高速網(wǎng)絡(luò)適配器或交換模塊。
全文摘要
本發(fā)明提供了一種進(jìn)程間通信方法和高速網(wǎng)絡(luò)設(shè)備。涉及計(jì)算機(jī)領(lǐng)域;解決了進(jìn)程間通信任務(wù)影響CPU運(yùn)算效率的問(wèn)題。該方法包括高速網(wǎng)絡(luò)設(shè)備在檢測(cè)到進(jìn)程間通信數(shù)據(jù)包時(shí),對(duì)所述進(jìn)程間通信數(shù)據(jù)包進(jìn)行高速網(wǎng)絡(luò)協(xié)議堆棧處理;所述高速網(wǎng)絡(luò)設(shè)備向所述進(jìn)程間通信數(shù)據(jù)包的目的處理器內(nèi)存發(fā)送該進(jìn)程間通信數(shù)據(jù)包。本發(fā)明提供的技術(shù)方案適用于超級(jí)計(jì)算機(jī),實(shí)現(xiàn)了不占用CPU運(yùn)算資源的進(jìn)程間通信。
文檔編號(hào)H04L29/08GK102185672SQ201110050038
公開(kāi)日2011年9月14日 申請(qǐng)日期2011年3月2日 優(yōu)先權(quán)日2011年3月2日
發(fā)明者呂文靜, 王渭巍 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司