[問題] openMP
程式B利用平行do的方式平行演算兩筆不同的資料
而程式A是另外的獨立演算
如下所示:
--------------
程式A
!$OMP PARALLEL DO
do i=1.2
程式B
!$OMP END PARALLEL DO
--------------
而我想要讓程式A與B迴圈演算同步
交由三個核心平行演算
想請教在不拆掉迴圈為前提 (因為其實迴圈的i是變數,預設為電腦最大核心數減一)
要如何修改才能他們能夠同步演算呢?
我的嘗試過如下的一些類似寫法,可是都失敗
感覺應該可以簡單寫出來,但我卻也沒辦法弄出來
因此想在此請教一下板上的高手
麻煩指教哪裡出問題及該怎麼正確的修改
非常感謝!
!$OMP PARALLEL
!$OMP SECTIONS
!$OMP SECTION
程式A
!$OMP SECTION
!$OMP PARALLEL DO
do i=1.2
程式B
!$OMP END PARALLEL DO
!$OMP END SECTIONS
!$OMP END PARALLEL
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.218.123
※ 編輯: ja000123 來自: 140.112.218.123 (03/20 01:06)
推
03/20 10:49, , 1F
03/20 10:49, 1F
→
03/20 10:50, , 2F
03/20 10:50, 2F
手動拆B變成section我試過是可以執行
但考量到B可能有兩三個甚至八核同時可以跑六七筆資料,要複製成這麼多次感覺有點冗長
A的部分他運算時間跟B差不多,計畫平行的架構有包括將他們平行
所以除了拆迴圈外,有無其他平行的方法呢? 謝謝!
推
03/20 11:52, , 3F
03/20 11:52, 3F
→
03/20 11:53, , 4F
03/20 11:53, 4F
→
03/20 11:53, , 5F
03/20 11:53, 5F
喔喔,我也有想過將A放進迴圈,g大一下就點出了解決的辦法!!
我再來改看看,實在是太感謝拉!!!!!!!!!!
※ 編輯: ja000123 來自: 140.112.63.161 (03/20 12:20)
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章