2

特定のアルゴリズムの実行時間を経験的に測定することに取り組んでいます (漸近的な動作をチェックするため)。実験の前にターゲット コンピューターを "クリーンアップ" するための一連のルールを考え出そうとしています。これは実際にはAgner Fogのレベルのパフォーマンスではありませんが、それでも可能な限りクリーンなマシンから始めたいと思います (そして、できる限り一定のオーバーヘッドでマシンを維持します)。私はこれまでに持っています:

  • すべての電源管理を無効にする
  • スクリーンサーバーを無効にします (おそらく X を完全に無効にしますか?)
  • ネットワークを無効にする
  • シングルユーザーモードで起動 [Kenneth Hoste]
  • 実験を複数回実行する (偶然の出来事をスムーズにするため)
  • 最大周波数で実行するように構成された周波数スケーリング [binarym]
  • ?

明らかに、実験を数回繰り返すことである程度の統計力が得られますが、できるだけクリーンなマシンでこれを行いたいと考えています.

プログラムのプロファイリング中にマシンを一定に保つために、人々が知っている他のトリックは何ですか? これは Linux マシンであり、「ルール」が Linux 固有であれば問題ありません。

4

2 に答える 2

1

あなたが言及した「電力管理」トピックの一部であるかどうかはわかりませんが、一部の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
于 2012-11-24T14:29:12.760 に答える
1

ネットワーク ケーブルを引き抜いて、ネットワーク トラフィックの通過にシステムが時間を費やさないようにします。

シングルユーザーモードで実行することも役立ちます。実行しているサービスが少なくなるため、測定が中断される可能性があります。

実験の実行中はシステムに近づかないでください。何をするにしても (ログイン、マシンへの ssh、ファイルの「cat」、「ls」の実行など) は測定に影響します。

しかし、安定した測定などというものは存在しないことを認識してください。確実にする唯一の方法は、実験を何度も実行し、適切な統計手法を使用してパフォーマンスを報告することです。これは、実験間のパフォーマンスを比較する場合に特に重要になります。

于 2012-11-24T13:45:00.307 に答える