提交交互式任务交互式任务是一种特殊的队列任务,在该模式下,用户可以直接登录到计算节点,此后 所有的操作都在这个节点上进行。这个功能主要是方便用户在服务器上调试程序, 以便能够实时看到程序的输出。 我们需要使用 salloc 命令来分配交互式任务所需的资源,它的语法为 $ salloc [申请资源] 其中,用户需要以选项的方式指定申请的资源,这些选项与 SLURM 脚本中的选项基本 相同。常用选项为: -N <节点数量> --cpus-per-task=<单进程 CPU 核心数> --gres=gpu:<单节点 GPU 卡数> -t <最长运行时间> -p <使用的分区> --qos=<使用的 QoS> 例如,可以使用如下方式申请资源: $ salloc -N 1 --cpus-per-task=4 -t 5:00 -p cpu 执行成功后,SLURM 会给你一个新的 Shell,注意此时用户所在节点仍为主节点,需要 使用 ssh 命令手动切换到计算节点。 [liuhy@admin playground]$ salloc -N 1 --cpus-per-task=4 -t 5:00 -p cpu salloc: Granted job allocation 39 salloc: Waiting for resource configuration salloc: Nodes comput1 are ready for job [liuhy@admin playground]$ ssh comput1 # 这就是 salloc 分配的新 shell Last login: Fri Jan 19 10:20:32 2018 from admin [liuhy@comput1 ~]$ 如上所示,执行 salloc 后,SLURM 会自动分配作业号并通知哪个节点是可用的。成功 获取资源后,你会获得一个新的 Shell(Line 5),此时用户可以直接切换到目标节点 comput1 执行运算任务。 交互式计算使用完毕后,先使用 exit 退出节点,再执行 exit 退出 SLURM 分配 的 Shell,可结束这次交互式任务。SLURM 会提示你交互式任务的资源已经被释放。 [liuhy@comput1 ~]$ exit # 这一步是退出 comput1 logout Connection to comput1 closed. [liuhy@admin playground]$ exit # 这一步是退出 salloc 分配的 shell exit salloc: Relinquishing job allocation 39 # 退出的同时也释放了资源 用户会重新回到 admin 下进行操作。 小提示 如果在执行交互式任务时超出了申请的最大运行时间,SLURM 会在超时 30 秒后强制 回收已经申请的资源。 [liuhy@comput1 ~]$ salloc: Job 40 has exceeded its time limit and its allocation has been revoked. 启用 X11交互式模式下可以启动 X11 Forwarding,这为用户的调试提供了更大的方便。为此, 首先确保你在登录 admin 的时候开启了 X11 Forwarding。然后在切换到计算节点的时候 指定 -Y 选项即可。备注:SLURM 强制使用受信任的 X11 转发,因此 -X 选项不适用 $ ssh comput1 -Y 其中 comput1 需要替换成实际被分配的节点名。进入交互式计算模式后,可以试着 打开一些带有图形界面的程序进行测试,例如 firefox 或者 MATLAB 等。 以上方法适用于 Linux 系统。Mac 和 Windows 系统的使用方法还在编写中。 注意事项
|