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

使用OpenMP+MPI的矩陣乘法并行實現

2022-05-26 10:42:54茍悅宬
電腦與電信 2022年3期
關鍵詞:進程

茍悅宬

(北京交通大學計算機與信息技術學院,北京 100044)

1 引言

矩陣乘法是線性代數中的基礎運算,也是科學研究、工業生產中很常見的計算。可它往往會因為矩陣規模過大而出現運算時間過長等耗費時間的現象,在現實用于生產時,顯然無法承受性能低下帶來的經濟損失。

基于集群計算機的并行算法主要有MPI 和OpenMP 兩種[1]。其中,MPI是一種消息傳遞編程模式,其實現關鍵在于正確地進行消息傳遞,它的編程模式復雜,需要分析和合理地劃分計算程序[1]。OpenMP是一套用于共享內存并行系統多線程程序設計的指導性注釋(compiler directive),是為共享內存的多處理器系統設計的并行編程方法,OpenMP 特別適合用在多核處理器計算機上運行的并行程序設計[2]。MPI+OpenMP 混合并行程序執行流程圖如圖1 所示[3]。OpenMP用于每個結點上的計算密集型工作,MPI用于實現結點間的通信和數據共享。在集群內采用MPI技術,減少消息傳遞的次數以提高速度,在集群的每個成員上又采用OpenMP 技術,節省內存的開銷,綜合兩種并行的優勢,可以提升并行程序的執行效率。

圖1 MPI+OpenMP 混合并行程序執行流程圖[3]

關于OpenMP和MPI的一些更具體的對比見表1。

表1 OpenMP和MPI的比較

此外,本實驗在PC 機與華為鯤鵬處理器上完成,鯤鵬920 處理器采用華為自主開發的處理器內核,兼容ARMV8.2 指令集,通過優化分支預測算法、提升運算單元數量、改進內存子系統架構等一系列微架構設計,大幅提高了處理器單核性能[4],且集成了64核,主頻提升至2.6GHz[5]。

本實驗選取兩個1000*1000 的矩陣相乘,在此種規模矩陣的相乘下設計了MPI+OpenMP混合編程的優化方法,采用OpenMP在每個結點計算,使用MPI進行進程間通信。并在PC機、華為鯤鵬服務器上得到了不同線程的運行結果,并給出了性能分析與相關結論。

2 并行算法的設計與實現

本實驗取兩個1000*1000 矩陣Matrix_one和Matrix_two進行乘法運算,運用MPI_Scatter 數據分發的思想將Matrix_one分為數個行數為1000除以進程數、列數為1000的小矩陣,并使用MPI_Bcast將Matrix_two廣播至每個進程,在每個MPI 進程中,使用OpenMP 輔助進行小矩陣和Matrix_two的相乘運算。最后再用MPI_Gather聚集運算結果,并顯示時間性能的相關信息。圖2是在進程數為4時的運算流程。

圖2 MPI+OpenMP 混合并行程序執行示意圖

2.1 兩個矩陣的形成

為進行運算首先需要生成兩個矩陣,采用rand()%10 生成每個單元都為10以內的整數的矩陣,代碼如下:

這里矩陣2生成的時候相當于直接將一個矩陣的轉置存入,這是為方便后續運算時兩個矩陣都是每一行對應相乘,讀取是連續的,速度較快。

2.2 數據分發與廣播

此處實現將矩陣1 分塊并將矩陣2 廣播給各線程的工作,做好并行計算的準備。代碼如下:

2.3 OpenMP計算部分

矩陣1 分成的小矩陣和矩陣2 相乘采用OpenMP 執行,實現代碼如下,注意此處ii和kk兩個局部變量需要在線程內部定義,否則會出現多線程使用同一變量的局面,造成運行失敗。代碼如下:

此外,對于不能整除的情況,即分割過程中矩陣1剩余的行,直接在線程0中計算即可,過程與上述類似。

2.4 結果聚集

使用MPI_Gather 匯聚計算結果,如有需要,也可以將結果矩陣輸出至文件觀察。匯聚結果的代碼如下:

MPI_Gather(local_result, local_M * N, MPI_INT, result_Matrix,local_M*N,MPI_INT,0,MPI_COMM_WORLD);

3 測試結果

3.1 PC機測試結果

首先進行PC機的測試,所用PC機具有8核CPU,分別分配1/2/4/8個進程,所得運行時間如表2。

表2 PC機測試結果

3.2 鯤鵬處理器測試結果

單個華為鯤鵬處理器的運行結果如表3,分別在進程數為1/2/4/8/16/32的情況下進行。

表3 鯤鵬處理器(單機)測試結果

多機運行結果為表4,其分配的線程數量與單機一致。

表4 鯤鵬處理器(多機)測試結果

4 性能分析

PC 機運行結果折線圖如圖3,可見在一般的8 核CPU中,1000*1000 規模的矩陣乘法運算速度隨著進程數提高而顯著加快。

圖3 PC機結果折線圖

鯤鵬處理器的運行結果折線圖如圖4,可見鯤鵬處理器的性能比一般PC 機CPU 高很多,但是這里出現的情況是運行時間隨著進程數的增加、處理器數量的增加而增加。由此可見并不是進程數越多運算就越快,還涉及進程通信的時間損耗、硬件資源的環境限制、問題的規模大小等諸多因素。

圖4 鯤鵬處理器結果折線圖

5 結語

本實驗完成了規模選取、算法設計、代碼編寫與調試、結果性能分析的完整過程,得出了運算速度不是單純地取決于進程數量的結論,這與人們一般的思維方式是不同的,進程通信、服務器交互過程中發生的時間損耗、所用不同硬件環境的資源限制、欲解決問題的規模大小等許多的因素都會影響到運算時間的長短。工業生產等諸多領域都會用到此并行編程模型,對于影響運行性能的要素需要格外注意。

猜你喜歡
進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進程中的國際收支統計
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進程
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
講效率 結束進程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
論文萊的民族獨立進程
主站蜘蛛池模板: 久久亚洲黄色视频| 在线观看国产网址你懂的| 99爱在线| 亚洲精品国产成人7777| 国产剧情一区二区| 亚洲欧洲国产成人综合不卡| 婷婷激情亚洲| 一区二区影院| 亚洲妓女综合网995久久| 亚洲va欧美va国产综合下载| 亚洲欧美另类色图| 国产尤物视频网址导航| 精品福利国产| 五月天香蕉视频国产亚| 无码高潮喷水专区久久| 手机精品视频在线观看免费| 国产精品永久在线| 国产情精品嫩草影院88av| 国产成人综合在线观看| 性欧美精品xxxx| 免费无遮挡AV| 国产视频 第一页| 国产成人无码综合亚洲日韩不卡| 亚洲无码高清免费视频亚洲| AV熟女乱| 青青青视频蜜桃一区二区| 欧美成人一区午夜福利在线| 国产欧美视频一区二区三区| 99在线视频免费| 国产一级二级三级毛片| 国产精品欧美日本韩免费一区二区三区不卡 | 99久视频| 亚洲色偷偷偷鲁综合| 依依成人精品无v国产| 国产69精品久久久久妇女| 日本三级欧美三级| 伊人久久久久久久久久| 亚洲无线一二三四区男男| 国产天天色| 91福利免费视频| 中文字幕日韩视频欧美一区| 91精品免费久久久| 免费人成在线观看成人片| 日韩精品久久无码中文字幕色欲| 午夜日本永久乱码免费播放片| 久久香蕉欧美精品| 高清乱码精品福利在线视频| 国产偷倩视频| 欧美一区二区啪啪| 国产乱人乱偷精品视频a人人澡| 日韩毛片基地| 自拍偷拍欧美日韩| 九九久久精品免费观看| 亚洲精品无码久久毛片波多野吉| 国产亚洲视频免费播放| 中国丰满人妻无码束缚啪啪| 午夜激情婷婷| 久久精品人妻中文视频| 亚洲人在线| 亚洲天堂视频网站| 97精品久久久大香线焦| 精品无码一区二区在线观看| 亚洲色图欧美一区| 九九线精品视频在线观看| 日本高清免费不卡视频| 成人综合久久综合| 亚洲色成人www在线观看| 夜夜操狠狠操| 青青草原国产免费av观看| 亚洲无码不卡网| 国产高清在线丝袜精品一区| 乱人伦中文视频在线观看免费| 国内丰满少妇猛烈精品播| 日韩精品亚洲人旧成在线| 国产91精品调教在线播放| 老司机精品一区在线视频| 欧美日韩一区二区三| 免费女人18毛片a级毛片视频| 亚洲水蜜桃久久综合网站| 99久久亚洲精品影院| 99re66精品视频在线观看| 国产在线自揄拍揄视频网站|