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

Spark平臺在單光子成像測量矩陣生成與評估中的應用

2019-08-14 10:02:22王興達劉雪峰
計算機應用與軟件 2019年8期
關鍵詞:測量實驗

王興達 劉雪峰

1(中國科學院國家空間科學中心 北京 100190)2(中國科學院大學 北京 100049)

0 引 言

近年來,壓縮感知(CS)理論得到了越來越多的關注。單光子成像是利用壓縮感知理論的一個典型應用。原理是先將物體成像在數字微鏡陣列上,利用測量矩陣的調制作用和單光子探測器的測量值,就能夠在低采樣率條件下利用單點探測器取得良好的成像效果[1]。在實驗中起調制作用的測量矩陣是非常重要的一環,通常在理想的單光子成像實驗中需要30%~50%采樣率的測量矩陣才能夠恢復出效果比較好的圖像[2]。對于高分辨率的單光子成像實驗,所需測量矩陣數量可達百萬級別。普通計算機利用MATLAB等軟件生成一個FHD(1 920×1 080)分辨率的全采樣率測量矩陣通常需要20小時以上的時間,大大降低單光子成像實驗的效率,成為單光子成像實驗中的一個痛點[3]。

近幾年隨著以Apache Spark為代表的分布式計算技術的發展為解決這一痛點帶來了曙光。Spark平臺本身是一個分布式的計算框架,通常用于大規模的數據處理[4],本文通過Spark中的parallel算子生成簡單RDD,然后通過對該RDD的MapPartition操作能夠將測量矩陣生成和評估任務均勻分配到各個機器節點的Executor上進行計算作業,利用Spark平臺調度集群的

計算性能。實驗證明該方法具有良好的加速比和拓展性,滿足了單光子成像實驗中對于測量矩陣的頻繁生成需求,大幅降低了成像實驗的時間成本。

1 單光子成像與Spark平臺

1.1 壓縮感知理論

壓縮感知(Compressed sensing),也被稱為壓縮采樣(Compressive sampling)或稀疏采樣(Sparse sampling),是一種尋找欠定線性系統的稀疏解的技術[5]。壓縮感知理論指出:只要信號是可壓縮的或在某個變換域是稀疏的[6],那么就可以用一個與變換基不相關的觀測矩陣將變換所得高維信號投影到一個低維空間上[7],然后通過求解一個優化問題就可以從這些少量的投影中以高概率重構出原信號,可以證明這樣的投影包含了重構信號的足夠信息[8]。在過去的幾年內,壓縮感知作為一個新的采樣理論,它可以在遠小于Nyquist 采樣率的條件下獲取信號的離散樣本,保證信號的無失真重建[9]。

1.2 單光子成像

單光子成像是壓縮感知理論的一個典型應用。借鑒計算成像中的高通量測量的思想,如圖1所示,首先用光源打在物體上,通過成像透鏡將物體的像成在可調制的數字微鏡陣列(DMD)上,再利用測量矩陣對DMD進行0-1的掩膜調制,每個測量矩陣都隨機調制圖像的部分像素點,再用一個收集透鏡將這些像素點的光路聚集到一個探測點上,利用單光子探測技術對其進行測量,得到光子計數測量值[10]。最后,通過TVAL3等壓縮感知恢復算法及測量矩陣和測量值就能進行圖像恢復,這樣就能夠利用單點探測器取得良好的成像效果[11]。根據壓縮感知理論的成像經驗,每次成像實驗大約需要30%~50%的采樣率才能取得比較好的成像效果。測量矩陣的數目與采樣率的關系如下:

matrix_num=width×height×sample_rate

圖1 單光子成像原理圖

在高分辨率的情況下,所需的測量矩陣數目往往是百萬級別的,普通計算機利用MATLAB生成一次FHD分辨率的測量矩陣大約需要20小時,非常影響單光子成像實驗的效率。

1.3 Spark平臺介紹

Spark 是一個分布式計算框架,專為大規模數據處理而設計,具有快速且通用的特點[12]。Spark原本是加州大學伯克利分校的AMP實驗室開源的類似于Hadoop MapReduce的通用并行框架,它擁有Hadoop MapReduce所具有的優點,但不同于MapReduce的是Spark中間的輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此能夠獲得比MapReduce更快的大數據處理速度[13]。圖2展示了Spark的基本框架。用戶通過Driver向Master注冊申請資源,由Master通過各個worker的心跳包獲取集群當前的資源狀況,找到合適的資源給本任務,然后在各個worker上啟動Executor進程去運行用戶提交任務中的每一個task,Executor向Driver通過心跳包報告運行狀態,直到作業完成。分布式計算技術的瓶頸往往在與集群的網絡IO,想提高計算性能應該盡可能地避免shuffle的過程出現,而測量矩陣的生成和校驗是非常獨立的過程,不需要與其他的節點進行通信或數據交互[14],因此非常適合于spark這種分布式計算框架,能夠非常充分地利用集群機器的計算性能快速生成和評估測量矩陣。

圖2 Spark框架的工作流程

2 分布式測量矩陣生成算法

2.1 算法設計

測量矩陣生成分為矩陣生成,矩陣評估和數據取回三個階段。通過spark-submit腳本中的參數并配置本次任務的矩陣類型、分辨率和采樣率等。Spark的計算框架通常用于分布式的處理數據,如果想使用該框架進行數據生成可以通過Spark中內置的parallel算子生成簡單RDD,然后對RDD使用Spark中的MapPartition算子,MapPartition算子是Map算子的一個變種,雖然它們都可進行分區的并行處理,但兩者的主要區別是調用的粒度不一樣:Map的輸入變換函數是應用于RDD中每個元素,而MapPartition的輸入函數是應用于每個分區[15]。通過Spark中的調度系統將本次矩陣生成與評估任務均勻地分布在各個節點上,在每個節點根據配置的參數進行測量矩陣的生成作業。對于每個生成的測量矩陣需要在本地進行矩陣質量的評估,以隨機測量矩陣為例,一般需要做計算矩陣的隨機偏差,在偏差允許范圍內的矩陣才會被認為是合格的矩陣而保留下來。對于不合格的矩陣,則會進行丟棄然后重新生成一個新的測量矩陣,為了進行對比實驗,在進行生成與評估作業中會進行數據統計(包括生成矩陣數目、矩陣質量和矩陣保留個數等)。因為測量矩陣本身是0-1矩陣,為節省存儲空間并沒有將結果寫入HDFS中,而是通過Spark中的collect算子將已生成好的測量矩陣和統計數據拉回提交作業的Driver端,通過二進制文件的方式寫入本地,供后續進行單光子成像實驗使用。圖3展示了一次完整的測量矩陣的生成和評估作業的流程。

圖3 算法流程圖

2.2 工程化實現

工程化實現過程主要是利用Spark中的編程模型,主要用到的算子包括Spark中的mapPartition、parallel、collect等,其算法流程的偽代碼如算法1所示。

算法1 測量矩陣生成 輸入:矩陣大小,節點數,矩陣數目 輸出:經過評估合格的測量矩陣二進制文件1. val sc=new SparkContext()2. val config=sc.getConf.get()3. val partitionNum=sc.getConf.get()4. val matrixNumPerPartition=matrixNum / partitionNum5. val matrix=sc.parallelize(0 until partition,partition).mapPartitions {part=> for(0 to matrixNumPerPartition){ generate matrixes if(evaluate matrixes is qualified) save qualified matrix count++ else regenerate unqualified matrix count++ } Calculate matrix save rate }6. val result=matrix.collect()7. val resultFile=new FileOutputStream()8. resultFile.write(result)

3 實驗和結果分析

3.1 實驗環境

由于實驗室單光子成像實驗的需要,在實驗室搭建了8臺服務器搭建的物理集群,并且安裝配置好了Spark環境。為了便于進行對比實驗,單機實驗采用的機器環境和集群中單節點的硬件完全相同,表1中列出了單個節點機器的物理硬件配置,表2中列出了集群機器的主要軟件環境版本信息。

表1 Spark集群單節點硬件配置信息

表2 Spark集群單節點軟件配置信息

3.2 評估指標

本文的實驗選擇了單機、2節點、4節點、8節點等4組進行對比的橫向對比,選擇了三種不同的分辨率進行縱向對比,測量矩陣選擇了相對簡單的隨機測量矩陣。主要選取運行時間、矩陣評估存留率、加速比和拓展性作為評價指標。各評價指標說明如下:

(1) 運行時間(Runtime):該指標是本次實驗的主要目的指標,運行時間指從提交作業成功到測量矩陣的二進制文件寫入硬盤完畢所需的總時間。

(2) 矩陣評估留存率(Matrix Save Rate):該指標是衡量矩陣生成質量的指標,其值定義為:

(3) 加速比(Speedup):該指標主要是用來驗證并行算法的效率,根據阿姆達爾定律,其值在理想的狀態下通常被定義為:

(4) 可拓展性(Extension):該指標主要反映出集群節點的變化對該并行算法的性能影響大小,可以通過此指標預判集群數目與該算法的效率匹配性。

3.3 實驗分析

為了驗證以上的實驗指標,分別選擇分辨率在512×512、1 024×768、1 920×1 080下進行標準隨機測量矩陣算法生成進行實驗。

實驗1本實驗對比了不同節點數N對于生成隨機測量矩陣的運行時間(單位:min),實驗數據如表3所示。

表3 運行時間實驗結果

從表中的實驗數據的對比來看,可以看出隨著節點數的增加,相同分辨率下測量矩陣的生成時間在減小,大致呈現線性關系;測量矩陣的生成時間隨著分辨率的提高而大幅度增加,呈現倍數關系,基本符合預期。

實驗2矩陣評估存留率是指生成的測量矩陣經過評估算法之后合格的比例,實驗以常用的隨機測量矩陣為例,高分辨情況下選擇隨機偏差小于0.001的矩陣為合格矩陣,保存到最后的測量矩陣結果中,0-1隨機測量矩陣的隨機偏差通常用以下公式計算:

式中:pos_num是矩陣中正元素的個數,neg_num是矩陣中非正元素的個數。隨機測量矩陣的隨機偏差一般會隨著測量矩陣分辨率的提高而降低。

矩陣評估存留率實驗結果如表4所示。

表4 矩陣評估存留率實驗結果

可以看出,隨著節點數的增加,矩陣評估保留率一直表現比較穩定,沒有顯著有趨勢性的變化,說明利用Spark進行分布式的測量矩陣生成依然能夠獲得與單機版測量矩陣生成任務質量相近的矩陣;隨著測量矩陣分辨率的提高,矩陣評估存留率會逐漸提高,且與單機版實驗的指標保持一致。

實驗3計算不同節點數目下的加速比關系繪制折線圖,如圖4所示。

圖4 不同節點數下的加速比

從圖中可以看出,利用Spark框架生成測量矩陣的過程中,算法的加速比基本是接近線性的,隨著分辨率的增加,數據規模成倍的增加,加速比也沒有因為數據分散后,最后從各個節點收集數據的時間增加而出現明顯下降。這是因為Spark這種運行在JVM上的平臺,隨著數據在各個節點上的分散,單個節點所需的內存按比例下降,JVM中消耗在內存回收(GC)的時間也會逐漸減少了。說明該算法有非常良好的加速比,可以期待該算法在未來高分辨測量矩陣生成中也具有非常好的表現。

實驗4可拓展性分析。根據實驗1的數據將集群使用的節點數和作業的運行時間作折線圖,如圖5所示。

圖5 擴展性實驗結果圖

由圖5可以看出,在以上三個分辨率的測量矩陣生成實驗中,運行時間隨著節點數增加明顯下降,基本呈現線性關系。實驗說明,該分布式測量矩陣生成算法具有良好的可擴展性。

4 結 語

傳統利用MATLAB等軟件工具生成測量矩陣的算法在面對高分辨率或高采樣率等數據規模較大的情況時,完整生成一次測量矩陣所需的時間成本往往非常巨大,嚴重影響了成像實驗的效率。通過Spark分布式計算框架可以為測量矩陣的生成和評估提供可靠、簡單、有效的解決方案,大大縮短了測量矩陣的生成時間,為調試測量矩陣和成像實驗提供了有力支撐。實驗表明,利用Spark平臺通過分布式的生成算法可以近似線性的縮減生成時間,測量矩陣質量基本與單機算法相同,并且可拓展性良好,在可預見的情況下能夠支撐更大分辨率的單光子成像實驗。

猜你喜歡
測量實驗
記一次有趣的實驗
微型實驗里看“燃燒”
把握四個“三” 測量變簡單
做個怪怪長實驗
滑動摩擦力的測量和計算
滑動摩擦力的測量與計算
測量的樂趣
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
測量
主站蜘蛛池模板: 青青青视频蜜桃一区二区| 91po国产在线精品免费观看| 久久久久人妻精品一区三寸蜜桃| 91亚洲免费视频| 亚洲手机在线| 漂亮人妻被中出中文字幕久久| 国产免费自拍视频| 久久精品这里只有国产中文精品| 亚洲欧洲日本在线| 亚洲成aⅴ人在线观看| 成人在线观看不卡| 91一级片| 全部无卡免费的毛片在线看| 免费一级成人毛片| 午夜国产理论| 国产精品污视频| 亚洲天堂久久新| 亚洲欧洲一区二区三区| 久996视频精品免费观看| AV老司机AV天堂| 四虎国产在线观看| 亚洲av综合网| 成人在线欧美| 成人伊人色一区二区三区| 亚洲中文字幕97久久精品少妇| 深爱婷婷激情网| 久久综合久久鬼| 成年人久久黄色网站| 免费在线国产一区二区三区精品| 少妇精品在线| 在线观看国产网址你懂的| 久久久久国产精品嫩草影院| 美女扒开下面流白浆在线试听 | 国产在线拍偷自揄观看视频网站| 国产精品开放后亚洲| 国产欧美专区在线观看| 91蜜芽尤物福利在线观看| 四虎永久免费地址| 国产成人无码久久久久毛片| 国产男女XX00免费观看| 国产1区2区在线观看| 在线免费无码视频| 高清国产在线| 成人国产精品一级毛片天堂| 国产自视频| 无码一区二区三区视频在线播放| 欧洲欧美人成免费全部视频| 欧美国产日本高清不卡| 91麻豆久久久| 久久久久亚洲av成人网人人软件| 中文字幕第4页| 婷婷综合缴情亚洲五月伊| 亚洲精品视频网| 亚洲日韩在线满18点击进入| 人与鲁专区| 国产精品网址在线观看你懂的| AV色爱天堂网| 日韩午夜片| 国产玖玖视频| 91欧美亚洲国产五月天| 国产精品亚洲一区二区在线观看| 色综合激情网| 国产精品13页| av大片在线无码免费| 91www在线观看| 91丨九色丨首页在线播放| 精品成人一区二区三区电影| 国产香蕉在线| 国产无遮挡裸体免费视频| 国产在线观看人成激情视频| 亚洲v日韩v欧美在线观看| 欧美日韩在线国产| 国产精品yjizz视频网一二区| 欧美精品在线免费| 国产sm重味一区二区三区| 国产大全韩国亚洲一区二区三区| 天堂成人在线视频| 成人精品视频一区二区在线| 丰满少妇αⅴ无码区| 久草视频精品| 在线免费看片a| 国产精品视频999|