gpt4 book ai didi

performance - FORTRAN - 减少函数调用开销

转载 作者:行者123 更新时间:2023-12-03 17:08:07 26 4
gpt4 key购买 nike

我有一个像这样的fortran代码:

文件1.f90

program myprog
use func1mod
do i=1,N
call subroutine1
enddo
subroutine subroutine1
integer*8::var1,var2,var3,...
do j=1,N
x=func1(var1,var2,var3,..)
computations based on x
enddo
return
end
end

文件2.f90
 module func1mod
contains
func1(var1,var2,var3,....)
func1=some computations based on var1, var2, var3, ...
return
end function func1
end module func1mod

函数 func1 不修改其任何参数。它根据参数计算一个值并返回一个值。 # of arguments 很大,但函数少于 30 行代码。减少函数调用开销的最佳方法是什么。
一种方法是内联函数。还有其他出路吗?

最佳答案

您能做的最好的事情是尽可能明确地说明函数的语义,尽可能提高优化程度,并让编译器就如何最好地实现调用做出最佳决策。确保虚拟变量被标记为 intent(in) , 并将函数标记为 pure - 尽管如果它只有 30 行,编译器无疑会在高度优化时注意到这些事情 - 并检查您的编译器选项,看看是否有任何可以鼓励(例如)内联的方法。

关于performance - FORTRAN - 减少函数调用开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com