Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. ExecutionTime与ClockTime有什么区别与联系?

ExecutionTime与ClockTime有什么区别与联系?

已定时 已固定 已锁定 已移动 OpenFOAM
8 帖子 3 发布者 9.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 北 离线
    北 离线
    北方
    写于 最后由 编辑
    #1

    在采用mpirun执行并行计算的过程中,每次迭代都会打印迭代结果ExecutionTime = 239.5 s ClockTime = 302 s,这两个Time有什么区别与联系呢?

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    写于 最后由 CFD中文网 编辑
    #2

    ExecutionTime 是 CPU 时间,指CPU执行代码花费的时间。

    ClockTime 是墙上时钟时间(wall-clock time),指物理世界中花费的时间。

    CPU由操作系统调度,不会一直执行你的代码,可能会用来执行其他一些操作(如中断等)。墙上时钟时间包括CPU时间,以及执行其他这些操作所花的时间。

    更正:ClockTime 一般比 ExecutionTime 要大。

    北 2 条回复 最后回复
  • 北 离线
    北 离线
    北方
    在 中回复了 wwzhao 最后由 编辑
    #3

    @wwzhao Thank you,你说的应该是对的,如问题中描述,我实际计算过程中,每次都是ClockTime 大于ExecutionTime,这又是为何呢,请解惑。

    1 条回复 最后回复
  • 北 离线
    北 离线
    北方
    在 中回复了 wwzhao 最后由 编辑
    #4

    @wwzhao 如你解释的“ClockTime 是墙上时钟时间(wall-clock time),指物理世界中花费的时间”,这个应该是程序执行的所有时间,包括CPU的任务调度,中断响应,数据计算,数据IO等操作;

    ExecutionTime 仅仅指计算的时间,如此说来后者应该比前者小

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 北方 最后由 编辑
    #5

    @北方 笔误,应该是ClockTime比ExecutionTime大,ClockTime=ExecutionTime+CPU调度和中断等花的时间。

    北 1 条回复 最后回复
  • 北 离线
    北 离线
    北方
    在 中回复了 wwzhao 最后由 编辑
    #6

    @wwzhao :happy: ,谢谢大神的解答。

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 北方 最后由 编辑
    #7

    @北方 不是大神,相互学习:happy:

    1 条回复 最后回复
  • M 离线
    M 离线
    maoyanjun_dut
    写于 最后由 李东岳 编辑
    #8

    QQ截图20190911102057.png

    再补充一下,用不同的电脑跑了 damBreak 算例,得到的三个 ExecutionTime 和 ClockTime 。 并不总是 clockTime 大于 ExecutionTime 。@wwzhao

    但是仔细检查发现,造成右边两个有差异的主要原因是两个时间的精度问题,如下所示:

    ExecutionTime = 1.58 s  ClockTime = 1 s 
    ExecutionTime = 1.59 s  ClockTime = 1 s  
    ExecutionTime = 1.59 s  ClockTime = 1 s 
    ExecutionTime = 1.6 s  ClockTime = 1 s 
    ExecutionTime = 1.6 s  ClockTime = 1 s
    ExecutionTime = 1.61 s  ClockTime = 1 s 
    ExecutionTime = 1.62 s  ClockTime = 1 s 
    ExecutionTime = 1.62 s  ClockTime = 1 s 
    ExecutionTime = 1.63 s  ClockTime = 1 s                                                                                                                                                       ExecutionTime = 1.64 s  ClockTime = 1 s  
    ExecutionTime = 1.64 s  ClockTime = 2 s
    ExecutionTime = 1.65 s  ClockTime = 2 s   
    ExecutionTime = 1.66 s  ClockTime = 2 s     
    ExecutionTime = 1.66 s  ClockTime = 2 s  
    ExecutionTime = 1.67 s  ClockTime = 2 s 
    ExecutionTime = 1.67 s  ClockTime = 2 s 
    ExecutionTime = 1.68 s  ClockTime = 2 s 
    
    

    因为是一个很小的单核算例,IO也不大,所以IO基本上没有花时间,导致在保留精度不同的情况下出现了上述差异。

    多说两句:
    上图右上角是在WSL2 根目录下的结果,
    右下角是在一个 Ubuntu18.0.4 服务器上的结果,
    左边的结果是用 WSL2 在 /mnt/h 盘下的结果,

    可以看到在即使是很小的算例。这个IO耗时也是相当大。这是 WSL2目前的问题,相较于WSL 它在 根目录下确实IO能力有很大提升。但是在 /mnt/* 下 真是果断弃疗。


    版本:
    OpenFOAM-v7

    The 'ExecutionTime' is the elapsed CPU time, and the ClockTime is the elapsed wall clock time for the latest time step(approximate!!)

    https://www.cfd-online.com/Forums/openfoam-solving/67695-difference-between-executiontime-clocktime.html

    Blog:http://maoyanjun.top
    厚德如海,纳川有藏。上善若水,利物不张。大哉斯言,勤勉勿忘。

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]