国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

OpenMP環(huán)境下線積分卷積的并行化實現

2020-07-14 13:01:33符曉單
理論與創(chuàng)新 2020年10期
關鍵詞:線程高斯矢量

【摘? 要】線積分卷積是矢量場可視化的重要的方法之一,但是由于需要對每個矢量點進行卷積積分計算,因而計算量較大。CPU多核環(huán)境下的并行實現是現在并行計算技術發(fā)展的方向之一。本文在OpenMP 環(huán)境下實現了線積分卷積的并行化。結果表明,隨著CPU核數的增加,并行線積分卷積的時間逐漸降低,加速比逐漸增加。

【關鍵詞】線積分卷積;OpenMP

Abstract:Line integral convolution is one of the most important methods for vector field visualization. However, it requires the convolution integral calculation for each vector point. Parallel implementation in CPU multi-core environment is one of the development directions of parallel computing technology. In this paper, the parallelization of line integral convolution is realized by OpenMP in a multi-core environment. The results show that the time of parallel line integral convolution decreases and the acceleration ratio increases with the increase of CPU cores.

KeyWords: Line integral convolution; OpenMP

引言

基于線積分卷積(Linear Integral Convolution, LIC)的矢量場可視化是目前矢量場可視化最常用的方法之一。其核心思想是白噪聲疊加矢量場數據對矢量場運動信息進行可視化,能夠很好的表示矢量場運動方向特性,且易于實現,因此對于矢量場的可視化具有重要意義。但同時該方法也存在不足:積分過程計算量大,需要對流線上的每一點進行積分卷積。在積分過程中即使采用最簡單的歐拉積分方法,計算量也不容小覷。針對LIC算法計算量大的問題。文獻[1]實現了基于平行坐標的LIC矢量場可視化,并根據netcdf格式數據的特點,提出了基于netcdf數據生成流線的方法。

針對LIC算法積分過程計算量大,計算速度慢的問題,文獻[2]中利用GPU的多線程技術,基于cuda平臺對LIC算法的計算部分實現并行化,獲得了較高的加速比。此外,采用GPU實現LIC并行化的研究如文獻[3]。然而基于GPU的并行化通常情況下需要對串行LIC代碼進行重構,工作量較大,此外,還需要在內存與顯存之間頻繁拷貝數據。

文獻[4]通過LIC算法模擬高分辨率的矢量場數據,在Windows集群環(huán)境下采用MPI實現了并行化,結果顯示并行化后的算法能夠大幅度縮短計算可視化時間,且與原來串行計算的圖像結果一致?;贛PI的LIC的并行化具有良好的擴展性,能靈活的擴充與減少節(jié)點,但是該并行模式在通常情況下需要計算機集群,且并行加速比不僅依賴算法的優(yōu)化,更加依賴計算集群底層網絡的傳輸,即底層網絡的帶寬往往成為制約提高并行加速比的瓶頸。

隨著計算機多核CPU技術的不斷進步,共享存儲器編程因其能充分發(fā)揮各個CPU核的潛力而成為最受青睞的編程模式之一。共享存儲器編程的優(yōu)點是通過共享內存實現線程之間的數據通信,減少網絡之間的數據傳輸,各個線程通過加鎖的方式實現對共享內存的讀寫。常用的共享存儲器編程方式包括OpenMP,及調用操作系統(tǒng)API實現多線程等方式。本文將采用OpenMP方式實現線積分卷積的并行化。

1.線積分卷積

線積分卷積是通過跟蹤矢量場數據,形成矢量,然后在矢量方向性卷積高斯白噪聲從而達到矢量場數據的可視化,具體公式如下:

F(x)表示輸出像素點的灰度值,T(s)表示高斯白噪聲灰度圖像值,k(s)為卷積核函數,積分長度為2L。對于輸入的矢量場數據中的每一個點都需要計算流線,并依據上式輸出積分卷積值作為輸出結果。

2.OpenMP并行實現

本文主要對計算過程中的主要循環(huán)迭代加入OpenMP指令實現并行化。即對線積分卷積的迭代跟蹤流線和卷積的過程通過加入OpenMP的并行指令 #pragma omp parallel 的方式實現該過程的并行化。

LIC算法的積分過程需要對每一個點沿著矢量方法進行積分計算,計算完成之后根據卷積核函數對高斯白噪聲進行卷積計算,卷積完成之后更新圖形對應位置的像素值。根據LIC算法的特點,可以設置矢量場數據及高斯白噪聲數據為各個OpenMP線程所共享,這樣可以減少線程之間的數據通信,減少并行開銷。在OpenMP編譯指令中加入“default(shared)”子句實現默認數據的共享,共享數據包括矢量場數據,高斯白噪聲及輸出圖像數據。在OpenMP編譯指令中加入“private”子句實現循環(huán)變量的私有。

3.結果分析

本文在一臺8核CPU機器上實現線積分卷積的并行化。為了較好的衡量并行結果,本文設置的線積分卷積的并行計算規(guī)模分別為1000*1000、2000*2000。線積分卷積并行計算規(guī)模為1000*1000、2000*2000時計算時間分別為表1、表2。對應的加速比分別對應圖1,、圖2。

由以上2個表格的計算時間可以得到,隨著CPU核數的增加,并行LIC算法的計算時間逐漸減少。加速比逐漸增加。在CPU核數較高(CPU核數為6、8時)時,兩個問題規(guī)模計算時間大幅度減少,均能獲得較高的加速比。在CPU核數為8,兩種問題規(guī)模的加速比達分別達到3.78、3.48。然而在CPU增加過程中,加速比并沒有線性增加,這主要是因為兩個問題規(guī)模并行開銷增加。對于OpenMP來說,并行開銷主要包括線程的私有資源的分配、同步等開銷增加。

綜上,并行化后的LIC算法隨著CPU核數的增加,運算時間逐漸降低,逐漸獲得較高的加速比。隨著并行開銷的增加,并行化的效率逐漸降低。此外,負載均衡與否也是影響并行效率的一個重要因素。

參考文獻

[1] 宋揚揚.基于平行坐標的線積分卷積矢量場可視化方法研究[D].秦皇島:燕山大學.2016

[2] 吳占斌.基于 GPU 的二維矢量場可視化線性積分卷積方法的研究與實現[D] 青島:中國海洋大學. 2011

[3]詹芳芳.線積分卷積二維矢量場可視化方法的研究和改進[D].北京:北京化工大學2013

[4]劉天佳.基Fast-LIC的矢量場并行可視化方法研究[D]. 哈爾濱:哈爾濱工程大學 2017

作者簡介:符曉單(1985--),男,博士研究生,從事并行程序設計。

猜你喜歡
線程高斯矢量
小高斯的大發(fā)現
矢量三角形法的應用
天才數學家——高斯
淺談linux多線程協(xié)作
基于矢量最優(yōu)估計的穩(wěn)健測向方法
三角形法則在動態(tài)平衡問題中的應用
有限域上高斯正規(guī)基的一個注記
色料減色混合色矢量計算
出版與印刷(2013年3期)2013-01-31 03:26:11
Linux線程實現技術研究
么移動中間件線程池并發(fā)機制優(yōu)化改進
白玉县| 腾冲县| 屯门区| 临潭县| 神木县| 酒泉市| 渝中区| 铁岭县| 商都县| 牙克石市| 喜德县| 秭归县| 福海县| 洪洞县| 泰宁县| 安陆市| 黔南| 龙江县| 郓城县| 泾阳县| 阿克苏市| 新闻| 永吉县| 闽清县| 金华市| 曲阳县| 时尚| 南华县| 宁蒗| 洞口县| 扶余县| 富民县| 神农架林区| 绩溪县| 渭南市| 长泰县| 米林县| 吉林市| 石楼县| 永和县| 张家川|