亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種高效MPI設(shè)備層擴(kuò)展庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

        2017-02-22 08:01:39雷詠梅
        關(guān)鍵詞:端口號(hào)雙通道進(jìn)程

        方 鈴,雷詠梅

        (上海大學(xué) 計(jì)算機(jī)工程與科學(xué)學(xué)院,上海 200072)

        一種高效MPI設(shè)備層擴(kuò)展庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

        方 鈴,雷詠梅

        (上海大學(xué) 計(jì)算機(jī)工程與科學(xué)學(xué)院,上海 200072)

        PCI Express作為新一代的總線接口,能支持各個(gè)設(shè)備之間并發(fā)的數(shù)據(jù)傳輸。每個(gè)設(shè)備在要求傳輸數(shù)據(jù)時(shí)各自建立專(zhuān)用的傳輸通道,這樣的操作使得數(shù)據(jù)能夠高效傳輸,因此PCI Express互聯(lián)結(jié)構(gòu)已被廣泛地應(yīng)用到高性能領(lǐng)域。用PCI Express總線代替以太網(wǎng),不僅能實(shí)現(xiàn)不同設(shè)備之間高速的數(shù)據(jù)傳輸,而且能夠縮減結(jié)構(gòu)規(guī)模,并很好地應(yīng)用于工業(yè)等領(lǐng)域。但基于這種互聯(lián)結(jié)構(gòu)來(lái)實(shí)現(xiàn)并行程序運(yùn)行,需要設(shè)計(jì)和實(shí)現(xiàn)相應(yīng)的MPI設(shè)備層擴(kuò)展庫(kù),以實(shí)現(xiàn)不同板卡系統(tǒng)的進(jìn)程間通信。結(jié)合PCI Express互聯(lián)結(jié)構(gòu)特點(diǎn),基于MPICH的PMI KVS空間的功能,提出控制和數(shù)據(jù)雙通道的通信模式??刂菩畔⒁揽靠煽總鬏攨f(xié)議TCP進(jìn)行傳輸,數(shù)據(jù)信息通過(guò)高速的PCI Express總線進(jìn)行傳輸,以實(shí)現(xiàn)異構(gòu)系統(tǒng)之間高效的數(shù)據(jù)傳輸,并通過(guò)模擬實(shí)驗(yàn)證明了設(shè)備層擴(kuò)展庫(kù)的可行性。

        高性能;PCI Express互聯(lián)結(jié)構(gòu);MPI設(shè)備層擴(kuò)展庫(kù);雙通道

        1 概 述

        近年來(lái),隨著高效能技術(shù)的發(fā)展,各種高性能總線互聯(lián)技術(shù)層出不窮,包括嵌入式領(lǐng)域的RapidIO技術(shù)[1]、針對(duì)PC機(jī)的PCI Express技術(shù)[2]以及面向服務(wù)機(jī)群的InfiniBand技術(shù)[3]。其中,PCI Express作為新一代的總線接口,能夠通過(guò)交換器實(shí)現(xiàn)多臺(tái)設(shè)備之間通信的串行、點(diǎn)對(duì)點(diǎn)類(lèi)型的互聯(lián),而PCI Express的高速數(shù)據(jù)傳輸使其廣泛地應(yīng)用于高性能計(jì)算等領(lǐng)域[4-6]。

        同時(shí)還有基于FPGA的PCI Express接口的設(shè)計(jì)[7-8]。目前已提出的PCI Express總線互聯(lián)結(jié)構(gòu)中,通過(guò)母板PCI Express的插槽連接不同的帶有FPGA和ARM混合異構(gòu)的嵌入式子板,這些子板上運(yùn)行MPI[9]應(yīng)用進(jìn)程,而不同子板的應(yīng)用進(jìn)程之間通過(guò)PCI Express把數(shù)據(jù)傳輸給PC host,然后再由PC host把數(shù)據(jù)傳輸給目的板卡上的應(yīng)用進(jìn)程。用PCI Express代替以太網(wǎng)來(lái)傳輸數(shù)據(jù),能很好地解決網(wǎng)絡(luò)帶寬限制的問(wèn)題,而且該結(jié)構(gòu)規(guī)模較小,能很好應(yīng)用在工業(yè)等領(lǐng)域。然而基于這種互聯(lián)結(jié)構(gòu)實(shí)現(xiàn)并行程序運(yùn)行,需要設(shè)計(jì)和實(shí)現(xiàn)相應(yīng)的MPI設(shè)備層擴(kuò)展庫(kù),實(shí)現(xiàn)不同板卡系統(tǒng)的進(jìn)程間通信,軟件架構(gòu)如圖1所示。

        圖1 系統(tǒng)軟件架構(gòu)

        通過(guò)對(duì)MPI各個(gè)層次結(jié)構(gòu)的分析,文中提出一種構(gòu)建MPI設(shè)備層擴(kuò)展庫(kù)的實(shí)現(xiàn)方法。利用MPICH3的PMI KVS空間的功能[10],每個(gè)進(jìn)程通過(guò)PMI put操作保存本地節(jié)點(diǎn)端口等信息到本地KVS中,同時(shí)同步到遠(yuǎn)程服務(wù)端KVS,而其他節(jié)點(diǎn)通過(guò)PMI get操作獲取各節(jié)點(diǎn)所在端口等信息,從而建立通信關(guān)系。同時(shí)結(jié)合PCI Express互聯(lián)結(jié)構(gòu)的特點(diǎn),提出控制和數(shù)據(jù)雙通道的通信模式。一方面通過(guò)以太網(wǎng)傳輸必需的控制信息,另一方面使用高速的PCI Express傳輸數(shù)據(jù)信息,以實(shí)現(xiàn)這種嵌入式混合異構(gòu)系統(tǒng)運(yùn)算節(jié)點(diǎn)之間高效的數(shù)據(jù)傳輸。

        2 MPICH結(jié)構(gòu)的分析

        MPICH[11]作為MPI實(shí)現(xiàn)之一,也是目前主流的并行函數(shù)庫(kù),主要包括兩個(gè)工作:實(shí)現(xiàn)進(jìn)程管理;實(shí)現(xiàn)MPI庫(kù)接口。第一部分主要通過(guò)Hydra[12]的作業(yè)加載程序在每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)進(jìn)程管理代理PMP,并通過(guò)PMP在本地節(jié)點(diǎn)創(chuàng)建和管理應(yīng)用進(jìn)程。第二部分是通過(guò)分層、模塊化等方法實(shí)現(xiàn),層次結(jié)構(gòu)圖如圖2所示。

        MPI應(yīng)用程序接口MPIR動(dòng)態(tài)運(yùn)行庫(kù)ADI抽象設(shè)備接口CH3通道接口Nemesis層接口特定通信設(shè)備接口

        圖2 MPICH3層次結(jié)構(gòu)圖

        從分層結(jié)構(gòu)中可看出,要實(shí)現(xiàn)設(shè)備層擴(kuò)展庫(kù),需有MPI最后一層——特定通信設(shè)備接口層的相關(guān)實(shí)現(xiàn)。

        2.1 數(shù)據(jù)結(jié)構(gòu)

        MPICH3工程設(shè)計(jì)中體現(xiàn)出了面向?qū)ο笏枷搿PICH3中有許多重要的數(shù)據(jù)結(jié)構(gòu),比如:ADI層的進(jìn)程(MPID_PerProcess)、虛連接(MPIDI_VC)結(jié)構(gòu)和收發(fā)請(qǐng)求(MPID_Request)結(jié)構(gòu)等。

        設(shè)備層有兩個(gè)重要的結(jié)構(gòu)體:

        (1)struct MPID_nem_netmod_funcs,該結(jié)構(gòu)中定義了需要實(shí)現(xiàn)的初始化、發(fā)送、接收等回調(diào)函數(shù),在CH3層初始化時(shí),需要將實(shí)現(xiàn)好的MPID_nem_netmod_funcs_t指針傳遞到上層。而對(duì)于設(shè)備層已有實(shí)現(xiàn)的網(wǎng)絡(luò)設(shè)備,用戶要通過(guò)填寫(xiě)Makefile參數(shù)去選擇需要的設(shè)備層。

        (2)struct MPIDI_Comm_ops,包含主要的通信函數(shù),ADI層對(duì)函數(shù)指針進(jìn)行判斷,而且程序優(yōu)先調(diào)用struct MPIDI_Comm_ops內(nèi)函數(shù),主要函數(shù)有發(fā)送函數(shù)send、接收函數(shù)recv_posted、標(biāo)準(zhǔn)通信模式isend、同步通信模式irsend等。

        由于雙通道設(shè)計(jì)實(shí)現(xiàn)需要有初始化的過(guò)程,所以文中選擇只實(shí)現(xiàn)帶有初始化函數(shù)的結(jié)構(gòu)體MPID_nem_netmod_funcs中的函數(shù)。

        2.2 虛連接與請(qǐng)求管理

        虛連接是MPICH3 ADI層的一個(gè)重要結(jié)構(gòu)體,MPI的每一個(gè)應(yīng)用進(jìn)程都會(huì)維護(hù)一張自己的虛連接表,在ADI層初始化的時(shí)候,會(huì)為虛連接表分配空間,也就是初始化虛連接的每一個(gè)表項(xiàng),主要是根據(jù)進(jìn)程所在節(jié)點(diǎn),為各個(gè)進(jìn)程之間建立通信方式,并且虛連接表是以數(shù)組方式進(jìn)行存儲(chǔ)的。例如,現(xiàn)在0號(hào)進(jìn)程中要初始化VC數(shù)組的第二個(gè)下標(biāo)對(duì)應(yīng)的VC,也就是VC[1],這個(gè)VC[1]就是0號(hào)進(jìn)程和1號(hào)進(jìn)程間的虛連接。

        虛連接內(nèi)部包含了一個(gè)重要的結(jié)構(gòu)體struct MPIDI_CH3I_VC,該結(jié)構(gòu)體包含兩個(gè)重要的函數(shù),同時(shí)還包括虛連接自身的一個(gè)函數(shù),分別是iStartContigMsg、iSendContig、sendNoncontig_fn。它們都和發(fā)送相關(guān)。當(dāng)應(yīng)用程序調(diào)用MPI_Send時(shí),MPICH根據(jù)rank號(hào)取到對(duì)應(yīng)的VC,按照參數(shù)選擇調(diào)用以上三個(gè)VC中的函數(shù)。這三個(gè)函數(shù)需要在設(shè)備層擴(kuò)展庫(kù)進(jìn)行具體實(shí)現(xiàn),當(dāng)虛連接初始化時(shí)根據(jù)進(jìn)程是節(jié)點(diǎn)間還是節(jié)點(diǎn)內(nèi)選擇是否對(duì)VC的函數(shù)指針進(jìn)行賦值。

        由于MPI存在非阻塞通信,而且在實(shí)際數(shù)據(jù)發(fā)送過(guò)程中可能出現(xiàn)信道阻塞,所以需要有緩存。MPICH3設(shè)備層緩存和CH3層對(duì)接收請(qǐng)求的組織方式相同,都是以請(qǐng)求隊(duì)列[13]的形式存在的。當(dāng)出現(xiàn)阻塞時(shí),將消息封裝成請(qǐng)求并入隊(duì),等待出隊(duì)發(fā)送,所以設(shè)備層需要在虛連接內(nèi)維護(hù)一個(gè)請(qǐng)求隊(duì)列。對(duì)一個(gè)進(jìn)程來(lái)說(shuō),對(duì)應(yīng)所有其他進(jìn)程都有一個(gè)虛連接就有一個(gè)請(qǐng)求隊(duì)列,設(shè)備層擴(kuò)展庫(kù)的發(fā)送接口實(shí)現(xiàn)時(shí)需要利用請(qǐng)求隊(duì)列作為緩存。

        3 MPI設(shè)備層擴(kuò)展庫(kù)的設(shè)計(jì)

        設(shè)備層擴(kuò)展庫(kù)主要包括虛連接初始化和通過(guò)MPICH PMI KVS方法實(shí)現(xiàn)對(duì)控制數(shù)據(jù)傳輸雙通道的支持以及系統(tǒng)功能設(shè)計(jì)。

        3.1 虛連接初始化和自定義結(jié)構(gòu)體

        虛連接初始化接口,主要包括兩個(gè)步驟:第一是在作業(yè)初始化階段為進(jìn)程初始化與其他進(jìn)程之間調(diào)用過(guò)程;第二是初始化設(shè)備層相關(guān)數(shù)據(jù)結(jié)構(gòu)并保存到虛連接內(nèi)。結(jié)構(gòu)體MPIDI_CH3I_VC中有一個(gè)很重要的成員,該成員變量描述如下:

        union

        {

        char padding[MPID_NEM_VC_NETMOD_AREA_LEN];

        void*align_helper;

        }netmod_area;

        netmod_area中的char padding[]用來(lái)保存設(shè)備層重要的數(shù)據(jù)結(jié)構(gòu)到虛連接,文中需要保存的自定義結(jié)構(gòu)體如下:

        typedef struct{

        fileopt_t*fo; //設(shè)備文件描述符

        reqq_t send_queue; //發(fā)送隊(duì)列

        }MPID_nem_file_vc_area;

        typedef struct{

        int fd; //每一個(gè)進(jìn)程獲得的文件描述符

        MPIDI_VC_t*vc; //本進(jìn)程和目的進(jìn)程的虛連接

        int endpoint; //端口號(hào)

        }fileopt_t;

        通過(guò)這兩個(gè)結(jié)構(gòu)體可以保存需要操作的設(shè)備文件描述符和發(fā)送隊(duì)列以及端口號(hào)等。

        VC初始化的具體流程如下:

        (1)初始化iStartContigMsg、iSendContig、sendNoncontig_fn三個(gè)函數(shù)指針。

        (2)初始化發(fā)送隊(duì)列send_queue。

        (3)將文件描述符保存到對(duì)應(yīng)的虛連接結(jié)構(gòu)體。

        (4)得到各個(gè)目的進(jìn)程的business card,通過(guò)查詢server端得到端口號(hào)保存在相應(yīng)的虛連接結(jié)構(gòu)體中。

        3.2 控制和數(shù)據(jù)傳輸雙通道模式

        由于總線互聯(lián)結(jié)構(gòu)支撐軟件提供的操作設(shè)備方法無(wú)法像傳統(tǒng)TCP一樣,以IP地址作為主機(jī)標(biāo)識(shí)進(jìn)行數(shù)據(jù)傳輸,而它一般以端口作為主機(jī)標(biāo)識(shí),如PCI Express,而在進(jìn)程管理部分通過(guò)SSH等進(jìn)行遠(yuǎn)程控制訪問(wèn)。另一方面,數(shù)據(jù)傳輸是通過(guò)PCI Express總線,所以整體數(shù)據(jù)的流通是以控制和數(shù)據(jù)相分離的,控制信息主要是進(jìn)程管理相關(guān)的信息通過(guò)TCP進(jìn)行傳輸,而數(shù)據(jù)信息主要是發(fā)送、接收等通過(guò)PCI Express總線傳輸。

        但是發(fā)送數(shù)據(jù)時(shí),發(fā)送進(jìn)程需要知道接收進(jìn)程所在運(yùn)行板卡的端口,才能將數(shù)據(jù)準(zhǔn)確地發(fā)送給接收進(jìn)程。文中采用將端口號(hào)等信息和設(shè)定的key,如字符串“endpoint”,通過(guò)PMI_KVS_Put方法寫(xiě)入本地KVS中,再?gòu)恼麄€(gè)樹(shù)形結(jié)構(gòu)中層層提交到遠(yuǎn)程的Launch node端KVS中,其他進(jìn)程按照這個(gè)key值在對(duì)應(yīng)的進(jìn)程KVS中去查找需要的端口號(hào)等信息。因?yàn)槊恳粔K板卡有一個(gè)唯一的IP地址,也對(duì)應(yīng)一個(gè)唯一的端口,本地初始化時(shí)可以通過(guò)kernel提供的方法獲得端口號(hào),然后通過(guò)上面的方法進(jìn)行保存,在每個(gè)進(jìn)程虛連接初始化時(shí)通過(guò)PMI_KVS_Get方法查詢每個(gè)進(jìn)程rank值對(duì)應(yīng)的端口號(hào)等信息,并保存到虛連接中,流程如圖3所示。

        圖3 控制與數(shù)據(jù)雙通道結(jié)構(gòu)圖

        3.3 系統(tǒng)功能實(shí)現(xiàn)

        系統(tǒng)功能實(shí)現(xiàn)主要包括發(fā)送和接收功能。在上一節(jié)介紹的數(shù)據(jù)結(jié)構(gòu)中已說(shuō)明要實(shí)現(xiàn)struct MPID_nem_netmod_funcs中發(fā)送相關(guān)的函數(shù),其中三個(gè)函數(shù)的不同點(diǎn)在于調(diào)用iStartContigMsg時(shí),上層沒(méi)有創(chuàng)建request對(duì)象,而調(diào)用iSendContig和sendNoncontig_fn時(shí)已經(jīng)創(chuàng)建好request對(duì)象。因?yàn)镸PICH3考慮到request對(duì)象管理頻繁,造成資源的浪費(fèi),同時(shí)由于大量非阻塞通信的使用,需要對(duì)request對(duì)象進(jìn)行出隊(duì)入隊(duì)耗時(shí)的操作,就區(qū)分了兩種發(fā)送數(shù)據(jù)的方式。iStartContigMsg、iSendContig都是發(fā)送連續(xù)數(shù)據(jù),sendNoncontig_fn是發(fā)送非連續(xù)數(shù)據(jù)。和接收相關(guān)的需要在設(shè)備層擴(kuò)展庫(kù)實(shí)現(xiàn)的是MPID_nem_poll函數(shù)。

        當(dāng)進(jìn)程數(shù)據(jù)傳輸時(shí)發(fā)送進(jìn)程得到目的進(jìn)程的所在節(jié)點(diǎn)端口號(hào),先將端口以及要發(fā)送的數(shù)據(jù)大小等信息發(fā)送給PC host,然后將需要發(fā)送的數(shù)據(jù)發(fā)給PC host,最后由PC host轉(zhuǎn)發(fā)給相應(yīng)端口的節(jié)點(diǎn),所以這種互聯(lián)結(jié)構(gòu)的數(shù)據(jù)發(fā)送是通過(guò)PC host去中轉(zhuǎn),并非點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸。文中針對(duì)這種結(jié)構(gòu)定義了相應(yīng)的數(shù)據(jù)包格式以及數(shù)據(jù)的發(fā)送和接收方式。

        3.3.1 數(shù)據(jù)包格式

        發(fā)送方要向PC端發(fā)送的消息有兩種:一種是需要預(yù)先向PC發(fā)送接收方的端口號(hào)、進(jìn)程號(hào)等控制信息;另一種是向接收方發(fā)送的用戶數(shù)據(jù)。所以通過(guò)消息頭的ID字段將兩種消息進(jìn)行區(qū)分,同時(shí)定義兩種數(shù)據(jù)包的格式,如圖4所示。

        圖4 數(shù)據(jù)包格式

        ID字段:ID字段只有一位,當(dāng)ID為0時(shí),表示控制信息數(shù)據(jù)包,當(dāng)ID為1時(shí)表示用戶數(shù)據(jù)包。

        序列號(hào):根據(jù)進(jìn)程號(hào)為每個(gè)進(jìn)程分配連續(xù)的且不同的序列號(hào),保證同時(shí)一個(gè)端口不同進(jìn)程向PC端發(fā)送數(shù)據(jù)時(shí),可以以不同的序列號(hào)進(jìn)行區(qū)分。

        分片號(hào):當(dāng)數(shù)據(jù)以分片發(fā)送,分片號(hào)從1開(kāi)始,以分片號(hào)標(biāo)識(shí)每片數(shù)據(jù),當(dāng)數(shù)據(jù)不以分片發(fā)送,分片號(hào)字段為0。

        3.3.2 數(shù)據(jù)的發(fā)送與接收

        當(dāng)發(fā)送方向接收方發(fā)送數(shù)據(jù)時(shí),先為本次通信過(guò)程分配唯一的序列號(hào),再填充源端口號(hào)和目的端口號(hào),源進(jìn)程號(hào)和目的進(jìn)程號(hào)以及數(shù)據(jù)長(zhǎng)度信息,將控制信息數(shù)據(jù)包發(fā)送給PC端;PC端接收到控制信息數(shù)據(jù)包,得到目的端號(hào)和序列號(hào)等信息,并等待發(fā)送方發(fā)送數(shù)據(jù);發(fā)送方將數(shù)據(jù)發(fā)送給PC端;當(dāng)PC端接收到所有數(shù)據(jù)時(shí),將數(shù)據(jù)發(fā)送到目的端號(hào)。

        由于一塊板卡上運(yùn)行多個(gè)應(yīng)用進(jìn)程,而每一個(gè)進(jìn)程會(huì)從同一個(gè)端口讀取數(shù)據(jù),從而使得數(shù)據(jù)讀取混亂,所以文中采用為板卡上每一個(gè)進(jìn)程預(yù)設(shè)內(nèi)存緩沖池的方式存放PC端發(fā)送來(lái)的數(shù)據(jù)。當(dāng)設(shè)備層擴(kuò)展庫(kù)讀取數(shù)據(jù)時(shí),按進(jìn)程號(hào)讀取對(duì)應(yīng)緩沖池上的數(shù)據(jù),再拷貝到用戶數(shù)據(jù)區(qū)。發(fā)送與接收數(shù)據(jù)過(guò)程如圖5所示。

        4 實(shí)驗(yàn)結(jié)果及分析

        實(shí)驗(yàn)對(duì)MPI設(shè)備層擴(kuò)展庫(kù)的通信模式進(jìn)行驗(yàn)證。

        圖5 發(fā)送與接收數(shù)據(jù)過(guò)程

        實(shí)驗(yàn)環(huán)境:處理器為Intel(R) Core(TM) i3-2130 CPU@3.4 GHz;內(nèi)存為4GB;操作系統(tǒng)為Ubuntu 14.04.1。對(duì)用梯形積分法求面積的應(yīng)用進(jìn)行測(cè)試,應(yīng)用實(shí)例并行計(jì)算過(guò)程的通信關(guān)系如圖6所示。

        圖6 進(jìn)程通信關(guān)系和調(diào)用過(guò)程

        采用普通文件的方式進(jìn)行模擬實(shí)驗(yàn),測(cè)試功能包括MPI應(yīng)用程序接口中初始化、發(fā)送、接收功能的正確調(diào)用,以驗(yàn)證MPI設(shè)備層擴(kuò)展庫(kù)支持多進(jìn)程并行程序的正確運(yùn)行。

        梯形積分法求面積思想是將整個(gè)面積區(qū)域劃分成多個(gè)近似矩形區(qū)域,然后求解所有矩形面積之和。實(shí)驗(yàn)中計(jì)算y=x2與x=0,x=3圍成的區(qū)域面積。算法中預(yù)先將整個(gè)區(qū)域分成1 024小塊,再將這些小塊按照進(jìn)程數(shù)均等劃分。

        選取8、64、128個(gè)進(jìn)程分別進(jìn)行測(cè)試,運(yùn)行結(jié)果如下:

        root@node1:/home/fangling/github# /usr/fl1/mpi/bin/mpirun-np8 ./compute

        usetime:0.000 653,processsize:8,ourestimation=

        9.000 004 291 534 424e+00

        root@node1:/home/fangling/github# /usr/fl1/mpi/bin/mpirun-np64 ./compute

        usetime:0.043 264,processsize:64,ourestimation=

        9.000 004 291 534 424e+00

        root@node1:/home/fangling/github# /usr/fl1/mpi/bin/mpirun-np128 ./compute

        usetime:0.057 931,processsize:128,ourestimation=

        9.000 004 291 534 424e+00

        程序中以0號(hào)進(jìn)程作為master進(jìn)程,其他進(jìn)程作為slave進(jìn)程,每一個(gè)slave進(jìn)程計(jì)算自己的矩形面積,然后把結(jié)果發(fā)給master進(jìn)程。分別以3組進(jìn)程數(shù)啟動(dòng)MPI并行程序,過(guò)程中控制命令和數(shù)據(jù)傳輸運(yùn)行正確,并行程序運(yùn)行結(jié)果證明數(shù)據(jù)傳輸正確,程序結(jié)果運(yùn)行正確。

        上述實(shí)驗(yàn)驗(yàn)證了文中所設(shè)計(jì)的數(shù)據(jù)通信模式、數(shù)據(jù)包格式及數(shù)據(jù)的發(fā)送和接收方式準(zhǔn)確可行,所構(gòu)建的MPI通信庫(kù),可以有效實(shí)現(xiàn)基于PCIExpress的嵌入式混合異構(gòu)系統(tǒng)之間的數(shù)據(jù)傳輸。

        5 結(jié)束語(yǔ)

        文中利用PCIExpress結(jié)構(gòu)的特點(diǎn)和MPICH的PMIKVS空間,提出數(shù)據(jù)和控制雙通道的通信模式,并通過(guò)模擬實(shí)驗(yàn)驗(yàn)證了設(shè)備層擴(kuò)展庫(kù)接口的正確使用。下一步將開(kāi)發(fā)和移植典型應(yīng)用,并且進(jìn)行完善的性能測(cè)試以及性能優(yōu)化。

        [1]RapidIOTradeAssociation.RapidIOtechnologyoverviewandapplication[EB/OL].2008.http://www.rapidio.org/.

        [2]RaviBudrukR,AndersonD,ShanT.PCIExpress系統(tǒng)體系結(jié)構(gòu)標(biāo)準(zhǔn)教材[M].北京:電子工業(yè)出版社,2005.

        [3]InfiniBandTradeAssociation.AnInfiniBandtechnologyoverview[EB/OL].2008.http://www.infinibandta.org/.

        [4] 張偉達(dá),黃芝平,唐貴林.基于PCIExpress的高速數(shù)據(jù)傳輸系統(tǒng)研究與開(kāi)發(fā)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(12):2555-2557.

        [5] 馬 萍,唐衛(wèi)華,李緒志.基于PCIExpress總線高速數(shù)采卡的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(25):116-118.

        [6] 王 偉,傅其祥.基于PCIe總線的超高速信號(hào)采集卡的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2010,18(5):43-45.

        [7] 李木國(guó),黃 影,劉于之.基于FPGA的PCIe總線接口的DMA傳輸設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(1):233-235.

        [8]KavianipourH,MuschterS,BohmC.HighperformanceFPGA-basedDMAinterfaceforPCIe[J].IEEETransactionsonNuclearScience,2012,61(2):1-3.

        [9]MessagePassingInterfaceForum.MPI:amessage-passinginterfacestandardversion3.1[EB/OL].2015.http://www.mpi-forum.org/docs.

        [10]GrahmL,ShipmanM,BarrenW,etal.OpenMPI:ahigh-performanceheterogeneousMPI[C]//Proceedingsof2006IEEEinternationalconferenceonclustercomputing.Piscataway,NJ:IEEE,2006:1-9.

        [11]GroppW,LuskE,DossN,etal.MPICH:ahigh-performance,portableimplementationfortheMPImessage-passinginterface[J].ParallelComputing,1998,22(6):789-828.

        [12]ArgonneNationalLaboratory.Hydraprocessmanagementframework[EB/OL].2009.http://wiki.mpich.org/mpich/in-dex.php/Hydra_Process_Management_Framework.

        [13]KellerR,GrahamRL.CharacteristicsoftheunexpectedmessagequeueofMPIapplications[C]//Recentadvancesinthemessagepassinginterface-EuropeanMpiusersgroupmeeting.Stuttgart,Germany:[s.n.],2010:179-188.

        Design and Implementation of an Efficient MPI Device Layer Extension Libraries

        FANG Ling,LEI Yong-mei

        (School of Computer Engineering and Science,Shanghai University,Shanghai 200072,China)

        As a new generation of bus interface,PCI Express can support the concurrent data transmission between all kinds of devices,and each of these devices can establish their own transmission channel what is proprietary when it requires transmitting data,which makes the transmission of data more efficient.So PCI Express interconnect structure has also been applied to high performance areas.When Ethernet replaced by PCI Express,high speed transfer between different devices can be achieved,and the scale of the structure is effectively reduced,which can be well applied to the industry and other fields.But in order to run parallel programs based on this interconnect structure,it is necessary to design and implement the corresponding MPI device layer extension libraries,achieving that the process communication of different boards.The communication mode of control and data dual channel is presented taking advantage of the features of PCI Express interconnect structure and based on the function of MPICH PMI KVS space.Control information depends on reliable TCP to transmit and data information transmits via a high-speed PCI Express bus,so that efficient data transmission between heterogeneous systems can be implemented.The feasibility of device layer extension libraries is proved through the simulation experiment.

        high performance;PCI Express interconnect structure;MPI device layer extension libraries;dual channel

        2016-04-13

        2016-08-02

        時(shí)間:2017-01-10

        國(guó)家“863”高技術(shù)發(fā)展計(jì)劃項(xiàng)目(2009AA012201);上海市科研計(jì)劃重大項(xiàng)目(08dz501600)

        方 鈴(1989-),男,碩士研究生,研究方向?yàn)楦咝阅苡?jì)算;雷詠梅,博士,教授,研究方向?yàn)楦咝阅苡?jì)算。

        http://www.cnki.net/kcms/detail/61.1450.TP.20170110.1028.072.html

        TP302.1

        A

        1673-629X(2017)02-0006-05

        10.3969/j.issn.1673-629X.2017.02.002

        猜你喜歡
        端口號(hào)雙通道進(jìn)程
        近端胃切除雙通道重建及全胃切除術(shù)用于胃上部癌根治術(shù)的療效
        在Docker容器中安裝應(yīng)用程序
        債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
        淺談以java為基礎(chǔ)的Socket通信簡(jiǎn)介及實(shí)現(xiàn)
        青春歲月(2017年5期)2017-04-20 18:34:23
        采用6.25mm×6.25mm×1.8mm LGA封裝的雙通道2.5A、單通道5A超薄微型模塊穩(wěn)壓器
        Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
        基于Android系統(tǒng)的互動(dòng)展示APP的研究與設(shè)計(jì)
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        我國(guó)高等教育改革進(jìn)程與反思
        分類(lèi)高考能否打通“雙通道”
        国产精品久久1024| 欧洲美女熟乱av| 粗大猛烈进出白浆视频| 国产精品香蕉在线观看| 国产精品福利久久香蕉中文| 国产亚洲一区二区毛片| 欧美白人战黑吊| 日韩精品无码视频一区二区蜜桃| 97色偷偷色噜噜狠狠爱网站97| 中文字幕视频二区三区| 白嫩人妻少妇偷人精品| 99精品人妻少妇一区二区| 日韩中文无线码在线视频观看| 在线看不卡的国产视频| 人妻久久一区二区三区蜜桃| 色 综合 欧美 亚洲 国产| 日日摸夜夜欧美一区二区| 玖玖资源网站最新网站| 偷拍一区二区视频播放器| 免费无码黄动漫在线观看| 国产免费人成视频在线播放播| 一本一道av中文字幕无码| 中文字幕天堂网| 国内自拍视频在线观看h| 在线视频国产91自拍| 亚洲av日韩综合一区在线观看| 欧美人成在线播放网站免费| 国产精品国产三级农村妇女| 隔壁老王国产在线精品| 蜜桃av噜噜一区二区三区| 亚洲熟伦在线视频| 久久免费看的少妇一级特黄片| 色噜噜狠狠狠综合曰曰曰| 一本到无码AV专区无码| 久久久噜噜噜噜久久熟女m| 亚洲精品国精品久久99热| 无码夜色一区二区三区| 99久久国产一区二区三区| 国产精品国产高清国产专区 | 亚洲中文字幕无码一久久区| 狠狠色狠狠色综合日日92|