pbs常用命令和选项
- 格式:doc
- 大小:29.00 KB
- 文档页数:2
pbs提交作业如何如何使⽤使⽤pbs 提交作业1 串⾏任务提交⽤户通过qsub 命令来向系统提交任务,有两种⽅式提交:脚本⽅式和命令⾏⽅式。
(⼀般情况下,不允许root ⽤户使⽤qsub 命令提交作业)1.1 脚本⽅式提交⽤户将需要执⾏的程序或命令写⼊脚本中,再加⼊⼀些必要或者可选的语句,就可以通过脚本⽅式提交。
脚本提交⽐较⽅便,⽤户可以⽤最简单的⽂字编辑器(例如vi )编写⼀个脚本,然后使⽤qsub 命令提交该脚本,pbs 会按照脚本内容执⾏相应的任务。
脚本提交的不⾜之处就是需要⽤户执⾏任务前编写脚本。
脚本⽅式提交任务的⼀般格式为:qsub[script_name],script_name 是任务脚本的名称。
下⾯介绍pbs 任务脚本的编写⽅法。
pbs 任务脚本包括三部分:shell 说明语句:⽤来说明⽤户使⽤的是哪种shell ,例如 #!/bin/sh 说明⽤户需要使⽤Bourne shell ,如果⽤户没有指定,则默认为 Bourne shell pbs 指⽰语句:pbs 指⽰语句是⽤户⽤来请求任务运⾏时所需的资源或设置任务的⼀些属性的。
以#PBS 开头,如#PBS –N taskname 是⽤来设置任务名称的。
pbs 指⽰语句是可选的,⽤户可以不⽤关⼼它如何写,系统会⾃动设置。
pbs 指⽰句的⼀个主要作⽤是请求任务执⾏时所需要的系统资源,如cpu 数⽬,存储容量,运⾏时间,运⾏优先级等等。
以脚本⽅式提交的任务的资源请求是通过pbs 指⽰语句,⼀般格式为 #PBS –l [选项=] [选项对应的值],如#PBS –l ncpus=5表⽰请求5个cpu 为之服务。
系统资源如下表所⽰资源描述举例 arch 所需要的系统结构,只⽤在资源块中 -l arch=linux cput 任务的所有进程拥有的最⼤cpu 执⾏时间 -l cput=1:00:00 file 任务能够创建的⽂件的⼤⼩ -l file=45mb nodes 主机的个数-l nodes=2 ppn 每个主机的处理器个数 -l nodes=2:ppn=2 host指定执⾏主机的名称-l nodes=X:host 分配X 个主机名称中含有host 的执⾏节点mem 任务的所有进程能够分配到的最⼤物理内存数 -l mem=100mb ncpus 请求的cpu 数-l ncups=5 nice 任务运⾏时的nice 优先级值-l nice=3 pcput 任务的任何⼀个进程拥有的最⼤cpu 执⾏时间 -l pcput=1:00:00 pmem 任务的任何⼀个进程能够分配到的最⼤物理内存数 -l pmem=45mb pvmem 任务的任何⼀个进程能够使⽤的虚拟内存的最⼤数 -l pvmem=100mb vmem 任务的所有并发进程能够使⽤的最⼤虚存数 -l vmem=100mb walltime任务可以处于运⾏态的最⼤wall-clock 时间-l walltime=1:00:00注:表中最常⽤的⼏种资源是:nodes, ppn, walltime, ncpus, mem 。
pbs批量删除作业PBS是一种流行的作业调度系统,常用于管理大规模计算集群中的作业。
在使用PBS时,有时我们需要批量删除已经提交的作业,以释放资源或纠正错误。
下面将详细介绍如何使用PBS命令来实现批量删除作业。
我们需要登录到PBS集群的管理节点上。
在终端中输入以下命令:```ssh username@pbs_cluster```其中,username是你的用户名,pbs_cluster是PBS集群的地址。
登录成功后,我们可以使用qstat命令查看当前正在运行的作业列表。
为了批量删除作业,我们需要先确定要删除的作业的ID或名称。
假设我们要删除的作业ID分别为job1、job2和job3。
接下来,我们可以使用qdel命令来删除作业。
该命令的基本语法如下:```qdel job_id```其中,job_id是要删除的作业的ID或名称。
如果要批量删除多个作业,可以将多个job_id用空格分隔,放在qdel命令后面。
例如:```qdel job1 job2 job3```执行以上命令后,PBS系统会按照指定的顺序依次删除这些作业。
如果作业正在运行,系统会尝试终止作业并删除。
需要注意的是,只有作业的所有任务都处于“Running”或“Idle”状态时,才能被删除。
如果有些任务已经完成或处于其他状态,那么这些任务对应的作业无法被删除。
如果要删除所有作业,可以使用如下命令:```qdel -u username```其中,username是要删除作业的用户名。
执行以上命令后,系统会删除该用户提交的所有作业。
除了使用qdel命令,还可以使用qdel命令的其他选项来删除作业。
例如,我们可以使用“-a”选项来删除所有作业,无论其状态如何:```qdel -a```还可以使用“-p”选项来删除指定优先级范围内的作业:```qdel -p priority_start-priority_end```其中,priority_start和priority_end分别是优先级的起始值和结束值。
pbs使用手册PBS(Portable Batch System)是一种用于管理和调度作业的软件系统,广泛应用于高性能计算和云计算环境。
以下是PBS使用手册的简要介绍:1. 作业提交:用户可以使用PBS命令行工具或脚本提交作业。
提交作业时,需要指定作业的名称、脚本文件、执行所需的资源等信息。
作业提交后,PBS会将作业放入队列中等待调度。
2. 作业调度:PBS使用作业调度器来决定作业的执行顺序。
调度器会根据作业的优先级、资源需求和可用资源的情况来选择合适的作业执行。
3. 作业执行:一旦作业被调度器选中,PBS会将作业分配到指定的计算节点上执行。
在作业执行期间,PBS会监控作业的运行状态,确保资源的正确使用和管理。
4. 作业管理:用户可以通过PBS命令行工具或Web界面查看作业的状态、资源使用情况、执行日志等信息。
用户还可以对作业进行控制,如暂停、恢复、杀死等操作。
5. 资源管理:PBS提供了一套完整的资源管理机制,包括对计算节点、存储设备和网络资源的管理。
用户可以通过PBS来申请和释放资源,以满足作业的资源需求。
6. 用户认证和权限管理:PBS支持用户认证和权限管理功能,以确保只有授权用户才能提交和管理作业。
用户需要使用有效的用户名和密码登录系统,并具有相应的权限来执行特定的操作。
7. 日志和监控:PBS提供了详细的日志记录和监控功能,以便用户了解作业的执行情况和系统的运行状态。
用户可以通过查看日志文件来获取作业的执行日志、系统事件等信息。
以上是PBS使用手册的简要介绍,具体的操作细节和配置选项可能因版本和实际应用而有所不同。
建议查阅具体版本的PBS文档或向专业人员咨询以获得更详细的信息和使用指导。
PBS,QSUB常用命令1、后台提交作业qsub语法: qsub [-a date_time] [-A account_string] [-e path] [-h] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-n Node_allocation_Method [-L v1,[v2,[v3,[v4]]]]] [-M user_list] [-N name] [-o path] [-p priority] [-q pool] [-r y|n] [-u user_list] [-v variable_list] [-V] [script]参数: script参数被省略时,该命令可以从标准输入获得脚本文件名。
-a 间。
格式为[[[[CC]YY]MM]DD]hhmm[.SS]。
CC表示世纪,YY 表示年(后两位数字),MM表示月(两位数字),DD表示天(两位数字),hh表示小时(两位数字),mm表示分(两位数字),SS 表示秒(两位数字)。
如果DD指定的是未来日子,而未指定MM,则MM缺省值为当前月,否则,MM的缺省值为下个月。
如果hhmm 指定的未来时间,而未指定DD,则DD的缺省值为当天,否则,DD的缺省值为明天。
如果提交作业时使用该选项,当指定时间还没到时,作业状态显示为”W”。
-e 指定错误输出文件名,格式为[hostname:]path_home。
Hostname是返回错误输出文件的主机名,path_home是错误输出文件的绝对路径,如果指定了相对路径,则相对用户的主目录。
不使用该选项时,缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件-o 指定输出文件名,格式为[hostname:]path_home。
缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件-h 指定在提交作业时,设置用户级’u’挂起。
pbs作业管理命令PBS 提供4 条命令⽤于作业管理。
(1) qsub 命令—⽤于提交作业脚本命令格式:qsub [-a date_time] [-c interval] [-C directive_prefix][-e path] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options][-M user_list][-N name] [-o path] [-p priority] [-q destination] [-r c][-S path_list] [-u user_list][-v variable_list] [-V][-W additional_attributes] [-z][script]参数说明:因为所采⽤的选项⼀般放在pbs 脚本中提交,所以具体见PBS 脚本选项。
例:# qsub aaa.pbs 提交某作业,系统将产⽣⼀个作业号(2) qstat 命令—⽤于查询作业状态信息命令格式:qatat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]参数说明:-f jobid 列出指定作业的信息-a 列出系统所有作业-i 列出不在运⾏的作业-n 列出分配给此作业的结点-s 列出队列管理员与scheduler 所提供的建议-R 列出磁盘预留信息-Q 操作符是destination id,指明请求的是队列状态-q 列出队列状态,并以alternative 形式显⽰-au userid 列出指定⽤户的所有作业-B 列出PBS Server 信息-r 列出所有正在运⾏的作业-Qf queue 列出指定队列的信息-u 若操作符为作业号,则列出其状态。
若操作符为destination id,则列出运⾏在其上的属于user_list 中⽤户的作业状态。
例:# qstat -f 211 查询作业号为211 的作业的具体信息。
集群使用常用命令1.1命令行使用作业调度1.1.1PBS的基本命令提交作业:qsub XXX1.1.2查询作业运行状态:qstat1.1.3删除作业:qdel 作业号2Linux常用命令1.1浏览目录命令用户使用命令行所做的大部分工作是用来定位、列出、创建以及删除文件和目录,下面列举最为常用的这类命令及其解释,更为详细的用法请参见Linux有关书籍。
➢ls 列出文件常用的命令参数选项有-l,-a,-t等。
ls 代表list。
ls -la ——给出当前目录下所有文件的一个长列表,包括以句点开头的隐藏文件。
ls -l *.doc ——列出当前目录下以字母.doc 结尾的所有文件。
ls -a ——显示当前目录所有文件及目录。
ls -d ——将目录像文件一样显示,而不显示该目录下的文件。
ls -R ——列出所有子目录下的文件。
ls -t ——将文件依建立时间之先后次序列出。
ls -ltr s* ——列当前目录下任何名称是s 开头的文件,愈新的文件排愈后。
➢cd [directory] 切换目录cd 代表change directory。
cd ~——切换到用户家目录。
cd /tmp ——切换到目录/tmp。
cd .. ——切换到上一层目录cd / ——切换到系统根目录cd /usr/bin ——切换到/usr/bin 目录。
1.2浏览文件命令➢cat [textfile] 显示文本文件内容cat 代表catenate。
cat /etc/passwd ——显示文本文件passwd 中的内容。
cat test.txt | more ——逐页显示test.txt 文件中的内容。
cat test.txt >>test1.txt ——将test.txt 的内容附加到test1.txt 文件之后。
cat a.txt b.txt >readme.txt ——将文件a.txt 和b.txt 合并成readme.txt 文件。
引言概述:本文将详细介绍PBS管理系统的相关内容。
PBS管理系统是一种专门设计用于管理和调度计算机集群资源的系统。
随着计算机集群的规模和复杂性不断增加,PBS管理系统在提高资源利用率、优化作业调度、降低负载等方面发挥着重要作用。
本文将从五个主要方面进行阐述,分别是资源管理、作业调度、性能优化、用户界面和安全性。
正文内容:一、资源管理1. 节点管理:介绍如何通过PBS管理系统对计算机集群中的节点进行管理,包括添加、删除、配置等操作。
2. 队列管理:详细介绍如何创建和管理多个队列,以及如何为不同类型的作业分配合适的队列。
3. 资源分配策略:探讨不同的资源分配策略,如按照节点数量、负载情况、作业优先级等进行资源分配。
4. 优先级管理:解释如何设置作业的优先级,以便合理分配资源和满足用户需求。
5. 负载平衡:说明如何通过PBS管理系统实现计算机集群的负载平衡,提高资源利用率和系统性能。
二、作业调度1. 作业提交与监控:介绍如何通过PBS管理系统提交和监控作业的状态、进程和资源使用情况。
2. 作业依赖性管理:讨论如何设置作业之间的依赖关系,以实现作业之间的顺序执行和数据传递。
3. 作业调度策略:探讨不同的作业调度策略,包括先来先服务、最短作业优先、公平分享等,以满足用户需求和提高系统性能。
4. 作业优化技巧:介绍一些优化作业调度性能的技巧,如并行作业调度、负载预测等。
5. 容错与恢复:详细说明如何通过PBS管理系统实现作业容错和故障恢复,保证作业的可靠执行。
三、性能优化1. 系统调优:介绍如何通过调整系统参数、优化硬件设备和网络等方式提高系统的整体性能。
2. 作业性能分析:讨论如何通过PBS管理系统对作业性能进行分析,找出性能瓶颈并进行优化。
3. 资源利用率优化:探讨如何通过合理的资源分配和负载平衡来提高资源利用率和系统性能。
4. 作业并行计算优化:解释如何通过并行计算技术优化作业的计算性能,提高作业执行速度和效率。
PBS提交作业介绍PBS(Portable Batch System)是一种用于提交、管理和调度作业的系统。
它是一个开放源代码的作业调度系统,在大规模的并行计算环境中被广泛使用。
本文将详细介绍如何使用PBS提交作业,包括作业的准备、提交、管理和调度等方面。
准备作业在使用PBS提交作业之前,我们需要准备好作业的相关内容。
包括作业的脚本、输入数据和输出路径等。
编写作业脚本作业脚本是用于告诉PBS系统如何运行作业的脚本文件。
它通常是一个批处理脚本,可以使用各种编程语言编写,比如Shell脚本、Python脚本等。
作业脚本需要包括作业的运行命令、输入参数、输出路径等信息。
以下是一个示例的PBS作业脚本:#PBS -N MyJob#PBS -l nodes=1:ppn=8#PBS -l walltime=1:00:00#PBS -o output.log#PBS -e error.logcd $PBS_O_WORKDIRecho "Job started on `hostname` at `date`"# 运行作业命令./myjob.exe -input input.txt -output output.txtecho "Job ended at `date`"上述脚本中的PBS指令用于设置作业的相关参数,包括作业名称、使用节点数量、运行时间限制、标准输出和错误输出文件等。
在作业脚本的末尾,我们可以定义具体的作业运行命令。
准备输入数据在提交作业之前,我们需要确保有足够的输入数据供作业使用。
可以将输入数据存放在本地文件系统或者分布式文件系统中,根据实际情况来选择。
设置输出路径作业运行结束后,输出的结果需要保存在一个确定的路径上。
可以将输出数据存放在本地文件系统或者指定的网络存储中。
提交作业准备完作业相关内容后,我们可以使用PBS提交作业。
在PBS环境下,通过使用qsub命令来提交作业。
作业管理系统(PBS+MAUI)使用说明用户篇12一、 本文档符号说明1、 命令、代码和超链接采用斜体五号字表示2、二、PBS 脚本编辑pbs 系统通过脚本方式提交作业,因此,在发起作业之前,需要编写pbs 系统能够识别的脚本。
1、 作业脚本: 1.1 串行作业:(test.pb)#!/bin/sh #PBS -N test//pbs 任务名#PBS -l nodes=1:ppn=1//指定一个节点与一个处理器核心进行计算echo "This job is "$PBS_JOBID@$PBS_QUEUE cd $PBS_O_WORKDIR touch test.tmp//修改为执行文件1.2 并行作业:(test2.pb)#!/bin/sh #PBS -N test2//pbs 任务名#PBS -l nodes=5:ppn=4//指定5个节点,每节点4个处理器核心进行计算#PBS -q@gnode21 cd $PBS_O_WORKDIR/opt/mpich1.2.7/bin/mpirun -np 20 -machinefile $PBS_NODEFILE ./cpi //修改为可执行并行文件1.3 单进程多线程作业:#!/bin/sh #PBS -N test3//pbs 任务名#PBS -l nodes=1:ppn=4//划分1个节点,每节点4个处理器核心的计算资源cd $PBS_O_WORKDIR3./XXX //修改为可执行文件1.4 多进程多线程作业:#!/bin/sh #PBS -N test3//pbs 任务名#PBS -l nodes=5:ppn=1//划分5个节点,每节点1个处理器核心的计算资源,让pbs 自动扩充计算需要的线程#PBS -q@gnode21 cd $PBS_O_WORKDIR/opt/mpich1.2.7/bin/mpirun -np 20 -machinefile $PBS_NODEFILE ./XXX //修改为可执行并行文件2、 pbs 命令: 2.1 发作业$ qsub test.pb2.2 查看作业状态$ showq2.3 查看节点状态$ pbsnodes -a2.4 删除作业$ canceljob ID3、 其他特殊需求3.1 当需要对作业运行所在节点进行预处理时,如需要在运行作业前source 某个配置文件,可采用在pbs 脚本中添加命令的方式实现,如下(红色为添加部分):#PBS -N test#PBS -l nodes=3:ppn=1echo "This job is "$PBS_JOBID@$PBS_QUEUE for i in $(uniq $PBS_NODEFILE) dorsh $i source XXXX4donempirun …… //执行实际任务!4、 三、其他需要注意的地方1、 由于mpich 编译的多线程程序可能存在导致pbs 僵尸的问题,因此建议大家采用openmpi 编译多线程程序。
MPICH&PBS使用指南一、MPI编程 (1)二、MPICH下编译和运行 (3)三、PBS环境下运行 (4)一、MPI编程1、MPI编程函数介绍MPI实际上是一个提供并行程序消息传递机制的函数库,有40多个函数,常用的有6个基本函数。
下面以C语言为例简单介绍这些函数。
(1)MPI_Init函数定义:int MPI_Init(int *argc, char ***argv)功能:用命令行参数初始化MPI环境输入:argc、argv—表示命令行参数,同C语言的main()函数参数格式,argv中包含欲并行运行的进程数输出:返回值—非零/零表示初始化是否成功说明:该函数必须为程序中第一个调用的MPI函数示例:MPI_Init(&argc, &argv); // argc、argv引用的是mian()函数的参数(2)MPI_Finalize函数定义:int MPI_Finalize (void)功能:结束MPI程序的运行,指结束MPI环境的使用输入:无输出:返回值—非零/零表示结束MPI环境是否成功说明:该函数必须为程序中最后一个调用的MPI函数示例:MPI_ Finalize ();(3)MPI_Comm_size函数定义:int MPI_Comm_size(MPI_Comm comm, int *size)功能:得到总进程数输入:comm 通信域句柄(系统默认的为MPI_COMM_WORLD,也可自己定义)输出:size,即通信域comm内包括的进程数整数(4)MPI_Comm_rank函数定义:int MPI_Comm_rank(MPI_Comm comm, int *rank)功能:得到本进程的进程号输入:comm,该进程所在的通信域句柄输出:rank,调用进程在comm中的标识号(5)MPI_Send函数定义:int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) 功能:发送消息给特定的进程输入:buf 发送缓冲区的起始地址(可选类型)count 将发送的数据的个数(非负整数)datatype 发送数据的数据类型(句柄)dest 目的进程标识号(整型)tag 消息标志(整型)comm 通信域(句柄)输出:无(6)MPI_Recv函数定义:int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag,MPI_Comm comm,MPI_Status *status)功能:接受别的进程发过来的消息输入:count 最多可接收的数据的个数(整型)datatype 接收数据的数据类型(句柄)source 接收数据的来源即发送数据的进程的进程标识号(整型)tag 消息标识与相应的发送操作的表示相匹配相同(整型)comm 本进程和发送进程所在的通信域(句柄)输出:buf 接收缓冲区的起始地址(可选数据类型)status 返回状态(状态类型MPI_Status)2、MPI程序示例MPI程序中必须包含MPI库的头文件,C语言头文件名为mpi.h,FORTRAN语言头文件名为mpif.h。
PBS脚本JobSubmissionandScheduling(PBSScripts)参考:⼀介绍超算系统使⽤作业队列来管理计算任务的执⾏。
将计算任务提交到作业队列后,它们将在队列中等待,直到有可⽤的适当的计算资源。
常见的排队系统为PBS(Portable Batch System.)。
要将作业提交到PBS队列,⽤户可以创建PBS作业脚本(PBS job scripts)。
PBS作业脚本包含有关计算所需资源的信息,以及⽤于执⾏计算的命令。
⼆ PBS Script格式PBS作业脚本是⼀个⼩型⽂本⽂件,其中包含有关作业所需资源的信息,包括时间,节点数和内存。
PBS脚本还包含让超算系统执⾏的命令(commands needed to begin executing the desired computation)。
⽐如linux系统命令(由超算的操作系统决定)。
PBS作业脚本⽰例:1 #!/bin/bash -l2 #PBS -l walltime=8:00:00,nodes=1:ppn=8,mem=10gb3 #PBS -m abe4#*************************5 cd ~/program_directory6 module load intel7 module load ompi/intel8 mpirun -np 8 program_name < inputfile > outputfilePBS脚本的第⼀⾏定义了将使⽤哪种shell读取脚本(系统将如何读取⽂件)。
建议使第⼀⾏#!/ bin / bash -l⽤于PBS查询系统的命令以 #PBS 开头。
上⾯的⽰例脚本中的第⼆⾏包含PBS资源请求。
该⽰例作业将需要8个⼩时,每个节点8个处理器核(ppn),以及10 GB的内存(mem)。
资源请求必须包含适当的值;如果请求的时间,处理器或内存不适合硬件,则该作业将⽆法运⾏。
作业调度系统PBS(Torque)的设置1、修改/var/spool/torque/server_priv/⽬录下的nodes⽂件##Node1 np=16 gpus=4Node2 np=16 gpus=4...其中Node1为计算节点名字,np为逻辑核数,gpus为显卡数该⽂件给出了计算集群的最⼤可⽤资源2、重新启动pbs##\#service pbs_mon restart\#service pbs_server restart\#service pbs_sched restart注意要按照顺序重启服务3、 qmgr 是Torque⽤户对队列进⾏管理的交互界⾯##在root账户下进⼊qmgr\#qmgrQmgr:list queue QueueName //查看队列属性Queue QueueNamequeue_type = Executionmax_user_queuable = 100total_jobs = 0state_count = Transit:0 Queued:4 Held:0 Waiting:0 Running:1 Exiting:0 Complete:0resources_max.ncpus = 12resources_default.ncpus = 12resources_default.nodes = 1resources_default.walltime = 01:00:00mtime = Tue Jan 30 16:14:38 2018resources_assigned.ncpus = 4resources_assigned.nodect = 1max_user_run = 1enabled = Truestarted = True如要启⽤队列Qmgr:set queue QueueName enabled=True相应的设置项在中给出max_user_queuable :队列中⼀个⽤户能提交的最⼤作业数max_user_run :队列中⼀个⽤户同时运⾏的作业数resources_max.ncpus :最⼤可⽤逻辑核数total_jobs :当前提交的作业数如果要求⼀次执⾏⼀个任务,该任务占⽤12个核,其余任务需要排队,则设置max_user_run=1.然后在作业提交脚本.pbs中 -np 12qmgr不需要重新启动pbs服务4、如何将pbs_mom, pbs_server 和 pbs_sched ,并添加为系统服务,设置为开机启动##cd /usr/local/src/torque-2.5.12/contrib/init.d/cp pbs_mom pbs_server pbs_sched /etc/init.d/chkconfig --add pbs_momchkconfig --add pbs_serverchkconfig --add pbs_sched。
PBS作业调度系统简要使用说明提交作业以test01用户登录到lxcn01..04任一节点,并ssh到lx0110上使用qsub命令行提交作业下面是418号作业的输出使用脚本提交作业脚本内容如下:提交作业及查看作业状态(要查看列详尽作业相关请执行qstat -f job_id):下面的为419号作业标准输出部分截图作业提交脚本编写参考其实质是shell脚本,只不过添加了一些PBS参数或设定而已常用的PBS选项有:这里要特别说明一下是的#PBS -l,其格式与qsub -l是一样的,下面举例说明ex1: qsub -l nodes=5等价于脚本中的#PBS -l nodes=5,表示使用集群中任意五个节点来执行该作业ex2: qsub -l nodes=2:server+14等价于脚本中的#PBS -l nodes=2:server+14,表示使用集群中的两个server节点与另外十四个节点来执行该作业ex3: qsub -l nodes=4:ppn=2等价于脚本中的 #PBS -l nodes=4:ppn=2,表示该作业需要四个节点且每个节点都有两个虚拟处理器空闲ex4: qsub -l nodes=lx0111:ppn=4+lx0112:ppn=2等价于脚本中的#PBS -l nodes=lx0111:ppn=4+lx0112:ppn=2,表示该作业需要lx0111上的四个空闲处理器与lx0112上的两个空闲处理器来共同完成注:更详细用法请参照官方手册常用命令pbsnodes: 查看节点状态相关参数有:-a 列出所有结点及其属性,属性包括“state”和“properties”-o 将指定结点的状态标记为“offline”。
这将帮助管理员暂时停止某些结点的服务-l 以行的方式列出被标记的结点的状态,如-l free,-l offline-c 清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业-r 清除指定结点的“offline”状态qsub: 作业提交,前面已有举例qdel: 取消作业,指定相关作业的ID号即可,非结束态的作业才能被取消qhold: 挂起作业qrls: 取消挂起qstat:查看作业状态qstat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]参数说明:-f jobid 列出指定作业的信息-a 列出系统所有作业-i 列出不在运行的作业-n 列出分配给此作业的结点-s 列出队列管理员与scheduler所提供的建议-R 列出磁盘预留信息-Q 操作符是destination id,指明请求的是队列状态-q 列出队列状态,并以alternative形式显示-au userid 列出指定用户的所有作业-B 列出PBS Server信息-r 列出所有正在运行的作业-Qf queue 列出指定队列的信息其中,有以下几种状态C:作业完成E:作业退出H:作业挂起中Q:作业排队中R:作业运行中T:作业被移走W:作业等待中S:作业中断更多更详细内容:Do Not Touch!!!通过队列资源控制实现对用户可用资源的控制先建立一个队列test00并指定队列成员能使用的最大CPU核数为100,命令如下qmgr -c 'create queue test00'qmgr -c 'set queue test00 queue_type = Execution'qmgr -c 'set queue test00 resources_max.procct = 100'qmgr -c 'set queue test00 acl_group_enable = True'qmgr -c 'set queue test00 acl_groups = users'qmgr -c 'set queue test00 enabled = True'qmgr -c 'set queue test00 started = True'队列创建好后,测试提交;测试脚本如下:[test01@lx0110 ~]$ cat test.pbs#PBS -N test00#PBS -q test00#PBS -l nodes=10:ppn=12NP=`cat $PBS_NODEFILE | wc -l`cd $PBS_O_WORKDIR#cat $PBS_NODEFILE | uniqecho Job started at `date`sleep 20echo Job finished at `date`测试结果如下:[test01@lx0110 ~]$ qsub test.pbsqsub: Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement。
pbs常用命令和选项
2009-05-01 22:24一、基本选项
pbs是Protable Batch System的缩写,是一个任务管理系统。
当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。
下面是一个简单的PBS脚本:
#PBS -l nodes=20
#PBS -N snaphu
#PBS -j oe
#PBS -l walltime=24:00:00
#PBS -l cput=1:00:00
#PBS -q dque
cd $PBS_O_WORKDIR
cat $PBS_NODEFILE $PBS_NODEFILE> NODEFILE
mpirun -hostfile NODEFILE -np `cat NODEFILE |wc -l` ./mpiTest
将这个脚本保存成submit
然后qsub submit就将这个mpiTest的任务提交给了系统。
脚本中#PBS为脚本选项,用于设置一些参数。
#PBS -l表示资源列表,用于设定特定任务所需的一些参数。
这里的NODES表示并行环境下可以使用的节点数,而walltime表示任务最大时限,而cput表示cpu时间的最大时限,运行时间和cpu使用时间超过对应的时限,任务就会以超时退出。
这三个参数不是PBS脚本参数,而是并行环境所需的参数。
#PBS -N表示任务名称
#PBS -j表示系统输出,如果是oe,则标准错误输出(stderr)和标准输出(stdout)合并为stdout,如果是eo,则合并为stderr,如果没有设定或设定为n,则stderr和stdout分开。
#PBS -q表示当前任务选用的队列。
在并行环境下,一个系统中往往有多个队列,任务提交后,将在所选的队列中排除等候。
系统中有哪些队列可以用qstat -q查看。
二、简单命令
任务提交后,需要查看任务信息和环境信息,有如下常用命令。
qstat 查看本用户提交的任务
qstat -n 同上,输出内容稍有不同
qstat -q 查看系统中所有的队列,以及每个队列中任务的运行和等候情况。
showq 查看系统中所有运行的任务。
qdel id 删除JOBNAME为id的任务。
该任务如果在等待,则可以有这个命令删除,如果已经开始运行,则无法删除。
三、参数传递
qsub submit -l nodes=4 -v x=1,y=2
其中,-l nodes=4本来就是一个#PBS选项,既可以放在submit文件中,又可以放到命令行上。
-v x=1,y=2为一个变量列表,和shell命令一样,在submit文件中可以用$x,$y来调用这两值。