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

SGE计算集群介绍

2023-12-06 07:50:33
35
0

SGE(Sun Grid Engine)是一种开源的集群管理软件,用于管理和调度计算集群中的任务。它最初由Sun Microsystems开发,后来由Oracle继续开发和支持。SGE的主要目标是提供高性能计算环境,使用户能够有效地利用集群资源。

SGE集群具备以下特性:

1. 集群管理:SGE允许用户将计算集群中的资源进行管理和调度。它可以管理多台计算节点(包括服务器、工作站等),并将任务分配给这些节点进行并行计算。

2. 作业调度:SGE使用作业调度器来决定何时运行哪个任务。它可以根据用户的需求和集群的负载情况,智能地将作业分配给可用的计算节点。

3. 作业优先级:SGE支持作业的优先级设置。用户可以根据任务的重要性和紧急程度设置不同的优先级,以确保重要任务能够尽快得到执行。

4. 资源管理:SGE可以跟踪和管理集群中的资源使用情况。它可以监控计算节点的负载、内存使用情况等,并根据需要动态地分配资源。

5. 队列管理:SGE允许用户创建多个队列,每个队列可以有不同的属性和调度策略。这样可以根据不同类型的任务设置不同的调度规则,以优化集群资源的利用。

6. 用户接口:SGE提供了命令行和图形用户界面(GUI)两种方式来管理和监控集群。用户可以使用命令行工具来提交、控制和监视作业,也可以通过GUI来可视化地管理集群。

总的来说,SGE集群管理软件提供了一个强大而灵活的工具,用于管理和调度计算集群中的任务。它可以帮助用户更好地利用集群资源,提高计算效率,并提供了丰富的功能和接口来满足不同用户的需求。

 

SGE集群由以下几个组件组成:

  • Master节点:负责接收用户提交的任务,并将任务分配给可用的节点。
  • Slave节点:负责执行任务。
  • Resource Manager:负责管理集群中的资源,包括节点、内存、CPU、磁盘等。
  • Job Queue:负责对任务进行排队,并根据资源情况将任务分配给节点。
  • Job Control System:负责监控任务的运行状态,并在任务发生异常时采取相应的措施。

 

SGE集群的工作流程如下:

  1. 用户在Master节点上提交任务。
  2. Master节点将任务分配给可用的Slave节点。
  3. Slave节点执行任务。
  4. Job Control System监控任务的运行状态。
  5. 任务完成后,Slave节点将结果返回给Master节点

 

sge集群管理命令

## 查看任务状态
qstat
(base) [root@qmaster ~]# qstat
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
      2 0.55500 test.csh   root         qw    08/23/2023 15:10:42                                    1

# 查看所有队列
qconf -sql
# 查看队列详情
# qconf -sq  queue-name
(env_nf) [root@qmaster ~]# qconf -sq all.q
qname                 all.q
hostlist              @allhosts
seq_no                0
load_thresholds       np_load_avg=1.75
suspend_thresholds    NONE
nsuspend              1
suspend_interval      00:05:00
priority              0
min_cpu_interval      00:05:00
processors            UNDEFINED
qtype                 BATCH INTERACTIVE
ckpt_list             NONE
pe_list               make smp mpi
rerun                 FALSE
slots                 1,[qmaster.local=8]
tmpdir                /tmp
shell                 /bin/sh
prolog                NONE
epilog                NONE
shell_start_mode      posix_compliant
starter_method        NONE
suspend_method        NONE
resume_method         NONE
terminate_method      NONE
notify                00:00:60
owner_list            NONE
user_lists            NONE
xuser_lists           NONE
subordinate_list      NONE
complex_values        NONE
projects              NONE
xprojects             NONE
calendar              NONE
initial_state         default
s_rt                  INFINITY
h_rt                  INFINITY
s_cpu                 INFINITY
h_cpu                 INFINITY
s_fsize               INFINITY
h_fsize               INFINITY
s_data                INFINITY
h_data                INFINITY
s_stack               INFINITY
h_stack               INFINITY
s_core                INFINITY
h_core                INFINITY
s_rss                 INFINITY
h_rss                 INFINITY
s_vmem                INFINITY
h_vmem                INFINITY


# 添加队列
 qconf -aq rnaseq
 
# 删除队列中的作业
 qdel 2
 
# 查看作业运行详情
  qstat -j 31

 
# 修改队列权重
qconf -mq all.q
修改结果后如下:
(env_nf) [root@qmaster ~]# qconf -sq all.q
qname                 all.q
hostlist              @allhosts
seq_no                0
load_thresholds       np_load_avg=1.75
suspend_thresholds    NONE
nsuspend              1
suspend_interval      00:05:00
priority              10
min_cpu_interval      00:05:00
processors            8
qtype                 BATCH INTERACTIVE
ckpt_list             NONE
pe_list               make smp mpi
rerun                 FALSE
slots                 6,[qmaster.local=8]
tmpdir                /tmp
shell                 /bin/sh
prolog                NONE
epilog                NONE
shell_start_mode      posix_compliant
starter_method        NONE
suspend_method        NONE
resume_method         NONE
terminate_method      NONE
notify                00:00:60
owner_list            NONE
user_lists            NONE
xuser_lists           NONE
subordinate_list      NONE
complex_values        NONE
projects              NONE
xprojects             NONE
calendar              NONE
initial_state         default
s_rt                  INFINITY
h_rt                  INFINITY
s_cpu                 INFINITY
h_cpu                 INFINITY
s_fsize               INFINITY
h_fsize               INFINITY
s_data                INFINITY
h_data                INFINITY
s_stack               INFINITY
h_stack               INFINITY
s_core                INFINITY
h_core                INFINITY
s_rss                 INFINITY
h_rss                 INFINITY
s_vmem                INFINITY
h_vmem                INFINITY


## 查看指定任务状态
qstat -j job-ID
## 删除任务
qdel job-ID
## 查看计算节点资源状况信息-集群状态
qhost
#用来查看所有的job queues和job与机器的分配关系。
qaccess
## 投递任务
qsub -cwd -l vf=*G,p=n,h=node -q bc_rd.q -P RNAProj -binding linear:2 *.sh

-cwd:在当前目录下执行任务,同时,SGE的运行日志也会输出在当前目录
 -l:申请所需的资源。vf=*G设置任务预计使用的内存大小(一般设置的值要稍微大一些,负责容易让节点挂掉),p=n设置所需的CPU数[一个cpu核心数对应一个线程],h=node设置任务指定投递的节点名称。日常使用时,并不是每次都要设置这三个参数,大家可以根据自己的需要自行删减。
 -q:指定任务要投递到队列名称。
 -P: 指定将此作业分配给的项目。如果管理员向你及部分其他用户授予向特定项目提交作业的权限,那么需要增加这一参数。
 -binding linear:2 #将作业绑定到处理器核心
 *.sh:需要投递的任务,建议在脚本前加上完整路径。
 输入这条命令,我们的任务就投递到服务器上啦!
 

 

0条评论
0 / 1000
xcydb
2文章数
0粉丝数
xcydb
2 文章 | 0 粉丝
xcydb
2文章数
0粉丝数
xcydb
2 文章 | 0 粉丝
原创

SGE计算集群介绍

2023-12-06 07:50:33
35
0

SGE(Sun Grid Engine)是一种开源的集群管理软件,用于管理和调度计算集群中的任务。它最初由Sun Microsystems开发,后来由Oracle继续开发和支持。SGE的主要目标是提供高性能计算环境,使用户能够有效地利用集群资源。

SGE集群具备以下特性:

1. 集群管理:SGE允许用户将计算集群中的资源进行管理和调度。它可以管理多台计算节点(包括服务器、工作站等),并将任务分配给这些节点进行并行计算。

2. 作业调度:SGE使用作业调度器来决定何时运行哪个任务。它可以根据用户的需求和集群的负载情况,智能地将作业分配给可用的计算节点。

3. 作业优先级:SGE支持作业的优先级设置。用户可以根据任务的重要性和紧急程度设置不同的优先级,以确保重要任务能够尽快得到执行。

4. 资源管理:SGE可以跟踪和管理集群中的资源使用情况。它可以监控计算节点的负载、内存使用情况等,并根据需要动态地分配资源。

5. 队列管理:SGE允许用户创建多个队列,每个队列可以有不同的属性和调度策略。这样可以根据不同类型的任务设置不同的调度规则,以优化集群资源的利用。

6. 用户接口:SGE提供了命令行和图形用户界面(GUI)两种方式来管理和监控集群。用户可以使用命令行工具来提交、控制和监视作业,也可以通过GUI来可视化地管理集群。

总的来说,SGE集群管理软件提供了一个强大而灵活的工具,用于管理和调度计算集群中的任务。它可以帮助用户更好地利用集群资源,提高计算效率,并提供了丰富的功能和接口来满足不同用户的需求。

 

SGE集群由以下几个组件组成:

  • Master节点:负责接收用户提交的任务,并将任务分配给可用的节点。
  • Slave节点:负责执行任务。
  • Resource Manager:负责管理集群中的资源,包括节点、内存、CPU、磁盘等。
  • Job Queue:负责对任务进行排队,并根据资源情况将任务分配给节点。
  • Job Control System:负责监控任务的运行状态,并在任务发生异常时采取相应的措施。

 

SGE集群的工作流程如下:

  1. 用户在Master节点上提交任务。
  2. Master节点将任务分配给可用的Slave节点。
  3. Slave节点执行任务。
  4. Job Control System监控任务的运行状态。
  5. 任务完成后,Slave节点将结果返回给Master节点

 

sge集群管理命令

## 查看任务状态
qstat
(base) [root@qmaster ~]# qstat
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
      2 0.55500 test.csh   root         qw    08/23/2023 15:10:42                                    1

# 查看所有队列
qconf -sql
# 查看队列详情
# qconf -sq  queue-name
(env_nf) [root@qmaster ~]# qconf -sq all.q
qname                 all.q
hostlist              @allhosts
seq_no                0
load_thresholds       np_load_avg=1.75
suspend_thresholds    NONE
nsuspend              1
suspend_interval      00:05:00
priority              0
min_cpu_interval      00:05:00
processors            UNDEFINED
qtype                 BATCH INTERACTIVE
ckpt_list             NONE
pe_list               make smp mpi
rerun                 FALSE
slots                 1,[qmaster.local=8]
tmpdir                /tmp
shell                 /bin/sh
prolog                NONE
epilog                NONE
shell_start_mode      posix_compliant
starter_method        NONE
suspend_method        NONE
resume_method         NONE
terminate_method      NONE
notify                00:00:60
owner_list            NONE
user_lists            NONE
xuser_lists           NONE
subordinate_list      NONE
complex_values        NONE
projects              NONE
xprojects             NONE
calendar              NONE
initial_state         default
s_rt                  INFINITY
h_rt                  INFINITY
s_cpu                 INFINITY
h_cpu                 INFINITY
s_fsize               INFINITY
h_fsize               INFINITY
s_data                INFINITY
h_data                INFINITY
s_stack               INFINITY
h_stack               INFINITY
s_core                INFINITY
h_core                INFINITY
s_rss                 INFINITY
h_rss                 INFINITY
s_vmem                INFINITY
h_vmem                INFINITY


# 添加队列
 qconf -aq rnaseq
 
# 删除队列中的作业
 qdel 2
 
# 查看作业运行详情
  qstat -j 31

 
# 修改队列权重
qconf -mq all.q
修改结果后如下:
(env_nf) [root@qmaster ~]# qconf -sq all.q
qname                 all.q
hostlist              @allhosts
seq_no                0
load_thresholds       np_load_avg=1.75
suspend_thresholds    NONE
nsuspend              1
suspend_interval      00:05:00
priority              10
min_cpu_interval      00:05:00
processors            8
qtype                 BATCH INTERACTIVE
ckpt_list             NONE
pe_list               make smp mpi
rerun                 FALSE
slots                 6,[qmaster.local=8]
tmpdir                /tmp
shell                 /bin/sh
prolog                NONE
epilog                NONE
shell_start_mode      posix_compliant
starter_method        NONE
suspend_method        NONE
resume_method         NONE
terminate_method      NONE
notify                00:00:60
owner_list            NONE
user_lists            NONE
xuser_lists           NONE
subordinate_list      NONE
complex_values        NONE
projects              NONE
xprojects             NONE
calendar              NONE
initial_state         default
s_rt                  INFINITY
h_rt                  INFINITY
s_cpu                 INFINITY
h_cpu                 INFINITY
s_fsize               INFINITY
h_fsize               INFINITY
s_data                INFINITY
h_data                INFINITY
s_stack               INFINITY
h_stack               INFINITY
s_core                INFINITY
h_core                INFINITY
s_rss                 INFINITY
h_rss                 INFINITY
s_vmem                INFINITY
h_vmem                INFINITY


## 查看指定任务状态
qstat -j job-ID
## 删除任务
qdel job-ID
## 查看计算节点资源状况信息-集群状态
qhost
#用来查看所有的job queues和job与机器的分配关系。
qaccess
## 投递任务
qsub -cwd -l vf=*G,p=n,h=node -q bc_rd.q -P RNAProj -binding linear:2 *.sh

-cwd:在当前目录下执行任务,同时,SGE的运行日志也会输出在当前目录
 -l:申请所需的资源。vf=*G设置任务预计使用的内存大小(一般设置的值要稍微大一些,负责容易让节点挂掉),p=n设置所需的CPU数[一个cpu核心数对应一个线程],h=node设置任务指定投递的节点名称。日常使用时,并不是每次都要设置这三个参数,大家可以根据自己的需要自行删减。
 -q:指定任务要投递到队列名称。
 -P: 指定将此作业分配给的项目。如果管理员向你及部分其他用户授予向特定项目提交作业的权限,那么需要增加这一参数。
 -binding linear:2 #将作业绑定到处理器核心
 *.sh:需要投递的任务,建议在脚本前加上完整路径。
 输入这条命令,我们的任务就投递到服务器上啦!
 

 

文章来自个人专栏
批量计算-在线ide
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0