gpt4 book ai didi

performance - 在 Julia 中测量 CPU 运行时间

转载 作者:行者123 更新时间:2023-12-04 01:54:16 26 4
gpt4 key购买 nike

许多科学计算语言区分绝对时间(挂钟)和 CPU 时间(处理器周期)。例如,在 Matlab 中,我们有:

>> tic; pause(1); toc
Elapsed time is 1.009068 seconds.

>> start = cputime; pause(1); elapsed = cputime - start
elapsed =
0

在 Mathematica 中,我们有:
>>In[1]:= AbsoluteTiming[Pause[1]]
>>Out[1]= {1.0010572, Null}

>>In[2]:= Timing[Pause[1]]
>>Out[2]= {0., Null}

当在计算服务器上运行基准测试代码时,这种区别很有用,其中绝对计时结果可能存在很大差异,具体取决于并发运行的其他进程。

Julia 标准库通过 tic() 提供对表达式计时的支持。 , toc() , @time以及其他一些基于 time_ns() 的函数/宏,一个测量绝对时间的函数。
>>julia> @time sleep(1)
elapsed time: 1.017056895 seconds (135788 bytes allocated)

我的问题:有没有一种简单的方法可以获取 Julia 中表达式计算所用的 CPU 时间?

(旁注:做一些挖掘,似乎 Julia 计时基于 libuv 中的 uv_hrtime() 函数。在我看来,使用来自同一库的 uv_getrusage 可能会提供一种方法来访问 Julia 中的 CPU 消耗时间,但我不是专家。有没有人试过使用这样的东西?)

最佳答案

我找不到任何现有的解决方案,所以我在这里整理了一个包含一些简单 CPU 计时功能的包:https://github.com/schmrlng/CPUTime.jl .该包在并行代码上完全未经测试,可能有其他错误,但如果其他人想尝试调用

>> Pkg.clone("https://github.com/schmrlng/CPUTime.jl.git")

来自 julia>提示应该安装包。

关于performance - 在 Julia 中测量 CPU 运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24427185/

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