【问题标题】:How to setup a computer for controlled experimentation profiling algorithms?如何为受控实验分析算法设置计算机?
【发布时间】:2012-11-12 12:28:39
【问题描述】:

我们致力于根据经验测量某些算法的运行时间(以检查它们的渐近行为)。我试图想出一套规则来在实验之前“清理”我们的目标计算机。这并不是Agner Fog 级别的真正性能,但我仍然想从尽可能干净的机器开始(并尽可能保持其恒定开销)。我到目前为止:

  • 禁用所有电源管理
  • 禁用屏幕服务器(也许完全禁用 X?)
  • 禁用网络
  • 以单用户模式启动 [Kenneth Hoste]
  • 多次运行实验(以消除偶然事件)
  • 频率缩放配置为以最大频率运行 [二进制]
  • ?

显然,重复实验几次会给我一些统计能力,但我仍然希望在尽可能干净的机器上进行此操作。

人们还知道哪些其他技巧可以在程序分析期间保持机器不变?这是一台 Linux 机器,如果“规则”是特定于 Linux 的,则可以。

【问题讨论】:

  • 如果是台式机,我会禁用蓝牙、声音等驱动程序...(即使可能断开这些硬件)。如果您不打算获得 GPU 支持进行测试,那么显卡也可以。另外:linuxpoison.blogspot.cz/2009/06/…

标签: linux performance profiling


【解决方案1】:

拉下网线,这样您的系统就不会花时间在经过的网络流量上。

在单用户模式下运行也有帮助,因为这样运行的服务就会减少,这可能会中断您的测量。

在实验运行期间远离系统,您所做的任何事情(登录、ssh 进入机器、“cat”文件、运行“ls”等)都会影响测量结果。

但是,请注意没有稳定的测量,唯一可以确定的方法是多次运行实验,并使用适当的统计方法来报告性能。当您要比较实验之间的性能时,这一点变得尤为重要。

【讨论】:

    【解决方案2】:

    我不知道这是否属于您提到的“电源管理”主题,但有些 CPU 实现了频率缩放。确保将其配置为以最大频率运行。

    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# ls
    affected_cpus  cpuinfo_cur_freq  cpuinfo_transition_latency     scaling_available_governors  scaling_governor  scaling_setspeed
    bios_limit     cpuinfo_max_freq  related_cpus                   scaling_cur_freq             scaling_max_freq  stats
    cpb            cpuinfo_min_freq  scaling_available_frequencies  scaling_driver               scaling_min_freq
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_cur_freq 
    800000
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_governor 
    ondemand
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_governors 
    conservative ondemand userspace powersave performance 
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# echo performance > scaling_governor 
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_governor scaling_cur_freq 
    performance
    1600000
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu0/cpufreq# cd ../../cpu1/cpufreq
    root@chupa-ThinkPad-Edge:/sys/devices/system/cpu/cpu1/cpufreq# cat scaling_governor scaling_cur_freq 
    performance
    1600000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-24
      • 2019-03-02
      • 2020-11-25
      • 2017-07-24
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多