問題タブ [cpu-time]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Hadoop ユーザー + sys 時間または Hadoop ジョブ カウンターで費やされた合計 CPU 時間のベンチマーク タスクには、どちらを使用する必要がありますか?
回答のこの1 つのステートメントでは、「同じデータに対して同じジョブを実行していますが、1 つの 20 ノード クラスター、次に 200 ノード クラスターで実行されています。全体として、両方のクラスターで同じ量の CPU 時間が使用されます」と書かれています。誰かがこれを説明できますか?
コマンドを使用time
してリアルタイムを測定しました。実際のリアルタイムよりも多くの CPU 時間 (hadoop カウンター) を取得したり、その逆を行ったりすることがありますuser+sys
。
Hadoop での合計 CPU 時間の測定値をまだ取得していません。time コマンドに関しては、この回答が書かれており、ベンチマークには user+sys を使用することをお勧めします。
- その
total cpu time taken by process = user+sys
ため、hadoop ジョブ カウンターの合計 CPU 時間と同じになるはずです。しかし、私は異なる結果を得ています。 - Hadoop user+sys または合計 CPU 時間 (hadoop カウンター) でベンチマークの種類のタスクを実行している場合、どの時間を考慮する必要がありますか?
注: Apache Hiveベンチマークでは、リアルタイムが考慮されていますが、他のプロセスによっても影響を受ける可能性があります。だから私はリアルタイムを考えることができません。
c++ - MPI 使用時の CPU 時間の計算
MPI で並列行列 - 行列乗算器に取り組んでいます。計算部分は動作していますが、CPU 時間も計算したいと考えています。一部のプロセスが開始時刻と終了時刻を 0 と報告しているように見え、1 秒未満のタスク (小さな行列) の場合、プログラムは 1000 秒以上の CPU 時間を報告しているため (実行されていることはわかっていますが)、スタックしています。観測から 1 秒以内)。これが私が現在行っていることです:
エラーの原因がわかりません。このデバッグ出力を追加したとき ( if (rank == 0)
andelse if (rank != 0)
ステートメントの後)
次の出力が得られます
c++ - Linux ベースのクラスター上の CPUTIME および WALLTIME C++ コード
Linux ベースのクラスターを実行している C++ コードがあります。CPU時間とウォールタイムを計測したい。ジョブを送信するための bash ファイルは次のようになります。
事前に助けてくれてありがとう。
fortran - 並列化されていない Fortran が測定する CPU 時間が長すぎるのはなぜですか?
私のプログラムは、コードに並列化が書かれていないため、プログラムが実際に実行されていた時間よりも長い CPU 実行時間を示しています。
コードはほとんどが Fortran 90 で書かれており (1 つまたは 2 つの後で追加した Fortran のものがあります)、私の Linux マシンのネイティブgfortran
コンパイラでコンパイルされています (--version
情報: GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17) )。gfortran
90 以降の標準にコンパイルされることを理解しています。
プログラムが開始すると を呼び出しcall cpu_time(time_start)
、終了する前に を呼び出しますcall cpu_time(time_end)
。この場合、time_end - time_start
経過した CPU 時間を秒単位で示します。
興味深いことに、私は HTCondor を使用してコードを送信し、ローカル ネットワーク内の使用可能な CPU がある任意のマシンで実行しました。私の HTCondor ログ ファイルは、ジョブが 07/24 14:17:46 に送信され、15 秒後に実行が開始され、同じマシンで完了まで実行され、07/30 11:01:52 に終了したことを示しています。日。ただし、CPU 時間は 993535 秒、つまり 11 日以上だっtime_end - time_start
たと言われています。私のコードはまったく並列化されていないため、これがどのように行われるのかわかりません。 どうすればいいの?
私はこのコードを何百回も実行してきましたが、この現象に気づいたことはありませんでしたが、詳しくチェックしたこともありません。
編集:少なくとも明示的には、コードが並列化されていないことにもう一度注意してください。私は-O3
フラグを付けてコンパイルしましたが、これが並列化を導入するとは思いません。並列 Fortran に関するリンクされた質問/回答がシリアルプロセスに関する私の質問に実際に答えている場合は、接続が表示されないため、その方法を理解するのを手伝ってください。
私の HTCondor 送信スクリプトは次のとおりです。私はcondor_submit
このスクリプトで、それがコードを実行する方法です。
r - R foreachで合計CPU時間を取得するには?
foreach
(パッケージから使用して) 並行して実行されるコードの合計 CPU 時間を取得しようとしていますdoParallel
が、これを行う方法がわかりません。私は使用proc.time()
しましたが、「リアルタイム」で差を返すだけです。私が読んだことからsystem.time()
、 と同じことをする必要がありますproc.time()
。並行して実行される R コードの合計 CPU 時間を取得するにはどうすればよいですか?
scripting - TCL スクリプトの CPU 時間を測定する方法
私は長いTCLスクリプトを持っています。プロセスが TCL で使用している正確な CPU 時間を測定したい
TCL で time コマンドを試しましたが、完全な TCL スクリプトでかかる CPU 時間を測定する正しい方法かどうかわかりません
python - Pythonでマルチプロセッシング[joblibを使用]を使用すると、Wall Time >> CPU Timeの場合はどういう意味ですか? (240 秒対 0.22 秒)
Python multiprocessing モジュールと並行して関数を実行しています。この関数は、画像を入力として受け取り、いくつかの測定値を出力します。問題は、time.time() と time.clock() の結果を比較したところ、壁の時間が CPU 時間よりもずっと長いようです。240 秒と 0.22 秒のようなものです!!
私の理解が正しければ、これは CPU が関数の実行に 1 秒未満しか費やしておらず、ほとんどの場合、読み取り/書き込み/ディスクなどを待っていることを意味します。これは正常に聞こえますか? 私は公共のスーパーコンピューティング センターを使用しています (非常に強力ですが)、他のユーザーも cpu ノードを使用していて、私が待たなければならなかったためかどうかはわかりません。
以下は私のコードです。コードの一部が原因である可能性があるかどうかを指摘していただけますか? どうもありがとうございました!
file-io - フォーマットされたファイルとフォーマットされていないファイルの書き込み
Fortran 90 では、フォーマットされていないファイルへの書き込み (以下を参照) は、フォーマット済みのファイルへの書き込み (以下を参照) よりもはるかに高速であることがよくあります。
フォーマットされていないファイルの書き込み
フォーマット済みファイルの書き込み
ここで、A、B、Cはサイズ (N、N) の 2 次元配列です。CPU_Time
この場合、差は約 12 秒であることがわかりました。
大きな違いがあるのはなぜですか?フォーマットされた手順でループするのにかかる時間ですか?
matlab - kmeansが0を返すMatlab cputime
cputime機能を使用して、反復ごとに kmeans アルゴリズムが使用する cputime を測定しています。ただし、一部の反復では cputime = 0 が返されます。これが私の実装です。
これは 15 回の反復で得た結果です: 0, 0, 0.046875, 0, 0, 0, 0, 0, 0.03125, 0, 0, 0, 0, 0 ,0.03125. 私の最初の考えは、計算時間が速すぎて 0 秒だったということです。本当ですか?もしそうなら、どうすればより正確な cputime を達成できますか?
どうもありがとう。