fortran代码优化从那里入手?

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:54:19
代码优化从那里入手?

从数组开始和循环开始,因为程序的运行性能主要看怎么处理迭代和对大量数据的存储。
如:
do i=1,L
do j=1,N
do k=1,M
write(*,*) C(i,j,k)
end do
end do
end do

do i=1,L
do j=1,N
do k=1,M
write(*,*) C(k,j,i)
end do
end do
end do

显然第二个要比第一个优化。
因为fortran的数组存储顺序为:
a(1,1) a(2,1) a(3,1) a(1,2) a(2,2) a(3,2)
这个一个连续的内存空间,我们在读取它的时候连续读取肯定要比跳跃性读取好!

可以考虑用类似profile的工具列出程序耗时的地方进行优化