searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

HPC集群作业调度系统SGE常用命令

2024-03-20 06:47:54
123
0

       高性能集群(High Performance Computing,简称HPC)是一组松散或紧密连接在一起工作的计算机。这些计算机协同工作,可以利用多个计算机进行并行计算从而获得很高的计算速度,而且任何一个机器坏了整个系统还是能正常运行。节点是集群中的控制器,是管理数据和执行维护任务的计算单元。计算机集群将每个节点设置为执行相同的任务,是由软件控制和调度的,常见的资源管理和调度系统为SGE、PBS。其中SGE系统常用命令如下:

 

  • 提交任务qsub

使用示例:

qsub -cwd -l vf=2g,p=1 -q queuename.q -P projectname test.sh                                # 提交test.sh脚本

qsub -cwd -l vf=2g -l p=1 -q queuename.g@compute-1 -P projectname test.sh       #任务投递到指定计算节点

 

用qsub -help可以看完整的参数,参数说明如下:

参数

说明

-q xxx

指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列

-V

将当前的环境变量传递到执行命令的节点中

-cwd

在当前目录下执行任务,sge的日志会输出到当前路径。不增加该指令,所有投递的任务都会在/home/目录下执行。

-I resource=value

请求资源数,例如 -vf=25G-h=node1 就是任务的预估内存要25G(内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂),申请在node1上运行。

-S /bin/bash

表示在bash环境下执行命令。默认tcsh。

-pe openmpi 4

表示使用openmpi进行并行运算,且申请的线程是4

-N 任务名

手动执行任务的名字。

-j  y|n

是否将标准输入和标准输入合并成一个文件

-sync y|n

是否等待任务结束,返回退出码

-o path

指定标准输出的文件夹

-p

定义工作的相对优先级,-1023 到1024,默认值0

-P projectname

定义项目名称,前提是存在该项目

 

  • 查看任务qstat

使用示例:

qstat -j jobid                             #查看某个任务详细信息

qstat -u username                    #查询某用户的任务

qstat -u username -s r              #查询某用户在运行的任务

qstat -u \*                                 #查询所有用户任务

qstat -u \* -s r                           #查询哪些用户在运行任务

qstat -q all.q -u \*                     #查看all.q队列下所有任务

qstat -q all.q@node1 -u \*        #查看all.q队列节点1下所有任务

qstat -explain a|c|A|E -j jobID    #查看某个任务并给出解释

qatat -f                                       #查看用户在每个节点的任务情况

qstat -F vf,p -q bc.q                    #查看实时资源申请剩余情况

 

任务状态:

  • qw           #表示等待状态
  • R              #任务正在运行
  • hqw         #任务挂起等待中,待依赖的任务完成后执行
  • Eqw         #投递任务出错
  • s              #暂时挂起
  • dr            #节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失

 

  • 删除任务 qdel

qdel jobid                                                                                                  #可同时删除多个,如qdel jobid1 jodid2

qdel -u username                                                                                      #删除莫用户所有任务

qstat -u username | grep “username” l cut -d “.” -f1 | xargs qdel     #删除所有任务

qstat -u username | grep “R” l cut -d “.” -f1 | xargs qdel                   #删除所有正在运行的任务

qstat -u username | grep “Q” l cut -d “.” -f1 | xargs qdel                   #删除所有正在等待的任务

 

  • 挂起/恢复任务
  • qhold挂起qw的任务,状态变为 hqw,待依赖的任务完成后执行,示例如下:

qhold jobid             # 挂起某个qw任务

qhold -u \*              # 挂起所有qw任务

qrls jobid                 #恢复任务

  • qmod 挂起running中的任务,示例如下:

qmod -s jobID         #挂起某个running任务

qmod -us jobID       #恢复运行某个挂起的任务

qmod -cj jobid         #当遇到任务状态Eqw时,可以清除错误状态,qmod修改队列和任务属性

 

5、更改任务属性 qalter

qalter命令修改已提交但正处于暂挂状态的作业的属性,参数和qsub一样。

 

6、集群资源查询

  • qhost显示SGE执行主机(即各个计算节点)的状态信息。其中ARCH表示CPU架构,NCPU表示CPU核数,LOAD表示负载情况,使用示例如下:

qhost -j                  #按照节点显示任务

qhost -F                 #展示每个节点的资源

 

  • qconf 提供集群配置和队列配置的用户界面。

qconf -se1                        #显示“执行主机”列表

qconf -sh                          #显示“管理土机”列表

qconf -ss                          #显示“提交任务主机”列表

qconf -sql                         #显示“集群队列”列表

qconf -spl                         #显示“集群并行环境”列表

qconf -shgrpl                    #查看队列

qconf -shgrp @bc_hosts                           #查看特定队列下的具体计算节点

qconf -srqs max_user_running_jobs         #查看任务投递数

 

  • qselect

qselect -u                  #查看指定用户的可用队列节点

qselect -q all.q          #查看指定队列有哪些可用节点

 

0条评论
0 / 1000
l****n
4文章数
0粉丝数
l****n
4 文章 | 0 粉丝
原创

HPC集群作业调度系统SGE常用命令

2024-03-20 06:47:54
123
0

       高性能集群(High Performance Computing,简称HPC)是一组松散或紧密连接在一起工作的计算机。这些计算机协同工作,可以利用多个计算机进行并行计算从而获得很高的计算速度,而且任何一个机器坏了整个系统还是能正常运行。节点是集群中的控制器,是管理数据和执行维护任务的计算单元。计算机集群将每个节点设置为执行相同的任务,是由软件控制和调度的,常见的资源管理和调度系统为SGE、PBS。其中SGE系统常用命令如下:

 

  • 提交任务qsub

使用示例:

qsub -cwd -l vf=2g,p=1 -q queuename.q -P projectname test.sh                                # 提交test.sh脚本

qsub -cwd -l vf=2g -l p=1 -q queuename.g@compute-1 -P projectname test.sh       #任务投递到指定计算节点

 

用qsub -help可以看完整的参数,参数说明如下:

参数

说明

-q xxx

指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列

-V

将当前的环境变量传递到执行命令的节点中

-cwd

在当前目录下执行任务,sge的日志会输出到当前路径。不增加该指令,所有投递的任务都会在/home/目录下执行。

-I resource=value

请求资源数,例如 -vf=25G-h=node1 就是任务的预估内存要25G(内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂),申请在node1上运行。

-S /bin/bash

表示在bash环境下执行命令。默认tcsh。

-pe openmpi 4

表示使用openmpi进行并行运算,且申请的线程是4

-N 任务名

手动执行任务的名字。

-j  y|n

是否将标准输入和标准输入合并成一个文件

-sync y|n

是否等待任务结束,返回退出码

-o path

指定标准输出的文件夹

-p

定义工作的相对优先级,-1023 到1024,默认值0

-P projectname

定义项目名称,前提是存在该项目

 

  • 查看任务qstat

使用示例:

qstat -j jobid                             #查看某个任务详细信息

qstat -u username                    #查询某用户的任务

qstat -u username -s r              #查询某用户在运行的任务

qstat -u \*                                 #查询所有用户任务

qstat -u \* -s r                           #查询哪些用户在运行任务

qstat -q all.q -u \*                     #查看all.q队列下所有任务

qstat -q all.q@node1 -u \*        #查看all.q队列节点1下所有任务

qstat -explain a|c|A|E -j jobID    #查看某个任务并给出解释

qatat -f                                       #查看用户在每个节点的任务情况

qstat -F vf,p -q bc.q                    #查看实时资源申请剩余情况

 

任务状态:

  • qw           #表示等待状态
  • R              #任务正在运行
  • hqw         #任务挂起等待中,待依赖的任务完成后执行
  • Eqw         #投递任务出错
  • s              #暂时挂起
  • dr            #节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失

 

  • 删除任务 qdel

qdel jobid                                                                                                  #可同时删除多个,如qdel jobid1 jodid2

qdel -u username                                                                                      #删除莫用户所有任务

qstat -u username | grep “username” l cut -d “.” -f1 | xargs qdel     #删除所有任务

qstat -u username | grep “R” l cut -d “.” -f1 | xargs qdel                   #删除所有正在运行的任务

qstat -u username | grep “Q” l cut -d “.” -f1 | xargs qdel                   #删除所有正在等待的任务

 

  • 挂起/恢复任务
  • qhold挂起qw的任务,状态变为 hqw,待依赖的任务完成后执行,示例如下:

qhold jobid             # 挂起某个qw任务

qhold -u \*              # 挂起所有qw任务

qrls jobid                 #恢复任务

  • qmod 挂起running中的任务,示例如下:

qmod -s jobID         #挂起某个running任务

qmod -us jobID       #恢复运行某个挂起的任务

qmod -cj jobid         #当遇到任务状态Eqw时,可以清除错误状态,qmod修改队列和任务属性

 

5、更改任务属性 qalter

qalter命令修改已提交但正处于暂挂状态的作业的属性,参数和qsub一样。

 

6、集群资源查询

  • qhost显示SGE执行主机(即各个计算节点)的状态信息。其中ARCH表示CPU架构,NCPU表示CPU核数,LOAD表示负载情况,使用示例如下:

qhost -j                  #按照节点显示任务

qhost -F                 #展示每个节点的资源

 

  • qconf 提供集群配置和队列配置的用户界面。

qconf -se1                        #显示“执行主机”列表

qconf -sh                          #显示“管理土机”列表

qconf -ss                          #显示“提交任务主机”列表

qconf -sql                         #显示“集群队列”列表

qconf -spl                         #显示“集群并行环境”列表

qconf -shgrpl                    #查看队列

qconf -shgrp @bc_hosts                           #查看特定队列下的具体计算节点

qconf -srqs max_user_running_jobs         #查看任务投递数

 

  • qselect

qselect -u                  #查看指定用户的可用队列节点

qselect -q all.q          #查看指定队列有哪些可用节点

 

文章来自个人专栏
混合云
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0