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

一種基于gpu的異步圖數據處理系統(tǒng)的制作方法

文檔序號:8512962閱讀:514來源:國知局
一種基于gpu的異步圖數據處理系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明屬于圖數據處理和高性能計算領域,更具體地,涉及一種基于GPU的異步圖數據處理系統(tǒng)。
【背景技術】
[0002]大規(guī)模的圖數據處理,被越來越多的應用所涉及。傳統(tǒng)的單機圖處理系統(tǒng),對大規(guī)模的圖數據進行劃分、之后依序對數據塊進行處理,相比較于分布式系統(tǒng)編程的繁瑣,簡潔的單機系統(tǒng)得到了越來越多的關注。單機系統(tǒng)的關鍵,也就是解決由于圖數據劃分而帶來的磁盤訪問性能差、任務并發(fā)度低、設備內存帶寬利用率低等問題,在學術界,針對此類問題已經進行了一些積極探索和嘗試。
[0003]GraphChi 系統(tǒng)采用了新設計的滑動窗口 PSW(Parallel Sliding Window)算法,將磁盤數據分塊引入內存進行處理,流動地順序訪問磁盤數據,解決了由大量隨機磁盤訪問帶來的1開銷。但是這種數據劃分策略,將導致每次執(zhí)行的數據中存在有大量的數據訪問沖突,從而只會有很少的一部分進行并行處理,執(zhí)行效率很低。
[0004]TurboGraph系統(tǒng),在GraphChi系統(tǒng)的基礎之上,嘗試解決任務并行度低下的問題,采用Pin-and-slide編程模型,將部分數據固定在內存中,加快訪問效率,同時覆蓋了一部分1過程和CPU處理過程,提高并行度。但此系統(tǒng)受到內存容量限制,處理能力有限,很難高效地解決數據并發(fā)的問題。
[0005]隨著GPGPU技術的成熟,GPU被用來加速普通的計算任務成為一種趨勢。由于圖數據的頂點多、邊數多、數據依賴關系復雜等因素,多數的圖頂點處理任務十分適合使用GPU進行加速。在這方面,學術界也已經進行了一些研宄工作。
[0006]Medusa系統(tǒng)是近期開源的一個GPU架構的圖數據處理系統(tǒng),該系統(tǒng)設計了一套API接口,用戶可以方便地使用GPU來加速圖處理。但是該系統(tǒng)并沒有考慮數據劃分策略,更沒有嘗試解決GPU中任務并發(fā)度低的問題。
[0007]GraphLab系統(tǒng)引入鎖機制來解決數據訪問沖突和資源競爭等問題,但由于GPU自身結構特性,引入鎖機制反而會帶來更大的開銷,很難用來解決并發(fā)問題。

【發(fā)明內容】

[0008]針對當前單機圖處理系統(tǒng)的數據劃分策略效率低下,圖頂點處理任務并發(fā)度差的情況,本發(fā)明提出了一種基于GPU的異步圖處理系統(tǒng),兼顧GPU設備內存和主機內存之間的數據交換開銷問題,采用基于混合圖著色算法的數據劃分策略,提高數據并發(fā)度,充分利用GPU強大的并行處理能力,大幅提升單機圖處理性能。
[0009]為實現上述目的,本發(fā)明提供了一種基于GPU的異步圖處理系統(tǒng),包括數據預處理模塊、數據流管理模塊、異步執(zhí)行模塊和迭代處理模塊,其中:
[0010]所述數據預處理模塊,用于對原始圖數據進行預處理,采用混合著色算法,將原始圖數據劃分為一定數目的子數據,并保證每一個子數據中的頂點被分配得到的顏色相同,該模塊在CPU中執(zhí)行完成;
[0011]所述數據流管理模塊,用于管理CPU和GPU之間的數據交換,通過CUDA語言的支持,在CPU memory和GPU設備內存進行數據交換時,采用數據預取、多管道數據拷貝的方式,利用PC1-E的帶寬,并減少數據交換開銷;
[0012]所述異步執(zhí)行模塊,用于對拷貝到GPU設備內存中的數據進行異步執(zhí)行,將數據通過PC1-E輸送到GPU設備內存中,根據不同的算法需求,在保證數據一致性的同時,由GPU對數據執(zhí)行更新函數;
[0013]所述迭代處理模塊,用于根據圖算法迭代執(zhí)行的特征,在GPU執(zhí)行完成當前輪次的更新任務后,判斷是否達到算法要求的收斂條件,如果達到,則終止所有的更新任務;如果沒有達到收斂要求,則繼續(xù)由GPU對數據進行異步處理。
[0014]在本發(fā)明的一個實施例中,所述數據預處理模塊采用的混合著色算法具體為:采用N種顏色對原始圖數據進行著色,每個顏色包含的頂點數目分別為Pp P2, P3,…、Pn,根據卩,“ =1,2,3…η)值的大小,將最小的M種顏色混合在一起,從而形成(Ν-Μ+1)個著色單元,其中(N-M)個著色單元的所有頂點具有同一種顏色,另一個為混合著色單元。
[0015]在本發(fā)明的一個實施例中,所述數據預處理具體執(zhí)行過程為:根據混合著色算法的結果,將Ν-Μ+1個著色單元中的頂點分別劃分為獨立的Ν-Μ+1個數據塊,數據塊頂點所涉及的數據邊也整合在一個集合中;從而將原有圖數據劃分為Ν-Μ+1個具有獨立頂點和數據邊的子圖,其中N-M個子圖中,所有頂點均不會共享數據邊,另一個則為混合著色單元,不保證其中的部分頂點互相為鄰接點、共享數據邊。
[0016]在本發(fā)明的一個實施例中,所述數據流管理模塊包括數據預取模塊和多管道數據拷貝模塊,所述數據預取模塊用于在GPU kernel執(zhí)行更新任務時,對數據進行預取,提前準備GPU kernel所需要的數據,做到在kernel計算的同時進行數據傳送;所述多管道數據拷貝模塊用于根據不同著色單元對數據的需求不同,采用CUDA Stream的方式,在多管道中同時對數據進行拷貝,從而減少數據拷貝的開銷。
[0017]在本發(fā)明的一個實施例中,所述異步執(zhí)行模塊的異步執(zhí)行具體為:在執(zhí)行處理任務時,各個頂點不需要進行全局同步,直接將更新值推送給鄰接頂點,或者由鄰接頂點主動獲取最近的更新值,使得所有頂點都能夠在第一時間得到所需頂點和數據邊的最新值,從而保證每次更新都基于最新值,在保證計算過程中數據一致性的前提下,可以加快整個算法的收斂速度。
[0018]在本發(fā)明的一個實施例中,所述數據一致性是指在更新數據時,保證其他任一頂點在本頂點獲取到的值是最新的、統(tǒng)一的,避免由于值的差異導致計算無法收斂、甚至計算結果錯誤問題。
[0019]在本發(fā)明的一個實施例中,所述迭代處理模塊具體用于,在對圖算法進行迭代處理的過程中,通過設置迭代閾值的方式,來監(jiān)測每次迭代過程是否達到算法的收斂條件,如果前后兩次迭代計算的結果差異超過了迭代閾值,則繼續(xù)進行迭代計算;而如果前后兩次迭代計算的結果差異小于迭代閾值,則表明迭代計算已經沒有必要繼續(xù)進行下去,終止計算過程。
[0020]在本發(fā)明的一個實施例中,所述迭代處理模塊在監(jiān)測迭代過程是否達到算法收斂條件的策略,分為兩種:一是設定全局閾值,計算上一迭代輪次和當前迭代輪次各個頂點值之間的差異,當所有頂點的差異值均小于所設定的全局閾值時,則認為計算達到了收斂條件;二是設定閾值范圍,當圖數據中有一定數量的頂點達到了閾值即認為計算達到了收斂條件,而不一定保證所有的頂點都滿足了閾值要求。
[0021]與現有技術相比,本方法具有以下的有益效果:
[0022](I)優(yōu)化的數據劃分策略
[0023]基于混合圖著色算法的數據劃分策略,將大規(guī)模的圖數據,分割成多個數據塊,每一次只針對其中的一個子塊進行處理,可以有效解決了由于圖數據的規(guī)模過大、GPU內存有限,而不能直接進行處理的問題。同時,被分割到同一數據塊中的圖頂點,大多是不相鄰的弱關聯(lián)數據,可以同時被并發(fā)執(zhí)行,大幅提高任務并發(fā)力度。
[0024](2)高效的任務執(zhí)行效率
[0025]GPU被用來加速需要高并發(fā)處理的那部分任務。采用本發(fā)明的策略,在每一個子數據塊中,大多數的圖頂點可以被直接并發(fā)執(zhí)行,GPU的高并發(fā)能力得到發(fā)揮,可以高效地完成數據處理任務。當然,對于數據塊中存有的少量強關聯(lián)數據,可以交給CPU進行處理,這樣就實現了 CPU和GPU的協(xié)同工作,CPU負責順序執(zhí)行那些不易被并行執(zhí)行的數據,GPU則負責執(zhí)行并發(fā)度高的那部分圖數據,混合協(xié)作、高效地完成整個圖處理任務。
[0026](3)提高設備內存帶寬利用率
[0027]本系統(tǒng)采用基于混合圖著色算法的數據劃分策略,在進行數據劃分時,不僅考慮到任務并發(fā)問題,還不得不將一些只有少量頂點的分塊合并到其他分塊中,以此來減少數據置換次數,提高設備內存帶寬利用率,避免由于數據劃分策略本身帶來的額外系統(tǒng)開銷。
[0028](4)加快算法的迭代收斂速度
[0029]本系統(tǒng)采用異步編程模型對圖算法進行處理,由于此類算法本身具有迭代處理的特征,相比較于傳統(tǒng)的同步BSP模型中“計算-通信-等待”的三步處理過程,異步編程可以避免等待開銷,將最新的頂點值在計算完成的第一時間傳遞給鄰接點,結合系統(tǒng)中迭代處理模塊,極大地加快算法的迭代收斂速度。
[0030](5)方便普通用戶使用的GPU系統(tǒng)框架
[0031]本系統(tǒng)基于混合圖著色算法的的數據劃分策略,采用異步編程模型,實現了一個CPU和GPU混合架構的單機圖處理系統(tǒng),該系統(tǒng)將本著方便普通用戶使用的目標,在用戶只有少量GPU編程基礎和經驗的情況下,依然能夠滿足通過使用本系統(tǒng)框架,利用GPU來完成加速圖處理過程的目標。
【附圖說明】
[0032]圖1是GPU異步圖數據處理方法執(zhí)行流程;
[0033]圖2是混合著色算法和預處理模塊執(zhí)行流程示意圖;
[0034]圖3是GPU異步處理的執(zhí)彳丁流程不意圖。
【具體實施方式】
[0035]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0036]本發(fā)明采用基于混合圖著色算法的數據劃分策略,解決了圖數據處理的數據訪問沖突和GPU高并發(fā)性能之間的矛盾問題,高效地利用GPU的并行計算優(yōu)勢來加速圖數據處理過程。如圖1所示,本發(fā)明基于GPU的異步圖處理方法執(zhí)行流程如下:
[0037](I)數據預處理模塊,用于對原始圖數據進行預處理,采用混合著色算法,將原始圖數據劃分為一定數目的子數據,并保證每一個子數據中的頂點被分配得到的顏色相同,該模塊在CPU中執(zhí)行完成;
[0038]其中所述數據預處理模塊采用的混合著色算法具體為:采用N種顏色對原始圖數據進行著色,每個顏色包含的頂點數
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
墨江| 敦煌市| 广河县| 深圳市| 新营市| 焦作市| 汨罗市| 哈密市| 绥中县| 子长县| 丽水市| 普陀区| 平江县| 贵州省| 台南市| 孙吴县| 东兰县| 洛扎县| 墨玉县| 汨罗市| 达拉特旗| 天津市| 平泉县| 侯马市| 望江县| 岱山县| 调兵山市| 万荣县| 彩票| 河津市| 体育| 沐川县| 濮阳市| 城市| 南充市| 城固县| 满洲里市| 筠连县| 开江县| 长治市| 宜兰市|