私は、マスターノードがリモートマシン上でワーカーノードの束を起動する分散システムを設計しています。私はPythonを使用しており、各物理マシンに複数のコアがあるという事実を利用したいので、マシンごとに複数のワーカーノード(GILなど)を実行する必要があります。さらに、各ワーカーノードは、各「サイクル」が必要とするCPUの量がかなり異なる可能性があります。しかし、ワーカーノードをかなりの数に分割することができます。私の最初の戦略は、マシンごとにコアがあるよりも多くのワーカーノードを生成することです。その理由は、いくつかのノードがより多くのCPUを必要とする場合、より長い期間コアを占有する可能性があるということです。 (各ノードが既にCPUにバインドされていた場合、突然より多くのCPUが必要になることはありません)PythonプロセスのCPU時間を正確に測定するにはどうすればよいですか?
質問:私はPythonプロセスのCPU時間を正確に測定できますか?
私は時間を素早く測定することはできません。特定のプロセスに実際に費やされた時間が必要です。つまり、プロセスごとに、関連性のないプロセスに関係なく、そのプロセスに排他的に費やされたCPUリソースの量を可能な限り正確に表す数値Xが必要です。 (私はPythonのgetrusageを見てきましたが、これは不十分であるubuntuの小数点以下2桁を与えるように見えます。
私の具体的な使用例は、StartからEndまでの各ノードサイクルのCPU時間を測定することです。ここで、EndはStartの約0-30ms後です。
最良の答えは、これをPythonで行うポータブルな方法です。 C拡張を使用する必要があるメソッドは正常です。
'timeit'モジュールをチェックしましたか? – dheerosaur
申し訳ありませんが、これはこの質問とはまったく関係ありません。 – porgarmingduod