5

我有这样的现有qlogin工作:

job-ID  prior   name       user   state submit/start at     queue        
-------------------------------------------------------------------------
3530770 0.50500 QLOGIN  jlsmith   r     10/15/2012 14:02:07 mri.q@compute-0-29.local

上述作业是在 linux 中使用标准 qlogin 命令提交的:

 $ qlogin 

我想要做的是执行另一个 qlogin 以便该进程在具有上述 Job-ID 的同一节点中运行3530770

这个想法是,如果它在top命令中正确完成,我可以看到提交给上述作业 ID 的相同运行进程。

有没有办法做到这一点?

4

2 回答 2

13

任何一个

qlogin -l h=compute-0-29.local

或者

qlogin -q "*@compute-0-29.local"

应该做的工作

于 2013-10-29T13:22:03.623 回答
2

根据与工作中的一些 HPC 专家的交谈以及有关该主题的一些 Google 搜索(我还想恢复工作 ID),如果您已经提交了工作,这实际上是不可能的。您可以qlogin -q <node name>再次进入节点,但无法在 shell 屏幕上恢复作业。

如果您正在考虑开始一个的qlogin 作业,但您希望能够在将来某个时间点恢复它,那么您可以使用它screen来执行此操作。

  1. qlogin在前端节点写入命令行之前,请先写入screen. 它应该完全清除终端屏幕。

  2. 现在qlogin并以交互方式输入您的工作脚本。

  3. 一旦你的工作开始运行并且你想离开一会儿,按住 Cntl 的同时按 A 和 D。它应该说你的屏幕已分离并带你回到前端节点。如果你qstat现在,你应该看到你的工作正在运行。

  4. 当您想恢复作业 ID(查看终端屏幕上正在运行的进程)时,在前端节点中写入screen -r. 您应该能够再次在终端中看到您正在运行的进程。

注意:如果您多次这样做并且意外累积了多个屏幕(每次都发生在我身上),那么screen -r您将获得多个选择,而不是自动恢复您想要的那个。要尝试每一个,screen -r <name of screen listed>一次输入一个,直到找到你想要的一个(如上所示分离)。要摆脱额外的屏幕,请编写screen -D -r <name>.

希望这可以帮助。

于 2013-08-01T19:10:22.260 回答