問題タブ [condor]
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.
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
このスクリプトで、それがコードを実行する方法です。
julia - Julia と HTCondor - ENV["HOME"] が Condor でエラーを引き起こす
HTCondorで"Hello World" を出力する Julia スクリプトを実行すると、次のエラーが表示されます。
コードは、ローカルの Ubuntu マシンで問題なく実行されます。走れる
コンドルのbashスクリプトで、出力は
この問題は、github の 2 つの場所 ( one、two ) で議論されています。ENV["HOME"] は単一のファイルで使用され、一般的な推奨事項はそれを変更することです。ただし、condor の julia インストールを変更することはできません。
sudo なしでスクリプトを実行する前に、その場でこれを修正する方法はありますか?