GRAPES源码分析之计时系统
前言
模式开发者(尤其是并行计算开发者)对模式各部分执行花费的时间很感兴趣,需要了解哪里耗时比较长,进而对其进行优化。普通用户一般不需要这个功能。计时系统的一般思路:在需要计时部分的起点和终点设置计时器(调用计时子程序),两个点时间差即为计时部分所耗时间。
GRAPES计时系统
目前发现GRAPES中有3套计时系统,分别在 module_integrate
、 sovle_grapes
及 ritche_puw_jin
中,对各自调用的子程序进行计时。计时子程序使用MPI墙钟函数。为了使版本统一,使用条件预编译方法控制开启实现计时功能(MPI同步计时会使模式整体运行时间过长,不适用于业务)。
solve_grapes计时系统
以下以solve_grapes中计时系统进行说明
- 计时开始部分(别忘了引入mpi模块,
use MPI
)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- 第一个计时部分终点处
1 2 3 4 5 6 7 8 |
|
-
以后每一计时部分计时思路与上述相同
-
在
solve_grapes
最后输出每步积分步各调用部分执行时间
1 2 3 4 5 6 7 |
|
文件号为73的文件是在 module_integrate
中定义的。
1 2 |
|
其它
module_integrate
中计时系统与 solve_grapes
中一样,只不过计时都为非同步情况下的时间,保留在 wtimer_integrate
一维数组中。预编译条件与 solve_grapes
相同,都为 DETAIL_TIMING
。
注:每一积分步 solve_grapes
执行时间保留在 wtimer_integrate(5)
中.
还有一套是在 module_semi_lag
中 ritche_puw_jin
中定义的,预编译条件为 SL_TIMING
。
如果需要开启计时系统,需在 configure.grpaes
中预处理器选项 ARCHFLAGS
中加上类似 -D predefineName
,如 -DSL_TIMING
。
作者:Parallel Life
出处:http://www.cnblogs.com/Parallel-Life/
同步博客:http://metman.info/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如有问题,可以通过jiangqingu@gmail.com 联系我,非常感谢。
posted on 2013-07-05 19:22 Parallel Life 阅读(401) 评论(0) 编辑 收藏 举报