[問題] 效率

作者: DMFC (DMFC)   2013-11-09 05:38:47
貼一部份程式碼,fortran90語法
do i=1,nx ; do j=1,ny ; do k=1,nz
csum=sum(coeff(1:np)*cdexp)/Vol
csumout(i,j,k)=csum
end do ; end do ; end do
請問一下
由於資料量不算小
目前測試 nx=ny=nz=47, np=23000
上面貼的部份是需要最久計算的部份
普通執行需要約兩分鐘(測試用參數)
若是把第三行去掉
則可以10秒內結束
可是我就是要把這個資料輸出
才用了一個三維 ARRAY 把資料存起來
然後離開這個 LOOP 後再寫出
如果把 WRITE 寫在 LOOP 內
則情況會更糟
請問有什麼方法可以處理這窘境
作者: biggun (大槍)   2012-01-10 16:15:00
卡在I/O,把程式丟到ramdisk裡跑看看,當然ramdisk要夠大
作者: charlesdc (MoOn)   2012-01-10 21:23:00
其實還有一種可能 你換一台ram很大的電腦跑看看有可能是你電腦的ram不夠用不然就是那個三維的矩陣透過動態方式建立在釋放看看

Links booklink

Contact Us: admin [ a t ] ucptt.com