用扭矩运行程序

arm*_*ndo 2 fortran pbs torque

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

谢谢.

jan*_*neb 7

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

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