問題タブ [wall-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.

0 投票する
1 に答える
1938 参照

python - 標準ライブラリを使用してPythonでウォールタイムを取得しますか?

標準ライブラリを使用してPythonでウォールタイムを取得するにはどうすればよいですか?

この質問 とこのclock_gettime(CLOCK_MONOTONIC_RAW)質問 は、Linuxに似ているか/proc/uptime、最も適切であることを示唆しています。Windows ではtime.clock()、目的の効果があります。

を使用しますが、関数は単調に(そして直線的に) 増加する時間値time.time()を返すことが保証されていません。

0 投票する
2 に答える
1597 参照

time - 経過時間がユーザー時間とカーネル時間を大幅に超える理由は何ですか?

経過時間 (壁時間) がユーザー + カーネル時間よりも短い状況について多くのスレッドが質問しているのを目にし、マルチスレッドがこの状況をどのように引き起こすかを理解しています。ただし、次の方法で MPI コードの実行のタイミングを計る場合:

$ time mpirun -n 4 ./a.out

経過時間は 4 ~ 5 分、ユーザー時間は約 40 秒、カーネル時間は約 40 秒です。プロセス間のバリア同期が原因の一部であるか、単一の MPI プロセスに関する情報を取得するのに時間がかかる可能性があると考えていますが、測定値の原因を正確に合理化することはまだできません。誰もそれを説明できますか?

どうもありがとう。

0 投票する
2 に答える
2409 参照

java - UTC時間+TimeZoneIDから壁時間を計算する方法は?

私はこの問題を調べてきましたが、明確で明確なドキュメントを見つけることができませんでした。

UTC時間とTimeZoneIDがあるとすると、夏時間が1年の間に変化することを知って、Javaで壁時間(= UTC時間+タイムゾーンオフセット+夏時間)を計算するにはどうすればよいですか?

テスト済みのコード例を探しています。ありがとう。

0 投票する
1 に答える
40 参照

io - GPFS FS でのシリアル コードの実行時間の大きな違い

クラスターで実行されているシリアル コードのウォール タイムを測定する必要があります。排他モード、つまり他のユーザーがノードを使用していない場合、コードの経過時間は 2:30m から 3:20m の範囲で大きく異なります。コードはすべての実行で同じことを行います。コードは GPFS ファイル システムに格納されたファイルを読み書きするため、ウォール タイムの大きな変動が GPFS ファイル システムによって引き起こされているかどうかはわかりません。私の質問は、GPFS の i/o パフォーマンスを表示して、コードのパフォーマンスに関連付けることができるツールがあるかどうかです。

ありがとう。

0 投票する
1 に答える
643 参照

state - PBS を使用したスーパーコンピューターでの長いジョブの中断、ディスクへの保存、再開

「実行中のスクリプト」を一時停止し、OS にその状態をディスクに保存させ、後でその状態を読み取り、その状態から正確に続行することで再開できるようにする必要があります。このシステムは、Linux を実行する 48 GB の共有メモリを備えた 12 コアの計算ノードです。私には管理者権限がなく、ssh を使用してリモートでログインしています。スクリプトとその中の実行可能ファイルは GUI を使用せず、すべてコマンド ラインであり、私の知る限り、明示的にネットワークやソケットを必要としません。

「実行中のスクリプト」(または「パイプライン」) とは、bash スクリプト、perl スクリプト、またはいくつかの C/C++ 実行可能ファイルを生成する 2 つのスクリプトの組み合わせを意味し、おそらくそれらは openmp 並列化を使用しています。または、gnu-parallel を使用して並列実行可能ファイルを生成します。つまり、単一の実行可能ファイルについて話しているのではなく、複数の UNIX コマンド (awk など) によって接着された共通メモリを使用して 12 コアで暗黙的な並列化を使用して、並列または順次実行される一連の実行可能ファイルについて話しているのです。

スケジューラ (MOAB) は 24 時間以上実行されているすべてのジョブ (システム ルール) を強制終了するため、パイプラインを一時停止して再起動する必要があります。アイデアは、ジョブを一時停止して再キューイングすることです。この手法は完全に正当です。

実行可能ファイルのソース コードを変更してすべての状態を保存し、後でそれを再開することは、いくつかのオープンソース実行可能ファイルを変更して「状態を保存して一時停止」信号を受け入れるようにすることを意味するため、実用的ではありません。たとえば、ImageMagick の「変換」または「grep」、「sed」、「awk」、さらには perl も!さらに、ソース コードのないクローズド ソースの実行可能ファイルも 1 つあります。

したがって、1 つの (唯一の?) 実用的なオプションは、QEMU (エミュレーター) などのいわゆるサンドボックス環境で「スクリプト/パイプライン」を実行することであり、うまくいけばシグナルを送信できる状況にあると思います。 「休止状態」にするには、メモリ全体とCPUの状態をディスクに保存し(48GBは問題ありません)、一時停止するだけで、現在実行中のすべてのプログラムの状態を保存します。

私は上記のいずれについても専門家ではないので、用語が間違っていたり、不適切なことを言っている場合はご容赦ください。スケッチしているだけです。

要約すると、コードを「状態を保存」するように変更することなく、Linux で複雑なスクリプト ジョブを一時停止および再開するための解決策について、経験のある方にお尋ねします。このソリューションは、比較的計算効率が高い必要があります。つまり、エミュレーターを実行するために多くのスーパーコンピューターのパワーを無駄にすることはありません。

上記の QEMU ソリューションで問題ないと思われる場合は、可能であれば、それから始める方法の例をいくつか挙げてください。つまり、公開 ISO からエミュレータ Linux イメージを作成し、イメージをロードし、「スクリプト」を実行します。エミュレータに 20 時間後に「サスペンド/ハイバネート」するように指示し、サスペンド状態からエミュレータの状態を読み取ってエミュレータを再開します。これらはすべて、理想的にはコマンド ラインから、またはスクリプトを介して行います。

(指定された設定に対して) 実用的である限り、他の解決策は歓迎されます。

注意: 管理者権限はありませんが、ホームディレクトリにインストールでき、多くのハードディスク容量があります。また、プログラムは GUI を使用せず、すべてコマンド ラインであり、私の知る限り、ネットワークやソケットを明示的に必要としません。

エミュレーターを使用したソリューションのプラスの副作用として、そのような「パイプライン」は、「サンドボックス」/エミュレーターが実装されている任意の OS (Mac や Win など) に配布でき、すべてを再コンパイルする複雑なプロセスは必要ありません。そしてgnu-utils、bash、boostなどをインストールします。私は何度もこの状況に陥っています。

助けてくれてありがとう、ブリアコ。

0 投票する
1 に答える
71 参照

c++ - Linux ベースのクラスター上の CPUTIME および WALLTIME C++ コード

Linux ベースのクラスターを実行している C++ コードがあります。CPU時間とウォールタイムを計測したい。ジョブを送信するための bash ファイルは次のようになります。

事前に助けてくれてありがとう。

0 投票する
0 に答える
931 参照

python - Pythonでマルチプロセッシング[joblibを使用]を使用すると、Wall Time >> CPU Timeの場合はどういう意味ですか? (240 秒対 0.22 秒)

Python multiprocessing モジュールと並行して関数を実行しています。この関数は、画像を入力として受け取り、いくつかの測定値を出力します。問題は、time.time() と time.clock() の結果を比較したところ、壁の時間が CPU 時間よりもずっと長いようです。240 秒と 0.22 秒のようなものです!!

私の理解が正しければ、これは CPU が関数の実行に 1 秒未満しか費やしておらず、ほとんどの場合、読み取り/書き込み/ディスクなどを待っていることを意味します。これは正常に聞こえますか? 私は公共のスーパーコンピューティング センターを使用しています (非常に強力ですが)、他のユーザーも cpu ノードを使用していて、私が待たなければならなかったためかどうかはわかりません。

以下は私のコードです。コードの一部が原因である可能性があるかどうかを指摘していただけますか? どうもありがとうございました!