0. 一些基本概念

  • 计算机集群:高性能集群(High Performance Computing,简称HPC)是一组松散或紧密连接在一起工作的计算机。由于这些计算机协同工作,在许多方面它们可以被视为单个系统。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。与网格计算机不同,计算机集群将每个节点设置为执行相同的任务,由软件控制和调度。

关于集群与分布式的区别有一段话总结得很好:集群是个物理形态,分布式是个工作方式。只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道;一个程序或系统,只要运行在不同的机器上,就可以叫分布式,C/S架构也可以叫分布式。集群一般是物理集中、统一管理的,而分布式系统则不强调这一点。所以,集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。

  • 节点是集群中的控制器。它通过专有的管理集群网络连接到集群中的其他节点。每个集群均包含节点,也就是管理数据和执行维护任务的计算单元。

1. 常见的几种资源管理和调度系统

  • SGE(Sun Grid Engine):Sun网格引擎是一种来自于SUN Microsystem的分布式资源管理和调度系统,它用来在基于UNIX的计算环境中优化软件和硬件资源的使用。SGE能用于查找资源池内的闲置资源并利用这些资源;它同样用于通常的一些事务中,例如管理和调度作业到可用资源中。

  • PBS(Portable Batch System):便携式批处理系统接受批处理作业(具有控制属性的shell脚本),保留和保护作业直到它开始运行。因为一个批处理作业是一个无需用户干预的,在计算机系统后台运行的程序,在批处理作业运行过程中,用户无法实时地得到作业运行结果,所以PBS只能在作业执行后,将作业结果返回给提交者。目前,PBS包含开源免费的OpenPBS、商业付费的PBS Pro、Torque三种分支。

  • Condor来自Wisconsin-Madison大学的研究项目。充分利用工作站的空闲时间是Condor的最显著特征。Condor管理的机群由网络中的工作站组成,工作站可以自愿加入或退出。Condor监测网络中所有工作站的状态,一旦某台计算机被认为空闲,便把它纳入到资源池中。在资源池中的工作站被用来执行作业。

  • LSF(Load Sharing Facility):负载共享设施是由加拿大平台计算公司研制与开发的,由Toronto大学开发的Utopia系统发展而来。在使用范围上,LSF不仅用于科学计算,也用于企业的事务处理。功能上,除了一般的作业管理特性外,它还在负载平衡、系统容错、检查点操作、进程迁移等方面作了很好的努力,并力图使之实用化。

2. SGE常见指令

2.1 提交任务

qsub参数:

$ qsub -help
SGE 8.1.9
usage: qsub [options]
[-a date_time] request a start time
[-ac context_list] add context variable(s)
[-Ap fname] add a new parallel environment from file
[-astnode node_shares_list] add sharetree node(s)
[-at thread_name] add/start qmaster thread
[-A account_string] account string in accounting record
[-b y[es]|n[o]] handle command as binary
[-binding [env|pe|set] exp|lin|str] binds job to processor cores
[-c ckpt_selector] define type of checkpointing for job
[-cwd] use current working directory
[-C directive_prefix] define command prefix for job script
[-dc simple_context_list] delete context variable(s)
[-dul listname_list] delete userset list(s) completely
[-e path_list] specify standard error stream path(s)
[-h] place user hold on job
[-hard] consider following requests "hard"
[-he y[es]|n[o]] enable/disable hard error handling
[-help] print this help
[-hold_jid job_identifier_list] define jobnet interdependencies
[-hold_jid_ad job_identifier_list] define jobnet array interdependencies
[-i file_list] specify standard input stream file(s)
[-j y[es]|n[o]] merge stdout and stderr stream of job
[-js job_share] share tree or functional job share
[-jsv jsv_url] job submission verification script to be used
[-l resource_list] request the given resources
[-M mail_list] notify these e-mail addresses
[-m mail_options] define mail notification events
[-masterq wc_queue_list] bind master task to queue(s)
[-mattr obj_nm attr_nm val obj_id_list] modify an attribute (or element in a sublist) of an object
[-N name] specify job name
[-notify] notify job before killing/suspending it
[-now y[es]|n[o]] start job immediately or not at all
[-o path_list] specify standard output stream path(s)
[-ot tickets] set jobs override tickets
[-P project_name] set jobs project
[-p priority] define jobs relative priority
[-pe wc_pe_name slot_range] request slot range for parallel jobs
[-q wc_queue_list] bind job to queue(s)
[-r y[es]|n[o]] define job as (not) restartable
[-sc context_list] set job context (replaces old context)
[-shell y[es]|n[o]] start command with or without wrapping <loginshell> -c
[-soft] consider following requests as soft
[-srqs [rqs_list]] show resource quota set(s)
[-sync y[es]|n[o]] wait for job to end and return exit code
[-S path_list] command interpreter to be used
[-t task_id_range] create a job-array with these tasks
[-v variable_list] export these environment variables
[-verify] do not submit, just verify
[-V] export all environment variables
[-wd working_directory] use working_directory
[-@ file] read commandline input from file
[{command|-} [command_args]]

最常用参数:

- cwd #使用当前工作目录
- binding #将作业绑定到处理器核心
- p #定义工作的相对优先级,-1023 到 1024 , 默认值0
- P #定义项目名称,前提是存在该项目
- q #将作业绑定到队列
- l #请求给定的计算资,如-l arch=solaris64,h_vmem=750M,permas=1

示例qsub -cwd -l vf=2g,p=1 -q queuename.q -P projectname -binding linear:2 test.sh

qsub
-cwd
-l vf=2g,p=1 #vf内存简写,p线程数简写;
#资源可分开写,可写全称,单位可大小写,如-l virtual_free=2G -l num_proc=1。
#关于资源限制域可通过 qconf -sc命令查看
-q queueName.q
-P ProjectName
-binding linear:2 #处理器核心数 linear
test.sh

2.2 查看任务

qstat命令

qstat -j jobid #某个任务详细信息
qstat -u username #某用户的任务
qstat -u \* #所有用户任务
qstat -q all.q -u \* #查看某个队列下所有任务
qstat -q all.q@node1 -u \* #查看某个队列的某一节点下所有任务
qstat -f #查看用户自己在每个节点的任务情况,没啥用

任务的状态:

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

2.3 删除任务

qdel命令

qdel jobid #可同时删除多个,如qdel jobid1 jodid2
qdel -u username #删除某用户所有任务

2.4 挂起/恢复任务

qhold命令:挂起qw的任务

qhold jobid
qhold -u \* qrls jobid #恢复

qmod命令:挂起running中的任务

qmod -sj jobid
qmod -usj jobid #恢复

如果未提交到SGE系统,直接运行的命令用kill -STOP pid 挂起,用kill -CONT pid恢复。

2.5 更改任务属性

qalter命令修改已提交但正处于暂挂状态的作业的属性

参数和qsub一样。

Ref:https://www.bbsmax.com/A/MAzADlxyd9/

集群SGE作业调度系统的更多相关文章

  1. 16、SGE作业调度系统的简介

    转载:http://www.zilhua.com/2222.html http://gridscheduler.sourceforge.net/htmlman/ SGE作业调度系统的简介 一.常见的几 ...

  2. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  3. Kubernetes集群搭建之系统初始化配置篇

    Kubernetes的几种部署方式 1. minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境 ...

  4. Hadoop学习之路(十二)分布式集群中HDFS系统的各种角色

    NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...

  5. Hadoop(五)分布式集群中HDFS系统的各种角色

    NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...

  6. kubernetes集群EFK日志系统搭建

    日志收集架构 Kubernetes 集群本身不提供日志收集的解决方案,一般来说有主要的3种方案来做日志收集: 在节点上运行一个 agent 来收集日志 在 Pod 中包含一个 sidecar 容器来收 ...

  7. Kafka集群---分布式消息系统

    概念: kafka是一种消息中间件 作用: 解耦.冗余.提高扩展性.缓冲 保证顺序.灵活.削峰填谷 异步通信 kafla角色 producer: 生产者,负责发布消息 consumer: 消费者,负责 ...

  8. python包之drmaa:集群任务管理

    目录 1. drmaa简介 2. 安装和配置 3. 示例 3.1 开始和终止会话 3.2 运行工作 3.3 等待工作 3.4 控制工作 3.5 查询工作状态 4. 应用 4.1 写一个简单应用 4.2 ...

  9. Sun Grid Engine (SGE)大型集群作业调度系统

    Oracle Grid Engine 作业调度系统的简介(目前为止我用过PBS和SGE) SGE作业调度系统学习笔记 SGE作业调度 USE of Sun Grid Engine(SGE) 待续~

随机推荐

  1. (三)、Docker常用基础命令

    1.Docker 帮助命令 帮助命令: docker version 查看版本 docker info 查询docker详细信息 docker --help 查看命令帮助 2.Docker 镜像命令 ...

  2. Noip模拟16 2021.7.15

    题目真是越来越变态了 T1 Star Way To Heaven 首先,你要看出这是一个最小生成树的题(妙吧?) 为什么可以呢? 我们发现从两点连线的中点过是最优的,但是上下边界怎么办呢? 我们把上下 ...

  3. spring-cloud-square开发实战(三种类型全覆盖)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文<五分钟搞懂spring-clou ...

  4. word-ladder leetcoder C++

    Given two words (start and end), and a dictionary, find the length of shortest transformation sequen ...

  5. Hdu P1394 Minimum Inversion Number | 权值线段树

    题目链接 题目翻译: 约定数字序列a1,a2,...,an的反转数是满足i<j和ai>aj的数对(ai,aj)的数量. 对于给定的数字序列a1,a2,...,an,如果我们将第1到m个数字 ...

  6. 深入剖析Redis客户端Jedis的特性和原理

    一.开篇 Redis作为目前通用的缓存选型,因其高性能而倍受欢迎.Redis的2.x版本仅支持单机模式,从3.0版本开始引入集群模式. Redis的Java生态的客户端当中包含Jedis.Rediss ...

  7. C#中base 和this

    [意义] this:指当前类,this调用当前类的属性,方法,包括构造函数的方法,继承本类的构造函数 base:指当前类的父类,可调用父类的非私有属性,方法,继承父类的构造函数括号里的参数 [用处] ...

  8. 快速排序平均时间复杂度O(nlogn)的推导

    快速排序作为随机算法的一种,不能通过常规方法来计算时间复杂度 wiki上有三种快排平均时间复杂度的分析,本文记录了一种推导方法. 先放快速排序的伪代码,便于回顾.参考 quicksort(int L, ...

  9. .Net Core微服务——Ocelot(3):超时、熔断、限流

    基本概念 超时.熔断.限流听起来好像很远,但实际上用在方方面面.很多人可能还搞不懂熔断是做什么,其实可以把熔断理解为一种防护措施.做个假设,在微服务体系下,某个下游服务响应很慢,然后随着时间推移,会有 ...

  10. [hdu7078]Pty with card

    显然问题被分为两部分,先考虑如何求$F(n)$-- 令第一次所选的人编号为1,其之后所有人按顺时针依次编号为$2,3,...,n$,那么用一个序列来描述状态,其中第$i$个元素为当前存在的人中编号第$ ...