影音先锋日日狠狠久久|亚洲一区二区精品视频|美女视频免费看一区二区|久久久青青躁a∨免费观看|国产91av在线免费观看|91手机在线亚洲一区观看|亚洲一区二区三区久久久久久|久久综合给合久久狠狠狼974

 
 
新聞動態(tài)
NEWS
企業(yè)新聞
行業(yè)動態(tài)
 
企業(yè)新聞 當前位置:首 頁 > 新聞動態(tài) > 企業(yè)新聞
 
異構(gòu)分布式系統(tǒng)上的有限差分
文章來源:德明時代 更新時間:2016-8-4 23:30:30 閱讀次數(shù):
在本文中,我們將舉例介紹如何展開有限差分 (FD) 計算內(nèi)核,在分布式系統(tǒng)上運行。 此外,我們還將介紹一項技術(shù),展示如何處理不同節(jié)點或計算設備提供不同的計算速度時,異構(gòu)分布式系統(tǒng)出現(xiàn)的負載失衡的問題。 本文提供了一個示例源代碼,對我們的實施進行例證。

我們的構(gòu)建模塊是 FD 計算內(nèi)核,是地震成像 RTM (逆時偏移)算法中經(jīng)常用到的內(nèi)核。 ISO-3DFD (各向同性三維有限差分)stencil 執(zhí)行的計算在油氣調(diào)查和勘探復雜地下結(jié)構(gòu)精確成像方面起著重要作用。 在本文中,我們利用 [1] 和 [2] 中介紹的 ISO-3DFD 闡釋了簡單的基于 MPI 的分布式實施,支持分布式 ISO-3DFD 計算內(nèi)核在包括主要的英特爾® 至強™ 處理器和附加的英特爾® 至強融核™ 協(xié)處理器的混合硬件配置上運行。 此外,我們還對英特爾® 軟件工具進行了探索,以期幫助對負載均衡進行分析,提高性能和可擴展性。

分布式 ISO-3DFD

我們的說明案例是對 ISO-3DFD 計算 stencil 的一維分解。 我們設置了一個計算區(qū)域,該區(qū)域可跨所有 MPI 進程劃分。 對于此示例,我們在每臺計算設備(英特爾至強處理器或英特爾至強融核協(xié)處理器)上設置了一個 MPI 進程。 這一實施包括 MPI 進程之間(即處理器和協(xié)處理器之間)所需的 halo 交換。 當區(qū)域分解按照 [1, 2] 中描述的方式應用到 FD stencil 上時,應以每個算法時間步長為單位在子域內(nèi)實施 halo 交換。 這是因為靠近子域邊界的域的點值更新要求值在臨近子域上計算:

1
for(int k=1; k<=HL; k++)   
//Stencil Half-Length HL
2
          u_0 += W[k]*(
3
            U0(ix+k,iy  ,iz  ) + U0(ix-k,iy  ,iz  ) +
4
            U0(ix  ,iy+k,iz  ) + U0(ix  ,iy-k,iz  ) +
5
            U0(ix  ,iy  ,iz+k) + U0(ix  ,iy  ,iz-k));
三維 stencil 的階由其半長 (HL) 值定義:比如,一個模板的第八階 stencil 由其半長 HL=8/2=4 的值定義。 相鄰子域之間要交換的 halo 的寬度也等于 HL。

這一示例代碼使用對稱執(zhí)行模型:代碼在主處理器和協(xié)處理器上運行。 這可通過完全對稱的 MPI 執(zhí)行來完成,其中英特爾至強處理器和英特爾至強融核協(xié)處理器上可以運行不同的進程。 例如,假定有一個名為hostname1 的雙插座系統(tǒng),其中有兩個英特爾至強融核協(xié)處理器插卡(名為 hostname1-mic0 和hostname1-mic1)連接至系統(tǒng)的 x16 PCIe* 插槽。 同時假定有兩個可執(zhí)行二進制:rtm.cpu (面向處理器架構(gòu)編譯,如英特爾® 高級矢量擴展指令集 2(英特爾® AVX2)和 rtm.phi (面向英特爾至強融核協(xié)處理器架構(gòu)編譯)。 使用英特爾® MPI 庫,開發(fā)人員可在 MPI+OpenMP* 對稱模式執(zhí)行中同時利用兩個可執(zhí)行二進制:

mpirun \

-n 1 -host hostname1 -env I_MPI_PIN_DOMAIN=socket -env OMP_NUM_THREADS=14 ./rtm.cpu : \

-n 1 -host hostname1 -env I_MPI_PIN_DOMAIN=socket -env OMP_NUM_THREADS=14 ./rtm.cpu : \

-n 1 -host hostname1-mic0 –env OMP_NUM_THREADS=244 ./rtm.phi : \

-n 1 -host hostname1-mic1 –env OMP_NUM_THREADS=244 ./rtm.phi

上述簡化的單節(jié)點示例假定 rtm.cpu 和 rtm.phi 均按照 [1, 2] 中描述的方式通過 OpenMP 線程并行。 MPI 用來幫助在節(jié)點、處理器和協(xié)處理器之間交換和同步數(shù)據(jù)。 OpenMP 用來通過指定處理器或協(xié)處理器的內(nèi)核劃分 MPI 進程計算工作。 上述示例還可擴展至多個采用處理器和協(xié)處理器的節(jié)點。 請參見 [3],了解有關(guān) MPI 對稱模式執(zhí)行的更多詳情。

以下是簡化的 MPI harness: 1) 假定每個英特爾至強融核協(xié)處理器相當于一個獨立的計算節(jié)點,未使用卸載編程語法 2) 允許通過非阻塞 MPI 調(diào)用進行異步 halo 交換。 用鄰近子域覆蓋計算并交換 halo 需要在每個子域上考慮兩種計算區(qū)域:

本地計算:隨距離變化的點 > 距離鄰近邊界的 HL。 即,進行 stencil 計算的點僅取決于以前在同一個子域計算的值。
Halo 計算:隨距離變化的點 <= 距離鄰近邊界的 HL。 即,進行 stencil 計算的點僅取決于以前在同一個子域計算的值。
按計劃,我們應具備以下條件:



MPI 實施的風格是簡單的最近鄰居 halo 交換。 首先,使用緩沖區(qū) BufferPrev 和 BufferNext 發(fā)布鄰近子域所需的 halo 異步接收:



接下來,先更新 Halo 計算區(qū)域中的點,因為鄰近子域?qū)⑿枰@些點:



halo 計算區(qū)域中的更新值異步發(fā)送至鄰近域:



當進行異步 halo 交換后,本地計算區(qū)域內(nèi)的點可進行更新,因為這些計算不依賴于鄰近域的值:



然后,使用 MPI_Waitall 同步調(diào)用檢查異步 halo 交換的完成情況。 最后將傳輸緩沖區(qū) BufferPrev 和BufferNext 中接收到的值復制到子域:



實際實施可參見本文所附的示例源代碼包。 它包含一個運行在 ISO-3DFD 代碼(以前在 [1, 2] 中發(fā)布)上的 MPI 層。 每個 MPI 進程可通過硬件設置(如睿頻加速模式、超線程和 ECC 模式(英特爾至強融核協(xié)處理器))調(diào)整性能,也可通過軟件優(yōu)化調(diào)整高速緩存阻塞、線程關(guān)聯(lián)和數(shù)據(jù)預取距離進行調(diào)整。參考原文,了解有關(guān)單個進程優(yōu)化和調(diào)整的詳情。
 
上一條:通過參與編程馬拉松激勵女性加入創(chuàng)客社區(qū)    下一條:Win10年度更新版本號將是14393
 
 
網(wǎng)站首頁  |  關(guān)于我們  |  新聞動態(tài)  |  產(chǎn)品代理  |  客戶案例  |  服務與支持  |  招賢納士  |  聯(lián)系我們
Copyright 2016 北京德明時代科技有限公司 All Right Reserved. 備案號:京ICP備2022003760號-1
地址:北京海淀上地十街輝煌國際4號樓 渠道部電話:010-82176640 客戶部電話:010-82176192 企業(yè)QQ:24924727
氮氧化物分析儀  低氮燃燒器  水質(zhì)在線監(jiān)測儀發(fā)電機組 藍牙耳機方案 毛巾廠 毛巾廠家 工作服廠家 高陽縣泰晟織染有限公司 塑料窗紗 工作服定做 
在線客服
在線客服
24小時咨詢電話
010-82176640