用扭矩运行程序

时间:2011-09-14 23:57:47

标签: fortran pbs torque

我在fortran中有一个代码,我编译然后发送到pbs作为一个pbs作业 超级计算机。我想修改源代码并在保留的同时再次编译它 已经在运行的程序。我的问题是如果我修改源代码会发生什么 如果我有一个运行不同可执行文件的pbs作业,请创建一个新的可执行文件。 是否会修改原始可执行文件的结果?

感谢。

1 个答案:

答案 0 :(得分:7)

如果使用rename()系统调用原子地替换可执行文件,那么它应该工作使得正在运行的程序继续使用旧的可执行文件。 OTOH如果通过将碎片写入现有可执行文件来进行替换,则运行的可执行文件可能会受到影响。

FWIW,这与fortran,pbs和扭矩无关,而是与POSIX文件系统语义有关。 POSIX文件系统本质上是引用计数的对象存储,具有delete-on-last-close。使用rename()替换可执行文件时,旧可执行文件的引用计数减1,因为该目录不再具有对它的引用。但是,执行程序仍然保留引用并可以继续使用它。新的可执行文件是一个单独的对象,它有自己的引用计数。