一種基于扁平化模型的通信實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種基于扁平化模型的通信實現(xiàn)方法。
【背景技術(shù)】
[0002]在異構(gòu)眾核體系結(jié)構(gòu)下,用戶進行并行程序設(shè)計通常要采用兩層設(shè)計模型,即在控制核心實現(xiàn)消息通信,在運算核心實現(xiàn)加速運算;其產(chǎn)生的負面影響也是顯而易見的。首先,給用戶帶來了較重的編程負擔(dān);其次,多核時代的遺產(chǎn)代碼大多需要通過改造才能在眾核平臺上運行。因此,在異構(gòu)平臺上提供傳統(tǒng)扁平化編程視角,有助于提升程序設(shè)計生產(chǎn)率,同時也有利于遺產(chǎn)代碼在異構(gòu)眾核系統(tǒng)上平滑過渡。基于控制核心代理的運算核心消息通信實現(xiàn),是扁平化編程模型的重要關(guān)鍵技術(shù)之一。
[0003]運算核心消息通信實現(xiàn)主要包括點對點消息和集合消息。在點對點消息方面,通常的實現(xiàn)方式是采用運算核心中斷控制核心發(fā)出消息代理請求,由控制核心在中斷處理中解析消息請求并進行消息代理操作的方式;這種方式存在中斷代價過高導(dǎo)致消息性能下降的缺陷。在集合操作方面,如果采用傳統(tǒng)的點對點消息實現(xiàn)方式,由于密集的消息通信請求,容易出現(xiàn)控制核心熱點的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中存在上述缺陷,提供一種基于扁平化模型的通信實現(xiàn)方法,采用控制核心主動輪詢方式,對用戶的點對點消息請求進行批量處理,解決了中斷代價過高的問題;此外,在集合消息方面,本發(fā)明利用運算核心數(shù)據(jù)傳輸能力強的特點,采用數(shù)據(jù)傳輸加單運算核心請求的方式,避免了控制核心的熱點問題。
[0005]根據(jù)本發(fā)明,提供了一種基于扁平化模型的通信實現(xiàn)方法,用于點對點通信,包括:運算核心將用戶消息的描述符在內(nèi)存中進行組裝;所述運算核心通過寫內(nèi)存方式,將描述符地址信息作為消息請求的至少一部分,通知給控制核心;所述控制核心通過創(chuàng)建輪詢線程的方式,查詢運算核心的消息請求,通過消息請求中攜帶的描述符地址信息,取出描述符進行消息匹配;所述控制核心利用消息匹配的結(jié)果與遠程控制核心進行消息通信。
[0006]優(yōu)選地,在所述控制核心與所述遠程控制核心的消息通信結(jié)束后,所述控制核心將完成信息寫入預(yù)定完成位中,以便運算核心進行查詢。
[0007]根據(jù)本發(fā)明,還提供了一種基于扁平化模型的通信實現(xiàn)方法,用于集合通信,包括:運算核心陣列進行同步,由運算核心陣列中核號最小的運算核心組織描述符并通知控制核心,運算核心陣列中的其他運算核心進入下一個陣列同步等待數(shù)據(jù)通信完成;所述控制核心收到運算核心消息請求后,從消息請求解析描述符以確定根進程位置,并申請集合操作緩沖區(qū)并進行消息集合操作,完成后通知所述核號最小的運算核心提出申請的上層消息集合操作已經(jīng)完成,運算核心陣列發(fā)起數(shù)據(jù)傳輸操作,將緩沖區(qū)中的數(shù)據(jù)拷貝至相應(yīng)目的地址。
[0008]本發(fā)明基于輪詢方式的低開銷點對點消息代理機制,而且利用單個核心通知和陣列數(shù)據(jù)傳輸相結(jié)合的集合通信機制。由此,本發(fā)明的優(yōu)點在于,首先,控制核心線程采用輪詢的交互方式處理運算核心的消息通信請求,降低了代理實現(xiàn)的代價;其次,利用單個核心通知和陣列數(shù)據(jù)傳輸相集合的方式,避免了控制核心的熱點問題,充分挖掘了底層芯片的通信潛能。
【附圖說明】
[0009]結(jié)合附圖,并通過參考下面的詳細描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點和特征,其中:
[0010]圖1示意性地示出了根據(jù)本發(fā)明第一優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法的流程圖。
[0011]圖2示意性地示出了根據(jù)本發(fā)明第二優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法的流程圖。
[0012]需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號。
【具體實施方式】
[0013]為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實施例和附圖對本發(fā)明的內(nèi)容進行詳細描述。
[0014]在異構(gòu)眾核平臺上,由于網(wǎng)絡(luò)接口只對控制核心開放,運算核心的消息通信只能通過主核代理來實現(xiàn)。本發(fā)明在體系結(jié)構(gòu)特點的基礎(chǔ)上,利用運算核心和控制核心之間的交互手段,基于控制核心代理實現(xiàn)了運算核心的點對點通信(某一對進程之間的數(shù)據(jù)交互,通常包括雙邊消息操作和單邊消息操作)協(xié)議以及集合通信(以一組進程為通信集合,按照一定的邏輯規(guī)律進行的數(shù)據(jù)交互,通常包括廣播、收集、散發(fā)、全交換等)協(xié)議,使得用戶能夠在異構(gòu)眾核系統(tǒng)上方便地采用傳統(tǒng)扁平化視圖進行消息并行程序設(shè)計。
[0015]〈第一實施例〉
[0016]圖1示意性地示出了根據(jù)本發(fā)明第一優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法的流程圖。
[0017]如圖1所示,根據(jù)本發(fā)明第一優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法,用于點對點通信,所述方法包括:
[0018]第一步驟S1:運算核心將用戶消息的描述符在內(nèi)存中進行組裝;
[0019]第二步驟S2:所述運算核心通過寫內(nèi)存方式,將描述符地址信息(即,描述符的位置)作為消息請求的至少一部分,通知給控制核心;
[0020]第三步驟S3:所述控制核心通過創(chuàng)建輪詢線程的方式,查詢運算核心的消息請求,通過消息請求中攜帶的描述符地址信息,取出描述符進行消息匹配;
[0021]第四步驟S4:所述控制核心利用消息匹配的結(jié)果與遠程控制核心(S卩,遠程的另一控制核心)進行消息通信;
[0022]第五步驟S5:優(yōu)選地,在所述控制核心與所述遠程控制核心的消息通信結(jié)束后,所述控制核心將完成信息寫入預(yù)定完成位中,以便運算核心進行查詢。
[0023]可以看出,運算核心負責(zé)將用戶消息描述符在內(nèi)存中進行組裝,并通過寫內(nèi)存方式通知控制核心描述符的位置;控制核心通過創(chuàng)建輪詢線程的方式,查詢運算核心的消息請求,通過消息請求中攜帶的描述符地址信息,取出描述符進行消息匹配并和遠程控制核心進行消息通信,消息通信完成后,將完成信息寫入事先約定的完成位中,由運算核心進行查詢。
[0024]<第二實施例>
[0025]圖2示意性地示出了根據(jù)本發(fā)明第二優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法的流程圖。
[0026]如圖2所示,根據(jù)本發(fā)明第二優(yōu)選實施例的基于扁平化模型的通信實現(xiàn)方法,用于集合通信,所述方法包括:
[0027]第一步驟S10:運算核心陣列進行同步,由運算核心陣列中核號最小的運算核心組織描述符(例如,作為消息請求的至少一部分)并通知控制核心,運算核心陣列中的其他運算核心進入下一個陣列同步等待數(shù)據(jù)通信完成;
[0028]第二步驟S20:所述控制核心收到運算核心消息請求后,從消息請求解析描述符以確定集合操作類型,并申請集合操作緩沖區(qū)并進行消息集合操作;
[0029]第三步驟S30:消息集合操作完成后,通知所述核號最小的運算核心提出申請的上層操作已經(jīng)完成;例如,在第三步驟S30中,可以通過置完成位來通知所述核號最小的運算核心提出申請的上層操作已經(jīng)完成。
[0030]第四步驟S40:所述核號最小的運算核心在收到通知后,使用陣列數(shù)據(jù)傳輸將內(nèi)存中的數(shù)據(jù)拷貝至運指定位置。
[0031]可以看出,集合通信例如用于實現(xiàn)廣播操作,其中運算核心陣列進行同步,由核號最小的運算核心組織描述符并通知控制核心,其他運算核心進入下一個陣列同步等待數(shù)據(jù)通信完成;控制核心收到運算核心消息請求,解析描述符,確定根進程位置,申請緩沖區(qū)并進行消息集合操作;完成后,置完成位通知先前運算核心提出申請的上層集合操作已經(jīng)完成,運算核心收到通知后,使用數(shù)據(jù)傳輸將內(nèi)存中的數(shù)據(jù)拷貝至運算核心指定的位置,并進入陣列同步;這樣,在陣列同步完成后,所有運算核心集合操作完成。
[0032]此外,需要說明的是,除非特別指出,否則說明書中的術(shù)語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等。
[0033]可以理解的是,雖然本發(fā)明已以較佳實施例披露如上,然而上述實施例并非用以限定本發(fā)明。對于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對本發(fā)明技術(shù)方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護的范圍內(nèi)。
【主權(quán)項】
1.一種基于扁平化模型的通信實現(xiàn)方法,用于點對點通信,其特征在于包括: 運算核心將用戶消息的描述符在內(nèi)存中進行組裝; 所述運算核心通過寫內(nèi)存方式,將描述符地址信息作為消息請求的至少一部分,通知給控制核心; 所述控制核心通過創(chuàng)建輪詢線程的方式,查詢運算核心的消息請求,通過消息請求中攜帶的描述符地址信息,取出描述符進行消息匹配; 所述控制核心利用消息匹配的結(jié)果與遠程控制核心進行消息通信。2.根據(jù)權(quán)利要求1所述的基于扁平化模型的通信實現(xiàn)方法,其特征在于還包括:在所述控制核心與所述遠程控制核心的消息通信結(jié)束后,所述控制核心將完成信息寫入預(yù)定完成位中,以便運算核心進行查詢。3.—種基于扁平化模型的通信實現(xiàn)方法,用于集合通信,其特征在于包括: 運算核心陣列進行同步,由運算核心陣列中核號最小的運算核心組織描述符并通知控制核心,運算核心陣列中的其他運算核心進入下一個陣列同步等待數(shù)據(jù)通信完成; 所述控制核心收到運算核心消息請求后,從消息請求解析描述符以確定集合操作類型,申請集合操作緩沖區(qū)并進行控制核心間消息集合操作; 控制核心間消息集合操作完成后,通知所述核號最小的運算核心提出申請的上層消息集合操作已經(jīng)完成。4.根據(jù)權(quán)利要求3所述的基于扁平化模型的通信實現(xiàn)方法,其特征在于,所述核號最小的運算核心在收到通知后,與陣列內(nèi)其他運算同步完成,所有運算核心發(fā)起數(shù)據(jù)傳輸操作,將緩沖區(qū)中的數(shù)據(jù)拷貝至相應(yīng)目的地址。
【專利摘要】本發(fā)明提供了一種基于扁平化模型的通信實現(xiàn)方法,可用于點對點通信和集合通信。所述方法包括:運算核心將用戶消息的描述符在內(nèi)存中進行組裝;所述運算核心通過寫內(nèi)存方式,將描述符地址信息作為消息請求通知給控制核心;所述控制核心通過創(chuàng)建輪詢線程的方式,查詢運算核心的消息請求,通過消息請求中攜帶的描述符地址信息,取出描述符進行消息匹配;所述控制核心利用消息匹配的結(jié)果與遠程控制核心進行消息通信。
【IPC分類】H04L12/58, H04L29/08
【公開號】CN105282017
【申請?zhí)枴緾N201510831796
【發(fā)明人】魏迪, 何王全, 尹萬旺, 劉勇, 王濤
【申請人】無錫江南計算技術(shù)研究所
【公開日】2016年1月27日
【申請日】2015年11月24日