999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenMP 的多機集群并行計算系統(tǒng)架構(gòu)設(shè)計

2022-03-02 12:42:56李曉琳高獻偉韓妍妍
關(guān)鍵詞:服務(wù)

李曉琳 高獻偉 韓妍妍

北京電子科技學(xué)院,北京市 100070

引言

進入21 世紀以來,物聯(lián)網(wǎng)、大數(shù)據(jù)等信息技術(shù)得到迅猛發(fā)展,引發(fā)重大的技術(shù)革新。 同時,信息資源等也變得十分復(fù)雜,導(dǎo)致信息化系統(tǒng)不斷變得龐大、復(fù)雜,隨之而來的是海量、巨大的信息量和計算量。 截至當(dāng)前,數(shù)據(jù)量已經(jīng)從TB 躍升到PB、EB 甚至ZB 的級別,數(shù)據(jù)的爆炸式增長以及其蘊含的巨大價值將對企業(yè)未來的發(fā)展產(chǎn)生深遠的影響,在此背景下,系統(tǒng)對數(shù)據(jù)的處理規(guī)模越來越大,傳統(tǒng)的軟件計算已經(jīng)無法滿足如此龐大數(shù)據(jù)處理規(guī)模,如何對數(shù)據(jù)進行快速、高效的處理是未來信息技術(shù)發(fā)展道路上關(guān)注的重點。

隨著現(xiàn)代科技和經(jīng)濟的發(fā)展,基于多核處理器的高性能計算機出現(xiàn)在許多大型工程、科學(xué)實驗的研究中,通過網(wǎng)絡(luò)將大量的服務(wù)器連接起來,具有超強的計算能力,能夠滿足大量計算的需求。 雖然如此,傳統(tǒng)的單機串行軟件編程方式無法充分利用多核處理器資源,計算機的性能無法得到充分地利用。 應(yīng)用程序要想充分發(fā)揮多核處理器的性能,必須采用并行計算的方式,提高軟件系統(tǒng)的運行效率[1]。

近幾年來,國外許多高校和科研機構(gòu)對并行算法進行設(shè)計、分析和實現(xiàn),并在并行優(yōu)化編譯、高性能I/O、通信技術(shù)等方面開展研究。 國內(nèi)一些高校和研究院投入了一些力量開展并行計算軟件應(yīng)用理論和方法的研究,并取得了一定的成果,到目前為止,并行計算技術(shù)已經(jīng)廣泛地應(yīng)用于計算數(shù)學(xué)、數(shù)字模擬、機械制造等領(lǐng)域。

本文基于《天地一體化網(wǎng)絡(luò)密碼按需服務(wù)關(guān)鍵技術(shù)及系統(tǒng)》,它是《天地一體化網(wǎng)絡(luò)信息安全保障技術(shù)的研究》中的一個子課題,它對天地一體化信息網(wǎng)絡(luò)中密碼資源跨域管理、海量密碼數(shù)據(jù)存儲等關(guān)鍵技術(shù)進行研究[2]。 由于天地一體化網(wǎng)絡(luò)具有復(fù)雜、多樣、異構(gòu)的特點,并包含多種多樣的密碼設(shè)備和資源,因此產(chǎn)生了海量的數(shù)據(jù),如何高效地處理海量的數(shù)據(jù)成為天地一體化信息網(wǎng)絡(luò)建設(shè)中研究的關(guān)鍵課題之一。

本文根據(jù)天地一體化跨域分層密碼按需服務(wù)的總體技術(shù)要求,基于OpenMP 技術(shù)開展多核并行程序設(shè)計方法的研究,并在此基礎(chǔ)上設(shè)計了一種多機集群并行計算系統(tǒng),旨在充分利用計算機性能,提高數(shù)據(jù)處理和計算的效率,解決天地一體化信息網(wǎng)絡(luò)對海量數(shù)據(jù)處理的需求。

1 關(guān)鍵技術(shù)研究

1.1 并行計算技術(shù)研究現(xiàn)狀

目前主流的并行計算技術(shù)主要有OpenMP、MPI(信息傳遞接口)和Spark(計算引擎)技術(shù),針對這幾種技術(shù)進行了調(diào)研分析對比。

(1)OpenMP

OpenMP 是一種基于共享內(nèi)存多處理器體系結(jié)構(gòu)的多線程并行編程模型,也是在共享存儲下編寫并行程序的一組API。 OpenMP 的規(guī)范由SGI 提出,獲得了微軟、Sun、Intel、IBM、HP 等軟硬件行業(yè)巨頭的認可和支持,目前支持的語言是C/C++和Fortran。

OpenMP1.0 標(biāo)準(zhǔn)誕生于1997 年。 2005 年,OpenMP 的結(jié)構(gòu)審議會(Architecture Review Board,ARB),推出了OpenMP2.5 標(biāo)準(zhǔn)。 2008年,OpenMP3.0 標(biāo)準(zhǔn)被退出,但目前使用最廣泛的還是2.5 標(biāo)準(zhǔn)。

OpenMP 中,CPU 中的多個處理單元(核)共享同一個內(nèi)存設(shè)備,所有的CPU 處理單元訪問相同的內(nèi)存空間地址,這些處理單元通過共享的內(nèi)存變量進行通信。 OpenMP 編程方式十分方便,現(xiàn)已成為一個工業(yè)標(biāo)準(zhǔn),支持多種平臺,包括大多數(shù)的類UNIX 系統(tǒng)和幾乎所有的Windows NT 系統(tǒng)等。 OpenMP 具有開發(fā)簡單、抽象度高、通用性好、可擴充性和可移植性強、支持并行的增量開發(fā)和數(shù)據(jù)并行等優(yōu)點,廣泛應(yīng)用于多核PC 環(huán)境下的并行程序設(shè)計。

(2)MPI

MPI 是一個庫,一種標(biāo)準(zhǔn)或規(guī)范的代表,一種消息傳遞編程模型。 MPI 是目前分布式內(nèi)存體系結(jié)構(gòu)中開發(fā)高性能計算應(yīng)用的標(biāo)準(zhǔn)。 它支持C,C++和Fortran 語言。 它采用將同一程序運行在眾多進程上的方式,這些進程不僅可以處于同一個共享內(nèi)存架構(gòu)的計算機中,也可以運行在眾多進程上的方式來實現(xiàn)。 每個進程都擁有各自的數(shù)據(jù),在不需要通訊時,各個進程異步地運行相同的代碼,對不同的數(shù)據(jù)進行相似的處理,在需要訪問其他進程上的數(shù)據(jù)時,通過MPI 標(biāo)準(zhǔn)中定義的數(shù)據(jù)通訊函數(shù)對數(shù)據(jù)進行遷移和處理,也可以對操作進行同步[3]。

MPI 是利用集群實現(xiàn)多節(jié)點并行計算,通過劃分任務(wù)進程,達到數(shù)據(jù)并行處理的目的。 MPI是在網(wǎng)格計算中使用的較為傳統(tǒng)并行方法,主要應(yīng)用在對于通訊效率要求低,通訊數(shù)據(jù)的數(shù)量較小,利用MPI 來進行集群并行計算。 相比于MPI 來說,OpenMP 是運行在進程上的并行處理模式,它將一個進程劃分為多個線程并實現(xiàn)線程同步執(zhí)行,實現(xiàn)可視化的并行處理。

MPI 提供了可移植性、標(biāo)準(zhǔn)化包括點對點消息傳遞和集體的操作,所有的范圍用戶指定的組的過程。 MPI 提供了一個實體集編寫、調(diào)試、測試和性能分步程序庫。 MPI 庫通常用于并行編程中集群系統(tǒng),因為它是一個消息傳遞編程語言。

(3)Spark

美國加州大學(xué)伯克利分校AMP 實驗室研發(fā)了Spark。 Spark 的性能可以超過Hadoop10 倍以上。 Spark 是基于Hadoop 的,并且構(gòu)建在HDFS之上,同時保留了MapReduce 的可擴展性和容錯性,但是,Spark MapReduce 不完全等同于Hadoop MapReduce。 Spark 主要由兩部分組成:第一部分是有很多執(zhí)行器的調(diào)度器,它可以進行任務(wù)調(diào)度、任務(wù)監(jiān)控以及故障處理。 第二部分是執(zhí)行器,執(zhí)行實際的計算和數(shù)據(jù)處理任務(wù)[4]。

Hadoop MapReduce 是一種大規(guī)模數(shù)據(jù)處理的并行計算模型。 Hadoop 是一個Master--Slave架構(gòu)模式,由一臺主節(jié)點和若干臺Slave 節(jié)點組成。 其中主節(jié)點負責(zé)管理和監(jiān)控各個Slave 節(jié)點的任務(wù)執(zhí)行情況,包含一個Master 服務(wù)Job-Tracker(作業(yè)服務(wù)器)用于接收Job,它的任務(wù)是將作業(yè)分配給等待的節(jié)點。 Slave 節(jié)點負責(zé)具體的任務(wù)執(zhí)行,包含一個Slave 服務(wù)TaskTrack(任務(wù)服務(wù)器),它負責(zé)與JaoTracker 通信并接收作業(yè),再根據(jù)每個節(jié)點的拆分數(shù)據(jù),進行Map 和Reduce。 每個Slave 節(jié)點是并行執(zhí)行,提高了計算效率。 簡單而言可以將MapReduce 編程模型抽象成“Map(映射)”和“Reduce(化簡)”兩個過程,Hadoop MapReduce 計算模式的流程圖見圖1[5-6]。

圖1 Hadoop MapReduce 計算模式的流程圖

具體過程為:程序從分布式文件系統(tǒng)讀入大數(shù)據(jù)集,并切分為Split(分片),Map 函數(shù)處理Split 并輸出中間結(jié)果,通過Shuffle 把中間結(jié)果分區(qū)排序整理后發(fā)送給Reduce 函數(shù),Reduce 完成具體計算任務(wù)并將最終結(jié)果寫入文件系統(tǒng)。

1.2 技術(shù)可行性分析

OpenMP 集成在C++中,與系統(tǒng)適配性好,開發(fā)簡單,對軟件系統(tǒng)改造十分方便,可移植性強,但是OpenMP 只支持單機并行計算,而且通過線程實現(xiàn)通信,多線程間資源共享;MPI 支持多機并行計算,通過進程實現(xiàn)并行計算,具備資源隔離特點;但是通訊效率要求低,通迅數(shù)據(jù)量較小;Spark 支持多機并行計算,可抗展性和容錯能力強,但是計算性能有待提高。

通過綜合分析,OpenMP、MPI、Spark 都能夠?qū)崿F(xiàn)并行計算,但是均不滿足海量數(shù)據(jù)的處理和計算的需求。 在天地一體化網(wǎng)絡(luò)中,網(wǎng)絡(luò)之間的數(shù)據(jù)通信量在百兆以上,而且數(shù)據(jù)的種類多,MPI 和Spark 技術(shù)均無法實現(xiàn),因此,在單機OpenMP 并行計算的基礎(chǔ)上開展多機集群并行計算架構(gòu)設(shè)計,既能夠滿足大數(shù)據(jù)通信,又能夠保證計算性能。

2 平臺架構(gòu)設(shè)計

2.1 總體架構(gòu)設(shè)計

并行集群計算系統(tǒng)可部署在普通計算機或服務(wù)器上,支持在多種架構(gòu)CPU、多種操作系統(tǒng)上運行,并行計算系統(tǒng)由并行計算服務(wù)中心、計算節(jié)點和客戶端模塊組成[7-8]。 本文中,在傳統(tǒng)單機OpenMP 并行計算的基礎(chǔ)上,擴展了多個計算節(jié)點,通過統(tǒng)一的計算服務(wù)中心控制,開展多機集群計算。 并行計算系統(tǒng)中只有一個計算服務(wù)中心,可以有多個計算節(jié)點,每個計算節(jié)點中包含計算程序,負責(zé)具體的計算任務(wù),在計算程序中增加OpenMP 指令設(shè)置,運行中支持多核多線程并行計算。 計算服務(wù)中心負責(zé)接收客戶端發(fā)起的計算請求,通過監(jiān)控各計算節(jié)點的工作狀態(tài)向計算節(jié)點分配計算任務(wù),各節(jié)點完成計算任務(wù)后,將計算結(jié)果發(fā)送到計算服務(wù)中心,所有的計算結(jié)果數(shù)據(jù)整理后,發(fā)送給客戶端。 客戶端、并行計算服務(wù)中心、計算節(jié)點間采用TCP 和UDP 通信。 并行計算系統(tǒng)總體架構(gòu)見圖2。

圖2 并行計算系統(tǒng)總體架構(gòu)圖

計算服務(wù)中心可以為多個計算用戶服務(wù),計算用戶通過配置集群服務(wù)地址獲取計算服務(wù)心跳報文,從中得到TCP 通信網(wǎng)址和端口號,使用TCP 通信方式加入計算服務(wù)中心,通過已經(jīng)建立的TCP 通信鏈路向并行計算服務(wù)中心發(fā)送計算請求報文,計算服務(wù)中心完成計算后,通過TCP 通信鏈路向計算用戶發(fā)送計算結(jié)果報文。計算服務(wù)中心可以控制多個計算節(jié)點進行計算,每個計算節(jié)點以UDP 組播的方式向指定組播地址發(fā)送計算節(jié)點狀態(tài)報文,計算服務(wù)中心通過該報文掌握各個計算節(jié)點的工作狀態(tài),同時計算節(jié)點與計算服務(wù)中心建立TCP 通信鏈路,計算服務(wù)中心通過該TCP 通信鏈路向計算節(jié)點發(fā)送計算命令報文,計算節(jié)點接收到計算命令報文后,開始進行計算,完成計算后,通過TCP 通信鏈路向計算服務(wù)中心發(fā)送計算結(jié)果報文。

2.2 計算服務(wù)中心設(shè)計

計算服務(wù)中心由計算服務(wù)分配處理模塊、顯示控制模塊、計算服務(wù)狀態(tài)發(fā)布模塊、計算節(jié)點狀態(tài)監(jiān)控模塊、計算用戶通信服務(wù)、計算節(jié)點通信服務(wù)6 部分組成。 計算服務(wù)中心組成關(guān)系如圖3 所示。

圖3 計算服務(wù)中心組成關(guān)系圖

計算服務(wù)分配處理模塊實現(xiàn)計算服務(wù)計算量評估、計算服務(wù)管理、計算節(jié)點計算結(jié)果管理、計享節(jié)點異常監(jiān)控及處理等功能。 計算服務(wù)分配處理模塊接收到計算用戶的請求后,進行計算服務(wù)計算量評估,再根據(jù)當(dāng)前計算節(jié)點狀態(tài),向計算節(jié)點發(fā)送計算命令,等待收集到完整的計算節(jié)點數(shù)據(jù)后,整理計算結(jié)果,通過計算用戶通信服務(wù)將計算結(jié)果發(fā)送給計算用戶。

顯示控制模塊實現(xiàn)并行計算服務(wù)中心啟動/停上控制、實時顯示計算節(jié)點工作狀態(tài),實時顯示計算服務(wù)狀態(tài)等功能。

計算服務(wù)狀態(tài)發(fā)布模塊實現(xiàn)計算服務(wù)通信參數(shù)發(fā)布、計算節(jié)點通信參數(shù)發(fā)布等功能。

計算節(jié)點狀態(tài)監(jiān)控模塊實現(xiàn)UDP 組播通信初始化、計算節(jié)點狀態(tài)監(jiān)控處理等功能。

計算用戶通信服務(wù)實現(xiàn)TCP 通信初化、TCP通信服務(wù)管理、TCP 數(shù)據(jù)接收處理、TCP 數(shù)據(jù)發(fā)送處理等功能。

計算節(jié)點通信服務(wù)實現(xiàn)TCP 通信初始化、TCP 通信服務(wù)管理、TCP 數(shù)據(jù)接收處理、TCP 數(shù)據(jù)發(fā)送處理等功能。

2.3 計算節(jié)點設(shè)計

計算節(jié)點有計算節(jié)點通信參數(shù)處理模塊、通信處理模塊、計算處理模塊、顯示控制模塊、計算節(jié)點狀態(tài)處理模塊5 部分組成。 計算節(jié)點組成關(guān)系圖見圖4。

圖4 計算節(jié)點組成關(guān)系圖

計算節(jié)點通信參數(shù)處理模塊在程序初始化的時候,加入指定UDP 組播地址,接收計算服務(wù)中心心跳報文,獲取計算節(jié)點TCP 通信參數(shù)供通信處理模塊使用。

通信處理模塊根據(jù)結(jié)算節(jié)點通信參數(shù)處理模塊提供的TCP 通信參數(shù)初始化TCP 通信鏈路,在整個程序運行過程中,負責(zé)TCP 通信數(shù)據(jù)接收、數(shù)據(jù)發(fā)送的處理。

計算處理模塊實現(xiàn)計算機多核狀態(tài)監(jiān)控、單機并行計算處理等功能。

顯示控制模塊實現(xiàn)計算機多核狀態(tài)監(jiān)控顯示、計算狀態(tài)顯示等功能。

計算節(jié)點狀態(tài)處理模塊實現(xiàn)計算節(jié)點狀態(tài)UDP 組播發(fā)送功能。

2.4 客戶端模塊設(shè)計

客戶端模塊由計算服務(wù)通信參數(shù)處理模塊、通信處理模塊、計算服務(wù)處理模塊組成。 客戶端模塊組成關(guān)系圖見圖5。

圖5 客戶端模塊組成關(guān)系圖

計算服務(wù)通信參數(shù)處理模塊在程序初始化的時候,加入指定UDP 組播地址,接收計算服務(wù)心跳報文,獲取計算用戶的TCP 通信參數(shù)供通信處理模塊使用。

通信處理模塊根據(jù)計算服務(wù)通信參數(shù)處理模塊提供的TCP 通信參數(shù)初始化TCP 通信鏈路,在整個程序運行過程中,負責(zé)TCP 通信數(shù)據(jù)接收、數(shù)據(jù)發(fā)送的處理。

計算服務(wù)模塊為應(yīng)用程序提供計算輸入、輸出接口。

3 系統(tǒng)驗證

(1)測試環(huán)境

本文中使用單臺高性能計算機進行測試,計算機性能指標(biāo)如下:

CPU:Inter Xeon E5-2640 @2.4GHz(雙處理器40 核)

內(nèi)存:64G

操作系統(tǒng):Windows7 64 位

(2)測試方法

編寫測試程序?qū)?0000 個隨機整數(shù)進行冒泡排序,分別計算1 次、2 次、4 次、8 次、24 次、40次,計算過程中分別設(shè)置1 核、2 核、4 核、8 核、24 核、40 核并行計算,每組測試進行3 次,取運行結(jié)果的平均值。

(3)測試結(jié)果

測試結(jié)果如表1 所示。

表1 單機計算時間測試結(jié)果

由測試數(shù)據(jù)可以看出,通過應(yīng)用并行計算技術(shù),用40 核同時對測試程序計算40 次,平均用時2.859s,相比于非并行的49.26:速率提高了17.23 倍。 通過使用不同核數(shù)對同一測試程序進行測試,發(fā)現(xiàn)隨著使用核數(shù)的增加,與提升運算效率的倍數(shù)并不是線性關(guān)系,由于存在多核并行分配處理、數(shù)據(jù)回收處理,使用核數(shù)越多,多核并行分配處理、數(shù)據(jù)回收處理占用的時間比重就越多,因此,在并行計算設(shè)計過程中,應(yīng)根據(jù)具體的數(shù)據(jù)處理需求分配計算核數(shù),以達到最優(yōu)的效率。

目前OpenMP 并行計算大多使用單機運行,從理論上分析如果能夠使用多臺計算機同時進行計算,將多計算任務(wù)進行分發(fā)處理,能夠使計算效率得到進一步提升。 本次測試驗證僅使用單臺計算機進行測試,后續(xù)將針對多臺計算機進行補充研究測試。

4 結(jié)束語

本文針對天地一體化信息網(wǎng)絡(luò)對大數(shù)據(jù)計算處理的需求,開展多機集群并行計算架構(gòu)設(shè)計,對OpenMp、MPI 和Spark 技術(shù)進行調(diào)研分析,設(shè)計了一種基于OpenMP 的多機集群并行計算系統(tǒng),并通過試驗驗證對并行計算的性能進行測試,試驗表明該應(yīng)用了并行計算系統(tǒng),使計算速度提升了十幾倍,有效提高了數(shù)據(jù)計算和處理效率,可廣泛應(yīng)用于天地一體化信息網(wǎng)絡(luò)中大數(shù)據(jù)的處理和計算。

猜你喜歡
服務(wù)
自助取卡服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
高等教育為誰服務(wù):演變與啟示
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 国产精品尤物在线| 欧美自慰一级看片免费| 国产青青操| 久久这里只有精品23| 黄色网页在线播放| 91美女视频在线| 在线观看国产黄色| 亚洲永久视频| 亚洲一区二区三区中文字幕5566| 四虎影视库国产精品一区| 国产成人综合网在线观看| 午夜精品久久久久久久99热下载| 天天躁夜夜躁狠狠躁躁88| 最新国语自产精品视频在| 亚洲国产天堂久久综合226114| 日本亚洲国产一区二区三区| 亚洲女同欧美在线| 午夜成人在线视频| 国产av色站网站| 色综合婷婷| 国内老司机精品视频在线播出| 美女被操91视频| 国产va在线观看免费| 人人妻人人澡人人爽欧美一区| 欧美日韩国产精品va| 亚洲精品无码成人片在线观看 | 久久精品日日躁夜夜躁欧美| 久久久久久午夜精品| 日本草草视频在线观看| 免费观看无遮挡www的小视频| 精品久久综合1区2区3区激情| 日韩精品中文字幕一区三区| 久久久久免费看成人影片| 精品精品国产高清A毛片| 国产极品美女在线| 亚洲国产午夜精华无码福利| 国产精品网曝门免费视频| 国产性爱网站| 欧美色综合网站| 幺女国产一级毛片| 999国内精品久久免费视频| 免费xxxxx在线观看网站| 国产精品自在自线免费观看| a天堂视频| 中文字幕有乳无码| 一级毛片免费不卡在线| 日韩亚洲综合在线| 色噜噜狠狠色综合网图区| 日本国产精品一区久久久| 亚洲丝袜中文字幕| 日韩无码黄色网站| 福利在线一区| 美臀人妻中出中文字幕在线| 欧美中日韩在线| 日韩福利在线观看| 国产成人免费手机在线观看视频 | 国产欧美日韩另类精彩视频| 国产一区二区三区在线观看视频| 欧洲日本亚洲中文字幕| 97视频精品全国在线观看| 成年人视频一区二区| 亚洲国产成人麻豆精品| 99精品视频九九精品| 欧美精品成人一区二区视频一| 国内精品久久久久久久久久影视| 伊人大杳蕉中文无码| 一区二区三区成人| 毛片网站在线播放| 免费人成在线观看成人片| 亚洲最大综合网| 欧美在线观看不卡| 又猛又黄又爽无遮挡的视频网站| www.精品国产| 啦啦啦网站在线观看a毛片| 欧美a级完整在线观看| 国产一级视频在线观看网站| 色吊丝av中文字幕| 最新国语自产精品视频在| 99re在线观看视频| 亚洲精品午夜无码电影网| 午夜丁香婷婷| 久久国产精品夜色|