[问题] 效率

楼主: 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