私はコンパイルして スーパーコンピュータでpbsジョブとして実行するために送信したfortranのコードを持っています。 を実行中のプログラムに保存したまま、ソースコードを修正してもう一度コンパイルしたいと思います。私の質問は、私がソースコード を修正し、別の実行ファイルで実行しているpbsジョブを持っている場合に新しい実行可能ファイルを作成するとどうなりますか? オリジナルの実行可能ファイルの結果は変更できますか?トルクのあるプログラムを実行しています
ありがとうございました。
私はコンパイルして スーパーコンピュータでpbsジョブとして実行するために送信したfortranのコードを持っています。 を実行中のプログラムに保存したまま、ソースコードを修正してもう一度コンパイルしたいと思います。私の質問は、私がソースコード を修正し、別の実行ファイルで実行しているpbsジョブを持っている場合に新しい実行可能ファイルを作成するとどうなりますか? オリジナルの実行可能ファイルの結果は変更できますか?トルクのあるプログラムを実行しています
ありがとうございました。
rename()システムコールを使用して実行可能プログラムを原子的に置き換えると、実行中のプログラムが古い実行可能ファイルを使用し続けるように動作するはずです。 OTOH既存の実行可能ファイルにビットとピースを書き込むことによって置換が行われる場合、実行中の実行可能ファイルに影響が出る可能性があります。
FWIWでは、これはfortran、pbs、またはtorqueとは関係ありませんが、POSIXファイルシステムのセマンティクスとは関係ありません。 POSIXファイルシステムは本質的に参照カウントのオブジェクトストアであり、最後にクローズ時に削除されます。実行可能ファイルをrename()で置き換えると、古い実行可能ファイルの参照カウントは、そのディレクトリへの参照がなくなるため、1だけ減少します。しかし、実行中のプログラムはまだ参照を保持しており、それを使い続けることができます。新しい実行可能ファイルは、独自の参照カウントを持つ別個のオブジェクトです。