[發明專利]基于MPI和OpenMP混合編程模型并行計算提高計算速度的方法有效
| 申請號: | 201310442075.0 | 申請日: | 2013-09-25 |
| 公開(公告)號: | CN104461466B | 公開(公告)日: | 2018-09-21 |
| 發明(設計)人: | 羅海飆;王婷;陳春艷;廖俊豪 | 申請(專利權)人: | 廣州中國科學院軟件應用技術研究所 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 廣州新諾專利商標事務所有限公司 44100 | 代理人: | 肖云 |
| 地址: | 511458 廣東省廣州*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 mpi openmp 混合 編程 模型 并行 計算 提高 速度 方法 | ||
1.一種基于MPI和OpenMP混合編程模型并行計算提高計算速度的方法,其特征在于,包括以下步驟:
(1)計算準備
a)啟動MPI多進程計算,其中進程數小于或等于可用計算節點數目;
b)每個進程讀入子稀疏矩陣A、子初始向量x(0)、塊向量b和最大計算公差Tolerance,子稀疏矩陣A、子初始向量x(0)和塊向量b是通過網格劃分軟件劃分問題的計算域后生成;
(2)開始預條件共軛梯度法的MPI+OpenMP并行的循環計算;
1)根據子初始向量x(0),計算r(0)=b-Ax(0);
2)每個進程開啟OpenMP多線程編譯指令,其中線程數小于或等于該線程所處計算節點可用CPU核數目;
3)開始for i=1,2,...循環;
4)#pragma omp for指令多線程并行計算Mz(i-1)=r(i-1)M-1,其中M-1是預條件子,是矩陣A的逆;
5)#pragma omp for指令多線程并行計算
6)#pragma omp single指令單線程進行MPI通信,MPI_Allreduce函數歸約各計算節點的ρi-1;
7)if i=1p(1)=z(0)elseβi-1=ρi-1/ρi-2;
8)#pragma omp for指令多線程并行計算p(i)=z(i-1)+βi-1p(i-1);
9)#pragma omp for指令多線程并行計算q(i)=Ap(i);
10)#pragma omp for指令多線程并行計算αi=ρi-1/p(i)Tq(i);
11)#pragma omp reduction指令多線程并行計算x(i)=x(i-1)+αip(i);
12)#pragma omp reduction指令多線程并行計算r(i)=r(i-1)-αiq(i);
13)#pragma omp single指令單線程進行MPI通信,MPI_Allreduce函數歸約各計算節點r(i)的范數;
14)if||r(i)|<Tolerance,循環迭代終止;else goto 3);
15)end;
(3)各計算節點的計算結果x(i)歸約后得到最終計算結果;
并行計算時,首先MPI進程啟動,對問題進行多進程分解,開始節點間的并行,每個MPI進程被分配到一個計算節點上,進程間使用消息傳遞交換信息;然后在每個MPI進程中,使用OpenMP制導指令創建一組線程,并分配到計算節點的不同處理器上并行執行;
并行計算執行過程中,可以訪問的存儲空間分為三級存儲空間,進程控制的處理器全局共享第一級存儲空間,線程組共享第二級存儲空間,線程私有第三級存儲空間。
2.如權利要求1所述的基于MPI和OpenMP混合編程模型并行計算提高計算速度的方法,其特征在于:所述網格劃分軟件可為Metis或ParMetis。
3.如權利要求1所述的基于MPI和OpenMP混合編程模型并行計算提高計算速度的方法,其特征在于:開啟MPI多進程計算和OpenMP多線程計算后,能夠針對多核SMP集群多核、多節點的硬件資源特性,實現計算節點間和計算節點內的兩級并行。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州中國科學院軟件應用技術研究所,未經廣州中國科學院軟件應用技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310442075.0/1.html,轉載請聲明來源鉆瓜專利網。





