本發(fā)明屬于通信領(lǐng)域,涉及基于MPI的廣域高性能網(wǎng)絡(luò)在智能交通系統(tǒng)中應(yīng)用的技術(shù),具體涉及一種基于MPI的廣域高性能計(jì)算網(wǎng)絡(luò)優(yōu)化方法。
背景技術(shù):
隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,我國交通建設(shè)的規(guī)模及交通系統(tǒng)的復(fù)雜性也迅速增加,尤其近幾年城市人口增多,汽車數(shù)量持續(xù)增加,與此同時(shí)帶來的交通問題也越來越突出,利用智能交通系統(tǒng)解決日益嚴(yán)重的交通問題越來越受到國內(nèi)外政府、專家的重視。所謂智能交通系統(tǒng),是將先進(jìn)的信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)、電子傳感技術(shù)、電子控制技術(shù)以及計(jì)算機(jī)處理技術(shù)等有效地集成運(yùn)用于整個(gè)交通運(yùn)輸管理體系,而建立起的一種在大范圍內(nèi)、全方位發(fā)揮作用的,實(shí)時(shí)、準(zhǔn)確、高效的綜合運(yùn)輸和管理系統(tǒng),它通過對傳統(tǒng)交通系統(tǒng)進(jìn)行變革,提升交通系統(tǒng)的信息化、智能化、集成化和網(wǎng)絡(luò)化,從而保障人、車、路與環(huán)境之間的相互交流,進(jìn)而提高交通系統(tǒng)的效率、機(jī)動(dòng)性、安全性、可達(dá)性、經(jīng)濟(jì)性,達(dá)到保護(hù)環(huán)境,降低能耗的作用。
目前,我國有關(guān)智能交通系統(tǒng)的各類交通運(yùn)輸管理主體分散在不同地區(qū)與主管部門,呈現(xiàn)出條塊分割的現(xiàn)象。涉及交通的“有關(guān)部門”超過10個(gè),每個(gè)部門都有自己的信息化系統(tǒng),且這些數(shù)據(jù)信息只存在于垂直業(yè)務(wù)和單一應(yīng)用中,與鄰近業(yè)務(wù)系統(tǒng)需要通過大型智能交通系統(tǒng)網(wǎng)絡(luò)進(jìn)行共通聯(lián)動(dòng)。據(jù)調(diào)查報(bào)告可知,在各城市區(qū)域的智能交通系統(tǒng)中時(shí)時(shí)刻刻有大量的安全信息和車輛狀態(tài)數(shù)據(jù)進(jìn)行傳輸,數(shù)據(jù)總量水平在GB/S級別,這些數(shù)據(jù)需要在全國車聯(lián)網(wǎng)層面、車輛調(diào)度、交警監(jiān)控系統(tǒng)分析等應(yīng)用中共享,結(jié)合智能交通系統(tǒng)本身強(qiáng)調(diào)數(shù)據(jù)的實(shí)時(shí)性、計(jì)算的高性能的特點(diǎn),對網(wǎng)絡(luò)傳輸性能、數(shù)據(jù)存儲性能、數(shù)據(jù)分析處理性能都會(huì)提出很高的要求。智能交通系統(tǒng)通信網(wǎng)的廣域網(wǎng)絡(luò)部分以SDH系統(tǒng)為主,各級異構(gòu)網(wǎng)接入的匯聚網(wǎng)部分以太網(wǎng)技術(shù)為主,端到端的數(shù)據(jù)網(wǎng)以TCP/IP為主,構(gòu)成了以太網(wǎng)+SDH的TCP/IP網(wǎng)絡(luò)解決方案,大量的研究和測試表明,與高速、高性能計(jì)算網(wǎng)絡(luò)相比,這樣一個(gè)網(wǎng)絡(luò)方案在帶寬、時(shí)延和穩(wěn)定性方面與充分發(fā)揮智能交通系統(tǒng)作用的需求差距很大。高性能計(jì)算通常是指并行計(jì)算,使用多處理器或者幾臺計(jì)算機(jī)集群通過高帶寬、低延時(shí)的異構(gòu)網(wǎng)絡(luò)互聯(lián),具有緊密耦合的特性。這些能夠在集群主機(jī)之間提供極高通信性能的網(wǎng)絡(luò)稱之為高性能計(jì)算網(wǎng)絡(luò)。目前高性能計(jì)算網(wǎng)絡(luò)技術(shù)主要的應(yīng)用場景是數(shù)據(jù)中心的計(jì)算機(jī)集群網(wǎng)絡(luò),因此應(yīng)用在智能交通系統(tǒng)環(huán)境下可以充分發(fā)揮網(wǎng)絡(luò)的高性能特點(diǎn)。高性能網(wǎng)絡(luò)中緊密耦合的集群和并行處理器是通過廣域網(wǎng)絡(luò)進(jìn)行連接,在跨越廣域網(wǎng)進(jìn)行通信時(shí),若使高性能計(jì)算網(wǎng)絡(luò)這種分布式系統(tǒng)高效運(yùn)行,則通信鏈路的同步問題需要得到有效的解決。
對于高性能計(jì)算網(wǎng)絡(luò)的系統(tǒng)特性,通常所用的編程范式是采用MPI(Message Passing Interface)標(biāo)準(zhǔn)(消息傳遞接口),MPI對種類繁多的并行計(jì)算體系結(jié)構(gòu)的便捷式編程提供了基礎(chǔ)。目前MPI在廣域網(wǎng)的實(shí)施主要依賴于TCP,大多數(shù)如MPICH-G2、PACX-MPI、FT-MPI、LAM-MPI等MPI模式要實(shí)現(xiàn)廣域網(wǎng)的分布式計(jì)算環(huán)境都是通過TCP建立的。但是在智能交通系統(tǒng)系統(tǒng)采用高性能計(jì)算網(wǎng)絡(luò)在廣域網(wǎng)中使用基于TCP的MPI協(xié)議棧會(huì)引起的典型問題就是具有很大的延遲效應(yīng)以及對可用帶寬的頻帶利用率較低,進(jìn)而導(dǎo)致進(jìn)程運(yùn)行拖延,影響數(shù)據(jù)的發(fā)送與接收。另一個(gè)突出的問題是可拓展性,TCP的協(xié)議報(bào)頭不支持對多宿主主機(jī)同時(shí)建立連接,從而MPI應(yīng)用程序需要建立大量的TCP連接(1對1的Socket套接字)來與應(yīng)用程序中的其它進(jìn)程進(jìn)行通信,這就會(huì)導(dǎo)致操作系統(tǒng)需要維持大量的socket描述符從而影響到系統(tǒng)的整體性能。在MPI應(yīng)用程序的協(xié)議棧上用UDP來代替TCP的問題上有各種方法已經(jīng)被提出。當(dāng)廣域網(wǎng)中傳輸?shù)男畔?shù)據(jù)跨越多個(gè)網(wǎng)絡(luò)接口時(shí),使用UDP也可以通過信息分段化來達(dá)到容錯(cuò)率。UDP是一種無連接的傳輸層協(xié)議,可以避免在TCP中存在的”報(bào)頭過重”引起的延遲較大問題,從而來達(dá)到更好的性能。但是,UDP是提供面向事務(wù)的簡單不可靠信息傳送服務(wù),如果在報(bào)頭增加了可靠性,這種優(yōu)勢蕩然無存。因此我們認(rèn)為智能交通系統(tǒng)使用高性能計(jì)算網(wǎng)絡(luò)在廣域網(wǎng)環(huán)境下通信時(shí),TCP和UDP并不能與MPI應(yīng)用程序很好地兼容。
Open MPI是在LAM/MPI,LA-MPI,and FT-MPI的基礎(chǔ)上的一種全新的基于構(gòu)件概念的MPI實(shí)現(xiàn),是基于MPI上開發(fā)的一種高性能消息傳遞庫,突出的優(yōu)點(diǎn)是它的模塊化結(jié)構(gòu)更易于集成新的模塊,同時(shí)支持多路徑、多宿主的信息流傳遞。在OPEN MPI點(diǎn)到點(diǎn)通信系統(tǒng)框架中,有兩個(gè)主要模塊是PTL(Point-to-point Transport Layer)和PML(Point-to-point Management Layer)分別對應(yīng)不同的功能。此外它還內(nèi)置TEG(點(diǎn)到點(diǎn)通信容錯(cuò)模塊),可以最大限度地提高網(wǎng)絡(luò)帶寬的頻帶利用率。SCTP(Stream Control Transmission Protocol,流量控制傳輸協(xié)議)作為一個(gè)傳輸層協(xié)議,已經(jīng)由IETF標(biāo)準(zhǔn)化,采用定向消息傳輸機(jī)制。SCTP兼有TCP及UDP兩者的特點(diǎn),支持多宿主連接,且一個(gè)SCTP連接(Association)同時(shí)可以支持多個(gè)流(stream),每個(gè)流包含一系列用戶所需的消息數(shù)據(jù)(chunk),從而這些特性使它們能在計(jì)算機(jī)集群中使用。在網(wǎng)絡(luò)安全方面,SCTP也增加了防止惡意攻擊的措施。SCTP繼承了TCP較為完善的擁塞控制功能并改進(jìn)了TCP的一些不足之處,可以看作是TCP的改進(jìn)協(xié)議。SCTP由于在報(bào)文設(shè)計(jì)時(shí)充分的考慮了可擴(kuò)展性,且SCTP的多宿性也為CMT(Concurrent Multipath Transfer,多路徑并行傳輸)提供了可能。STCP-CMT是在SCTP基礎(chǔ)上提出并行多路徑傳輸(CMT)機(jī)制,利用SCTP的多宿特性,完善了SCTP在實(shí)際中應(yīng)用的不足。更適合滿足高性能計(jì)算網(wǎng)絡(luò)的分布式系統(tǒng)特性。
針對上述在智能交通系統(tǒng)采用高性能計(jì)算網(wǎng)絡(luò)在廣域網(wǎng)中使用基于TCP的MPI協(xié)議棧會(huì)引起的延遲效應(yīng)、頻帶利用率較低,進(jìn)程運(yùn)行拖延和可拓展性等問題,現(xiàn)在技術(shù)中還沒有披露過相關(guān)的有效解決方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于改善智能交通系統(tǒng)中各個(gè)子區(qū)域大量車輛通信數(shù)據(jù)應(yīng)用高性能計(jì)算網(wǎng)絡(luò)在廣域網(wǎng)通信時(shí)的高延時(shí)和可用帶寬的頻帶利用率較低等問題。
為達(dá)到上述目的,本發(fā)明提出的技術(shù)方案是一種基于MPI的廣域高性能計(jì)算網(wǎng)絡(luò)優(yōu)化方法,包括如下步驟:
步驟1:創(chuàng)建SCTP-CMT協(xié)議塊;
步驟2:將所述STCP-CMT作為代替TCP協(xié)議的模塊移植到MPI組件架構(gòu)的PTL模塊中;
步驟3:將更新后的MPI協(xié)議棧更新至MPI組件架構(gòu);
步驟4:基于更新后的MPI特性,在MPI組件架構(gòu)的PML模塊中創(chuàng)建SCM模塊,對更新后的MPI組件架構(gòu)起到管理作用;
步驟5:對OPEN MPI結(jié)構(gòu)內(nèi)部的上層接口進(jìn)行調(diào)整,使其兼容新的框架模型。
進(jìn)一步,步驟1中,創(chuàng)建SCTP-CMT協(xié)議塊具體包括調(diào)用MPI_INIT程序,完成程序所有初始化工作,設(shè)置內(nèi)部傳輸協(xié)議為SCTP-CMT,建立起運(yùn)行的環(huán)境。
進(jìn)一步,步驟2中,將STCP-CMP移植到MPI組件架構(gòu)的PTL模塊中具體包括:在文件系統(tǒng)中定位檢查點(diǎn)映像文件,并根據(jù)MPI任務(wù)使用的STCP-CMP協(xié)議塊,重新建立每個(gè)MPI任務(wù)的PTL模塊,最后調(diào)用cr_restart函數(shù)恢復(fù)任務(wù)的執(zhí)行,當(dāng)MPI任務(wù)從cr_checkpoint函數(shù)的調(diào)用點(diǎn)返回時(shí),可以通過PTL模塊獲取新的任務(wù)信息,并通過環(huán)境變量中定義的參數(shù)和作業(yè)管理系統(tǒng)建立連接。
步驟3中,將更新后的MPI協(xié)議棧更新至MPI組件架構(gòu)具體包括:在更新MPI協(xié)議棧階段所有的任務(wù)都需要通過登記新的通信資源消息,然后使用PML接口在任務(wù)間進(jìn)行同步更新。
步驟4中,創(chuàng)建SCM模塊具體包括:更新后的MPI協(xié)議棧初始化后,使用MPI庫函數(shù)提供的MPI_COMM_WORLD函數(shù),其包括使用更新協(xié)議后的所有進(jìn)程,在原有通信域管理的基礎(chǔ)上,定義新的SCM模塊。
步驟5中,對OPEN MPI結(jié)構(gòu)內(nèi)部的上層接口進(jìn)行調(diào)整具體包括:調(diào)用MPI_Comm_rank函數(shù)來標(biāo)識各個(gè)MPI進(jìn)程,給出調(diào)用該函數(shù)的進(jìn)程的進(jìn)程號,設(shè)置函數(shù)MPI_Get_processor_name用于獲得計(jì)算機(jī)名,并存放在processor_name中,長度為namelen。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:
1,通過在MPI協(xié)議棧中使用SCTP-CMT(SCTP并行多路徑傳輸技術(shù))擴(kuò)展協(xié)議代替TCP協(xié)議,繼而與OPEN MPI相結(jié)合,提出了一種新的OPEN MPI框架模型。
2,本發(fā)明的方法對于高性能計(jì)算網(wǎng)絡(luò)的多宿主特性提供了端到端的高效通信,減少了高性能網(wǎng)絡(luò)中集群處理器之間不必要的通信,可以達(dá)到較小的通信時(shí)延、較高的頻帶利用率以及提高通信的可靠性。
附圖說明
圖1為本發(fā)明的OPEN MPI框架模型示意圖。
圖2為原始的Open MPI和修改過后的Open MPI的運(yùn)行情況比較圖。
具體實(shí)施方式
現(xiàn)結(jié)合附圖對本發(fā)明創(chuàng)造作進(jìn)一步的詳細(xì)說明。
基于將SCTP協(xié)議整合進(jìn)MPI協(xié)議棧的理論依據(jù),本發(fā)明的總體實(shí)施方案為:在MPI協(xié)議棧中用SCTP-CMT(SCTP并行多路徑傳輸技術(shù))來代替TCP,進(jìn)而與OPEN MPI相整合,構(gòu)建一種新的OPEN MPI框架模型。
OPEN MPI是一個(gè)性能優(yōu)異的平臺框架,在使用中提供一個(gè)基于組件的方法。這種基于開源軟件的模塊化結(jié)構(gòu)不僅能完全支持并發(fā)多線程應(yīng)用,匹配高性能計(jì)算的特性,也為我們解決實(shí)際問題提供較大的便捷性。
如圖1所示,在OPEN MPI的組件框架有幾個(gè)主要的模塊,每個(gè)模塊致力于單獨(dú)的任務(wù),例如提供并行任務(wù)控制或執(zhí)行MPI集合操作。一旦需要,系統(tǒng)會(huì)發(fā)現(xiàn)、加載、使用、卸載模塊。每個(gè)模塊有不同的機(jī)制和使用場景,有些在一個(gè)時(shí)刻只用一個(gè)模塊,而有些會(huì)同時(shí)用到所有模塊。
MPI組件架構(gòu)(MCA):是Open MPI的核心,為所有其它層次提供管理服務(wù)的基礎(chǔ)組件結(jié)構(gòu);MCA管理不同的組件框架以及每個(gè)框架管理不同的模塊,這些模塊都是一些可以在運(yùn)行時(shí)隨時(shí)部署的軟件單元。
PML(點(diǎn)到點(diǎn)管理層):PML的主要功能是為MPI層和所有可用的PTL模塊之間提供報(bào)文分段、調(diào)度和重新裝配服務(wù),對模塊起到管理作用。
PTL(點(diǎn)到點(diǎn)傳輸層):一個(gè)PTL模塊相當(dāng)于一個(gè)專用的網(wǎng)絡(luò)協(xié)議和設(shè)備,主要負(fù)責(zé)MPI進(jìn)程間字節(jié)傳遞的“有線協(xié)議”。PTL模塊需要識別MPI的語義,多個(gè)PTL模塊可以在一個(gè)進(jìn)程中使用,同時(shí)允許多個(gè)網(wǎng)絡(luò)的使用。
TEG:TEG為OPEN MPI提供了一種點(diǎn)到點(diǎn)的通信模塊,它具有的容錯(cuò)能力可以使通信鏈路中的頻帶利用率最大化。
IP模塊:OPEN MPI通過將信息分段到不同的NIC(網(wǎng)卡)上,通過部署其字節(jié)傳輸層的模塊來實(shí)現(xiàn)多路徑傳輸,每個(gè)動(dòng)態(tài)分配的IP地址綁定一個(gè)特定的子網(wǎng)模塊。
以下是具體實(shí)施步驟:
步驟1:創(chuàng)建SCTP-CMT(SCTP并行多路徑傳輸技術(shù))協(xié)議塊;調(diào)用MPI_INIT(IERROR)程序,它完成程序所有初始化工作,設(shè)置內(nèi)部傳輸協(xié)議為SCTP-CMT,建立起運(yùn)行的環(huán)境。
步驟2:將所述STCP-CMT作為代替TCP協(xié)議的模塊移植到MPI組件架構(gòu)的PTL模塊中;在文件系統(tǒng)中定位檢查點(diǎn)映像文件(我們在單機(jī)檢查點(diǎn)文件的命名方式中編碼任務(wù)的rank號),并根據(jù)MPI任務(wù)使用的STCP-CMP協(xié)議塊,重新建立每個(gè)MPI任務(wù)的PTL模塊,最后調(diào)用cr_restart()恢復(fù)任務(wù)的執(zhí)行,當(dāng)MPI任務(wù)從cr_checkpoint()的函數(shù)調(diào)用點(diǎn)返回時(shí),可以通過PTL模塊獲取新的任務(wù)信息,并通過環(huán)境變量中定義的參數(shù)和作業(yè)管理系統(tǒng)建立連接。
步驟3:將更新后的MPI協(xié)議棧更新至MPI組件架構(gòu);在更新MPI協(xié)議棧階段,所有的任務(wù)都需要通過登記新的通信資源消息,然后使用PMI接口在任務(wù)間進(jìn)行同步更新。
步驟4:基于更新后的MPI特性,在MPI組件架構(gòu)的PML模塊中創(chuàng)建SCM(基于SCTP-CMT的MPI)模塊,對更新后的MPI組件架構(gòu)起到管理作用;更新后的MPI協(xié)議棧初始化后,使用MPI庫函數(shù)提供的MPI_COMM_WORLD(),它包括了使用更新協(xié)議后的所有進(jìn)程,在原有通信域管理的基礎(chǔ)上,定義新的SCM模塊。
步驟5:對OPEN MPI結(jié)構(gòu)內(nèi)部的上層接口進(jìn)行調(diào)整,使其兼容新的框架模型。
更新后的MPI協(xié)議棧初始化后,使用MPI庫函數(shù)提供的MPI_COMM_WORLD(),它包括了使用更新協(xié)議后的所有進(jìn)程,在原有通信域管理的基礎(chǔ)上,定義新的SCM模塊。
在基于OPEN MPI中間件的SCTP-CMT經(jīng)過修改后,我們已經(jīng)進(jìn)行了一系列的通信基準(zhǔn)程序來評估性能指標(biāo)。
測試結(jié)果與分析:
圖2展示了原始的Open MPI和修改過后的Open MPI運(yùn)行情況,縮寫O-MPI表示最初的基于TCP的Open MPI,而M-MPI表示修改后的基于SCTP的Open MPI,總通信時(shí)間用秒來表示。仿真報(bào)告表明SCTP實(shí)現(xiàn)了比TCP更好的性能,減少廣域網(wǎng)中的MPI的總體通信延遲。這是因?yàn)镾CTP并沒有因?yàn)榱髁康目刂贫鴮?dǎo)致發(fā)送方發(fā)送速度降低,這使得SCTP更適合在廣域網(wǎng)的網(wǎng)絡(luò)環(huán)境中使用。本發(fā)明提出的方法改善了MPI在廣域網(wǎng)中應(yīng)用的適配性,進(jìn)而增強(qiáng)了車輛數(shù)據(jù)在廣域高性能計(jì)算網(wǎng)絡(luò)傳輸?shù)恼w性能。