1.一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:包括以下步驟:
并行計算完美嵌套循環(huán)時,每一個空閑線程申請進入臨界區(qū)A;成功進入A的線程從就緒節(jié)點隊列頭部獲取一個節(jié)點,并將該節(jié)點從就緒節(jié)點隊列中刪除后退出A;獲取該節(jié)點的線程計算該節(jié)點所指示的分塊,計算完成后申請進入臨界區(qū)B;成功進入B后的線程根據(jù)自身最近計算完成的分塊更新完美嵌套循環(huán)的循環(huán)分塊狀態(tài)矩陣,并根據(jù)更新后的循環(huán)分塊狀態(tài)矩陣更新就緒節(jié)點隊列,然后退出B,成為空閑線程,再次申請進入臨界區(qū)A;所述節(jié)點是用于指向一個分塊在循環(huán)分塊狀態(tài)矩陣中的坐標的數(shù)據(jù)結構。
2.根據(jù)權利要求1所述一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:所述循環(huán)分塊狀態(tài)矩陣的元素表示依據(jù)矩形循環(huán)分塊方法對完美嵌套循環(huán)的計算區(qū)域進行劃分所形成的各個分塊的執(zhí)行完成情況;元素與分塊一一對應。
3.根據(jù)權利要求1所述一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:所述更新就緒節(jié)點隊列包括以下步驟:根據(jù)更新后的循環(huán)分塊狀態(tài)矩陣,若按字典序小于分塊b且與分塊b直接相鄰的分塊都已經(jīng)計算完成,則將分塊b對應的節(jié)點加入就緒節(jié)點隊列尾部。
4.根據(jù)權利要求1所述一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:所述完美嵌套循環(huán)是通過對初始嵌套循環(huán)進行循環(huán)融合和循環(huán)交換操作而得到的,所述初始嵌套循環(huán)為非完美嵌套循環(huán)。
5.根據(jù)權利要求1所述一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:所述完美嵌套循環(huán)在并行計算前對阻止波陣面的規(guī)則推進的依賴關系進行消除。
6.根據(jù)權利要求1所述一種DOACROSS循環(huán)的并行優(yōu)化方法,其特征在于:所述完美嵌套循環(huán)的理論執(zhí)行時間TYZPA按下式計算:
其中,N表示經(jīng)過分塊后得到的分塊總數(shù),p表示可用線程數(shù),tji表示第i個線程執(zhí)行第j個分塊所花費的總時間,i_last表示編號最大的線程。