PBS作业调度使用方法

PBS作业调度使用方法
PBS作业调度使用方法

PBS作业调度使用方法:

1.IBM HPC Platform 作业提交流程

用户需要使用集群资源进行作业计算时,需要使用作业调度系统。

IBM HPC Platform集群采用的是开源的Torque+Maui作业调度系统。

●任何用户都需要产生Job_que.sh任务作业脚本:

>> genQue

当前文件夹下会产生一个Job_que.sh 的shell作业脚本文件

●编辑Job_que.sh任务作业脚本:

>> vi Job_que.sh

●提交Job_que.sh任务作业脚本:

>> qsub Job_que.sh

注意:在Job_que.sh中,所有任务的运行时间超过120小时的情况下,job作业将会被自动停止!如果有疑问和延长作业运行时间的需要请直接联系管理员。

具体的更多关于任务作业脚本的说明、使用和提交请参考vi和本章第2小节:Torque PBS作业调度系统使用说明。

2.Torque PBS作业调度系统使用说明

Torque PBS 提供对批处理作业和分散的计算节点(Compute nodes)的控制。

PBS是Protable Batch System的缩写,是一个任务管理系统。当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。

●matlab作业的PBS脚本说明:

#!/bin/sh

#PBS -N JOB

#PBS -l nodes=1:ppn=8

#PBS -l feature=xe

#PBS -l naccesspolicy=singlejob

#PBS -o RunJob.out

#PBS -e RunJob.err

#PBS -l walltime=120:00:00

#PBS -q batch

echo --------- `date` ----------

echo HomeDirectory is $PWD

echo

echo Current Dir is $PBS_O_WORKDIR

echo

cd $PBS_O_WORKDIR

echo "------------This is the node file -------------"

cat $PBS_NODEFILE

echo "-----------------------------------------------"

cat $PBS_NODEFILE > host.mpd

np=$(cat $PBS_NODEFILE | wc -l)

echo The number of core is $np

echo

echo

#-----------------------------------------------------#

# OpenMPI Job Submitting Example #

#

# mpirun -np $np -machinefile host.mpd $BINPATH ...

#

#

#-__--------------------------------------------------#

# -__- have fun! #

matlab –nojvm –nodesktop < test.m > log

将这个脚本保存成为Job_que.sh后,使用然后qsub Job_que.sh就将这个任务提交给了系统。最后可以通过查看我那件下面log文件查看程序运行结果。

串行作业C程序作业的PBS脚本说明:

使用vi命令编辑一段最简单的串行C语言程序hello.c:

>> vi hello.c

使用C编译器编译hello.c程序,生成可执行命令hello:

>> icc –o hello hello.c

成功编译后,修改PBS作业提交脚本Job_que.sh,如下:>> genQue

>> vi Job_que.sh

其中我们只使用一个核作为计算资源!

#!/bin/sh

#PBS -N JOB

#PBS -l nodes=1:ppn=1

#PBS -l feature=xe

#PBS -l naccesspolicy=singlejob

#PBS -o RunJob.out

#PBS -e RunJob.err

#PBS -l walltime=120:00:00

#PBS -q batch

echo --------- `date` ----------

echo HomeDirectory is $PWD

echo

echo Current Dir is $PBS_O_WORKDIR

echo

cd $PBS_O_WORKDIR

echo "------------This is the node file -------------"

cat $PBS_NODEFILE

echo "-----------------------------------------------"

cat $PBS_NODEFILE > host.mpd

np=$(cat $PBS_NODEFILE | wc -l)

echo The number of core is $np

echo

echo

#-----------------------------------------------------#

# OpenMPI Job Submitting Example #

#

# mpirun -np $np -machinefile host.mpd $BINPATH ...

#

#

#-__--------------------------------------------------#

# -__- have fun! #

./hello > log

将这个脚本保存成为Job_que.sh后,使用然后qsub Job_que.sh就将这个任务提交给了系统。最后可以通过查看我那件下面log文件查看程序运行结果。

并行MPI作业C程序作业的PBS脚本说明:

使用vi命令编辑一段最简单的串行C语言程序mpihello.c:>> vi mpihello.c

使用MPI C编译器编译hello.c程序,生成可执行命令hello:>>mp icc –o mpihello mpihello.c

成功编译后,修改PBS作业提交脚本Job_que.sh,如下:

>> genQue

>> vi Job_que.sh

其中我们只使用一个核作为计算资源!

#!/bin/sh

#PBS -N JOB

#PBS -l nodes=1:ppn=4

#PBS -l feature=xe

#PBS -l naccesspolicy=singlejob

#PBS -o RunJob.out

#PBS -e RunJob.err

#PBS -l walltime=120:00:00

#PBS -q batch

echo --------- `date` ----------

echo HomeDirectory is $PWD

echo

echo Current Dir is $PBS_O_WORKDIR

echo

cd $PBS_O_WORKDIR

echo "------------This is the node file -------------"

cat $PBS_NODEFILE

echo "-----------------------------------------------"

cat $PBS_NODEFILE > host.mpd

np=$(cat $PBS_NODEFILE | wc -l)

echo The number of core is $np

echo

echo

#-----------------------------------------------------#

# OpenMPI Job Submitting Example #

#

# mpirun -np $np -machinefile host.mpd $BINPATH ...

#

#

#-__--------------------------------------------------#

# -__- have fun! #

Mpirun –np $np mpihello > log

将这个脚本保存成为Job_que.sh后,使用然后qsub Job_que.sh就将这个任务提交给了系统。最后可以通过查看我那件下面log文件查看程序运行结果。

3.Torque PBS作业调度系统命令说明

PBS脚本文件由脚本选项和运行脚本两部分组成:

i.PBS作业脚本选项(若无-C选项,则每项前面加‘#PBS’);

ii.运行脚本同LINUX下一般的运行脚本文件。

脚本中#PBS为脚本选项,用于设置一些参数:

●#PBS –N表示任务名称。name限15 个字符,首字符为字母,无空格。

●#PBS –l表示资源列表,用于设定特定任务所需的一些参数。这里的nodes表示并行

环境下可以使用的节点数,而walltime表示任务最大时限,而cput 表示cpu时间的最大时限,运行时间和cpu使用时间超过对应的时限,任务就会以超时退出。这三个参数不是PBS脚本参数,而是并行环境所需的参数。

●#PBS -j表示系统输出,如果oe,则标准错误输出(stderr)和标准输出(stdout)合并为

stdout,如果是eo,则合并为stderr,如果没有设定或设定为n,则stderr和stdout 分开。

●#PBS -q表示当前任务选用的队列。在并行环境下,一个系统中往往有多个队列,任

务提交后,将在所选的队列中排除等候。系统中有哪些队列可以用qstat -q查看。

●#PBS-a date_time:date_time 格式为:[[[[CC]YY]MM]DD]hhmm[.SS]。表示

经过date_time 时间后作业才可以运行。

●#PBS -p priority:任务优先级,整数,[-1024,1023],若无定义则为0.

●#PBS-M user_list:定义有关此作业的mail 发给哪些用户。

●#PBS -I:以交互方式运行

●#PBS-l resource_list:定义资源列表。以下为几个常用的资源种类。

cput=N :请求N 秒的CPU 时间; N 也可以是hh:mm:ss 的形式。

mem=N[K|M|G][B|W]:请求N {kilo|mega|giga}{bytes|words} 大小的内存。

nodes=N:ppn=M :请求N 个结点,每个结点M 个处理器。

●#PBS -m mail_options :mail_option 为

a:作业abort 时给用户发信;

b:作业开始运行发信;

e:作业结束运行时发信。若无此选项,默认为a。

●#PBS -W additional_attributes :作业的其它属性。

●#PBS -z :指明qsub 命令提交作业后,不在终端显示作业号。

PBS常用命令格式:

●qsub

命令:用于提交作业

例:# qsub Job_que.sh 提交作名称为Job_que.sh的作业

●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 列出指定队列的信息

-u 若操作符为作业号,则列出其状态。

例# qstat -f 211 查询作业号为211的作业的具体信息。

●qdel

命令:用于删除已提交的作业

参数说明:

-W 间隔时间

例:# qdel -W 15 211 15秒后删除作业号为211的作业

更多的关于Torque和Maui的使用,请参考《资源管理软件TORQUE 与安装、设置》一文。

Torque官方网站说明文档:

https://www.360docs.net/doc/1814643407.html,/products/torque/docs/

Maui官方网站说明文档:

https://www.360docs.net/doc/1814643407.html,/products/maui/docs/mauiadmin.shtml

4.Torque+Maui作业调度系统介绍

从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统性能会变得很差。资源管理就是管理用户提交的作业,合理给各个作业分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。简单的说,集群资源由实现如下几个部分:

●资源管理器:为了确保分配给作业合适的资源,集群资源管理需要维护一个。这个

数据库记录了集群系统中各种资源的属性和状态、所有用户提交的请求和正在运

行的作业。策略管理器根据这些数据和指定的调度策略生成优先级列表。资源管理

器根据这优先级列表调度作业。资源管理器还应该具有资源预留能力。这样不仅可

以保留强大的资源给需要的作业,而且可以预留一定的冗余资源以应付集群中的结

点失效和突发的计算。

●作业调度策略管理器:策略管理器根据资源管理器得到各个结点上的资源状况和系

统的作业信息生成一个优先级列表。这个列表告诉资源管理器何时在哪些结点上运

行哪个作业。策略管理器不仅要提供一个复杂的参数集合去定义计算环境和作业,

而且要为这个定义提供简捷灵活的表达方式以允许实现策略驱动的资源调度。

在IBM HPC Platform中我们采用了Torque+Maui的资源管理和作业调度系统;其中Torque作为集群资源管理器,而Maui则是作为调度策略管理器。

PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一。PBS的目前包括openPBS, PBS Pro和Torque三个主要分支. 其中OpenPBS是最早的PBS系统, 目前已经没有太多后续开发, PBS pro是PBS的商业版本, 功能最为丰富. Torque是Clustering公司接过了OpenPBS, 并给与后续支持的一个开源版本。

应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。

Maui集群调度器是Moab集群套件前身,是一个开放源码的集群和超级计算机作业调度器(scheduler)。PBS是一个用于作业分配的调度器(scheduler),其主要任务是分配批作业计算任务到现有的计算资源上。以下版本的PBS系统目前可用: OpenPBS:没有技术支持的原始开源版本; PBSPro(PBS专业版):由Altair Engineering发行和支持的商业版本; Torque:衍生的OpenPBS,由Cluster Resources Inc.发展,支持和维护

Maui 是一个高级的作业调度器。它采用积极的调度策略优化资源的利用和减少作业的响应时间。Maui的资源和负载管理允许高级的参数配置:作业优先级(Job Priority)、调度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和预留策略(Reservation Policy)。Maui的机制允许资源和服务的直接传递、策略解除(Policy Exemption)和指定特征的受限访问。Maui采用高级的资源预留架构可以保证精确控制资源何时、何地、被谁、怎样使用。Maui的预留架构完全支持非入侵式的元调度。

Maui的设计得益于世界最大的高性能计算中心的经验。Maui本身也提供测试工具和模拟器用于估计和调节系统性能。

Maui 需要资源管理器与其配合使用。我们可以把Maui想象为PBS中的一个插入部件。

PBS作业调度使用方法

PBS作业调度使用方法: 1.IBM HPC Platform 作业提交流程 用户需要使用集群资源进行作业计算时,需要使用作业调度系统。 IBM HPC Platform集群采用的是开源的Torque+Maui作业调度系统。 ●任何用户都需要产生Job_que.sh任务作业脚本: >> genQue 当前文件夹下会产生一个Job_que.sh 的shell作业脚本文件 ●编辑Job_que.sh任务作业脚本: >> vi Job_que.sh ●提交Job_que.sh任务作业脚本: >> qsub Job_que.sh 注意:在Job_que.sh中,所有任务的运行时间超过120小时的情况下,job作业将会被自动停止!如果有疑问和延长作业运行时间的需要请直接联系管理员。 具体的更多关于任务作业脚本的说明、使用和提交请参考vi和本章第2小节:Torque PBS作业调度系统使用说明。 2.Torque PBS作业调度系统使用说明 Torque PBS 提供对批处理作业和分散的计算节点(Compute nodes)的控制。 PBS是Protable Batch System的缩写,是一个任务管理系统。当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。 ●matlab作业的PBS脚本说明:

#!/bin/sh #PBS -N JOB #PBS -l nodes=1:ppn=8 #PBS -l feature=xe #PBS -l naccesspolicy=singlejob #PBS -o RunJob.out #PBS -e RunJob.err #PBS -l walltime=120:00:00 #PBS -q batch echo --------- `date` ---------- echo HomeDirectory is $PWD echo echo Current Dir is $PBS_O_WORKDIR echo cd $PBS_O_WORKDIR echo "------------This is the node file -------------" cat $PBS_NODEFILE echo "-----------------------------------------------" cat $PBS_NODEFILE > host.mpd np=$(cat $PBS_NODEFILE | wc -l) echo The number of core is $np echo echo #-----------------------------------------------------# # OpenMPI Job Submitting Example # # # mpirun -np $np -machinefile host.mpd $BINPATH ... # # #-__--------------------------------------------------# # -__- have fun! # matlab –nojvm –nodesktop < test.m > log 将这个脚本保存成为Job_que.sh后,使用然后qsub Job_que.sh就将这个任务提交给了系统。最后可以通过查看我那件下面log文件查看程序运行结果。

GPU提交作业方法详细介绍-1

目前GPU平台提供以下两种使用方式,禁止直接在登录节点上运行程序。 1. 任务提交方式:qsub 提交作业例子: $qsub mpi.pbs 作业提交例子脚本mpi.pbs: #!/bin/bash #PBS -N test (作业名,限15 个字符,首字符为字母,无空格) #PBS -l nodes=2:ppn=8 (请求N 个节点,每个节点M 个处理器) #PBS -l walltime=07:30:00 (估计最大运算时间为1000 小时,若没有设置这项,系统为自动按所在队列默认walltime 处理) #PBS -j oe (将标准输出信息与标准错误信息合并输出到文件) (#PBS –q XXX) #PBS –m e (发送邮件给用户,n 不发送邮件;a 当作业被批处理系统中断时,发送邮件;b 当作业开始执行时,发送邮件;e 当作业执行结束时,发送邮件) #PBS –M XXXX@https://www.360docs.net/doc/1814643407.html, (申明邮箱地址) cd $PBS_O_WORKDIR (进入作业调度目录) MPI_HOME=/state/partition1/soft/compiler/mvapich2/1.2p1/gcc.pgf90 NSLOTS=`cat ${PBS_NODEFILE} | wc -l` (计算申请到的cpu数目) time -p ${MPI_HOME}/bin/mpirun_rsh -ssh -np ${NSLOTS} -hostfile ${PBS_NODEFILE} ./XXX chn >&out.dat (程序运行部分,XXX为程序名,chn为输入数据,out.dat为输出数据)exit 0 (退出) 2. 直接使用命令行方式登录计算节点提交作业。 方法: 首先通过ssh登录https://www.360docs.net/doc/1814643407.html, 进去后先查看哪些计算节点是空闲的,有2种方法: 1. 输入pestat命令 看到所有计算节点状况,其中状态为“free”的就是空闲计算节点。 2. 进入ganglia网页查看:https://www.360docs.net/doc/1814643407.html,/ganglia/ 网页下方各节点状况图中,白色图的、名字以compute开头的节点属于空闲计算节点。 注意: 提供给用户使用的30个计算节点是从compute-0-19到compute-0-48。选择空闲计算节点的顺序应该从标号由大到小的顺序选,如compute-0-37到compute-0-48空闲时,应先选compute-0-48,其次compute-0-47这样。 输入: ssh 空闲计算节点 即可登录到相应的空闲计算节点。 如:$ssh compute-0-43 compute-0-43是空闲计算节点名

PBS管理系统

PBS管理系统 (一)作业提交系统Torque个人安装总结(PBS) PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。 PBS 的目前包括openPBS,PBS Pro和Torque三个主要分支。其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。 下面是本人安装torque的过程。 一、Torque安装 在master(管理结点上) 1、解压安装包 [root@master tmp]# tar zxvf torque-2.3.0.tar.gz 2、进入到解压后的文件夹 ./configure --with-default-server=master make make install 3、 (1)[root@master torque-2.3.0]#./torque.setup 必须是个普通用户 (2)[root@master torque-2.3.0]#make packages 把产生的 tpackages , torque-package-clients-linux-x86-64.sh, torque-package-mom-linux-x86-64.sh 拷贝到所有节点。 (3)[root@master torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install [root@master torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install

PBS用户使用指南

PBS是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运行,程序所需的硬件资源由PBS管理和分配。 1、PBS命令 PBS提供用于作业管理的命令。 (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的作业的具体信息。 (3) qdel 命令—用于删除已提交的作业 命令格式:qdel [-W 间隔时间] 作业号

PBS管理系统--torque

PBS 管理系统 (一)作业提交系统Torque 个人安装总结(PBS) PBS 是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。PBS 的目前包括openPBS,PBS Pro 和Torque 三个主要分支。其中OpenPBS 是最早的PBS 系统,目前已经没有太多后续开发,PBS pro 是PBS 的商业版本,功能最为丰富。Torque 是Clustering 公司接过了OpenPBS,并给与后续支持的一个开源版本。 下面是本人安装torque 的过程。 一、Torque 安装 在master(管理结点上) 1、解压安装包 [root@master tmp]# tar zxvf torque-2.3.0.tar.gz 2、进入到解压后的文件夹 ./configure --with-default-server=master make make install 3、 (1)[root@master torque-2.3.0]#./torque.setup 必须是个普通用户 (2)[root@master torque-2.3.0]#make packages 把产生的 tpackages , torque-package-clients-linux-x86-64.sh, torque-package-mom-linux-x86-64.sh 拷贝到所有节点。 (3)[root@master torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install [root@master torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install

PBS作业调度应用与说明

PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一. PBS的目前包括openPBS, PBS Pro和Torque三个主要分支. 其中OpenPBS是最早的PBS系统, 目前已经没有太多后续开发, PBS pro是PBS的商业版本, 功能最为丰富. Torque是Clustering公司接过了OpenPBS, 并给与后续支持的一个开源版本. PBS的应用不同于一般的直接运行: mpirun –np number ./executable_file 直接运行上句,则只能在单个节点上进行并行计算。如果要在多个节点上并行执行则要写machinefile或p4pgfile,两种文件的具体写法参考张林波等《并行计算导论》。运行命令分别为: mpirun –machinefile filename mpirun –p4pg filename 应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。 torque PBS 提供对批处理作业和分散的计算节点(Compute nodes)的控制。 ?安装Torque组件:在一个节点上(head node)安装pbs_server,所有计算节点上安装pbs_mom,所有计算节点和提交节点上安装PBS客户端。 至少做最基本的配置,使Torque系统跑起来,也就是使pbs_server 能知道该和哪些机器通话。 ?在pbs_server上创建一个作业提交队列。 ?在集群的所有节点上指定一个cluster name作为property。这可以用qmgr命令做到。比如:

PBS实验指导书

PBS实验指导书 1.PBS简介 PBS(Portable Batch System)最初由NASA的Ames研究中心开发,目的是提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间路由。PBS 独立的调度模块允许系统管理员定义资源和每个作业可使用的数量。调度模块存有各个可用的排队作业、运行作业和系统资源使用状况信息,系统管理员可以使用PBS提供的TCL、BACL、C过程语言。PBS的调度策略可以很容易被修改,以适应不同的计算需要和目标。 ①PBS的结构及功能。PBS主要由4个部分组成:控制台、服务进程、调度进程和执行进程。控制台实质上由一系列PBS提供的命令构成,PBS同时还提供了图形化界面XPBS,实现了图形界面与PBS命令的映射:服务进程即pbs_server(简称server),是PBS运行的核心,它集中控制整个集群上的作业运作。调度进程即pbs_sched,它包含了作业运行及运行地点和时间的站点控制策略。执行进程即pbs_mom,实际上由它产生所有正在执行的作业。 ②调度策略。PBS为了调度那些应该放在执行队列的

作业,提供了一个单独的进程。这是一个灵活的机制,可以实现大量的策略。这个调度程序使用标准的PBS API来和服务器通信,使用一个额外的API来和PBS执行进程通信。通过使用一些额外提供的API,可以增强调度的策略,进而实现一个可替换的调度程序。第一代批处理系统和许多其他的批处理系统都使用大量基于限制作业或控制调度作业的队列。为了按照时间来控制作业的排序,队列会被打开或关闭,或者限制载队列里运行作业的数量;而PBS支持多重队列,并且这些队列有很多其他批处理系统所使用的作业调度属性,PBS服务器本身并不运行作业,也不添加任何限制,这些都是由队列属性实现的。事实上,调度程序仅仅拥有不超过一个有管理员特权的客户端。 控制调度的服务器和队列属性可以通过拥有特权的客户端来调整,这些特权命令是qmgr。然而,这些控制通常驻留在调度程序上,而不是服务器上。这些调度程序必须检查服务器、队列和作业的状态,决定服务器和队列属性的设置。在之后的决策中,调度程序必须使用这些设置。 另一个方法就是whole pool方法,所有的作业都放在一个单独的队列中,调度程序评估每个作业的特点并且决定运行哪一个作业。这些策略能很容易地包括一些因素,如每天的运行时间、系统的装载、作业的大小等。队列里作业的顺序不需要被考虑。这个方法的主要优势在于用户可以根据自

PBS命令与使用

PBS(Portable Batch System) 由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机和大规模并行系统。PBS主要有如下特征: ?易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。 ?移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。 ?适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。 ?灵活性:支持交互和批处理作业。 OpenPBS(https://www.360docs.net/doc/1814643407.html,/)是PBS的Open Source的实现。商业版本的PBS可以参照:https://www.360docs.net/doc/1814643407.html,/。 1、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 列出式显示 -au userid 列出指定用户的所有作业 -B 列出PBS Server信息 -r 列出所有正在运行的作业 -Qf queue列出指定队列的信息 -u 若操作符为作业号,则列出其状态。 若操作符为destination id,则列出运行在其上的属于user_list中用户的作业状态。 例:# qstat -f 211 查询作业号为211的作业的具体信息。 (3) qdel命令—用于删除已提交的作业 命令格式:qdel [-W间隔时间]作业号 命令行参数: 例:# qdel -W 15 211 15秒后删除作业号为211的作业 (4) qmgr命令—用于队列管理

lsdyna pbs教程

高性能计算平台ANSYS/LS-DYNA算例刘文华(541844639@https://www.360docs.net/doc/1814643407.html,), Apr. 2010 作者简介:刘文华,中南大学机电工程学院冶机所硕士研究生,师从夏毅敏教授,主要研究方向为大型机械装备的数值仿真和模拟。 目录 1.1. 引子 (1) 1.2.认识ANSYS/LS-DYNA (1) 1.2.1. 什么时候我需要它的帮忙? (1) 1.2.2. 为什么我们需要在LINUX系统下进行ANSYS/LS-DYNA的运算? (3) 1.3. LINUX系统下应用算例 (4) 1.3.1. K文件的生成 (4) 1.3.2. K文件的提交 (5) 1.1. 引子 时下越来越多的人使用ANSYS/LS-DYNA,但大部分的人对LINUX系统下ANSYS/LS-DYNA的计算过程并不太了解,这里抛砖引玉,写下LINUX系统下ANSYS/LS-DYNA应用算例,不当之处敬请指正。 1.2.认识ANSYS/LS-DYNA 1.2.1. 什么时候我需要它的帮忙?

LS-DYNA是世界上最著名的通用显式动力分析程序,能够模拟真实世界的各种复杂问题,特别适合求解各种二维、三维非线性结构的高速碰撞、爆炸和金属成型等非线性动力冲击问题,同时可以求解传热、流体及流固耦合问题。在工程应用领域被广泛认可为最佳的分析软件包。 LS-DYNA程序是功能齐全的几何非线性(大位移、大转动和大应变)、材料非线性(140多种材料动态模型)和接触非线性(50多种)程序。它以Lagrange算法为主,兼有ALE和Euler算法;以显式求解为主,兼有隐式求解功能;以结构分析为主,兼有热分析、流体-结构耦合功能;以非线性动力分析为主,兼有静力分析功能(如动力分析前的预应力计算和薄板冲压成型后的回弹计算);军用和民用相结合的通用结构分析非线性有限元程序。 具体来说,LS-DYNA应用领域如下: 1.汽车工业 碰撞分析;气囊设计;乘客被动安全;部件加工 2.航空航天 鸟撞;叶片包容;飞机结构冲击动力分析;碰撞,坠毁;冲击爆炸及动态载荷;火箭级间分离模拟分析;宇宙垃圾碰撞;特种复合材料设计 3.制造业

pbs系统使用文档

作业管理系统(PBS+MAUI)使用说明 用户篇 1

2 一、 本文档符号说明 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 并行作业:(test 2.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_WORKDIR

3 ./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.pb 2.2 查看作业状态 $ showq 2.3 查看节点状态 $ pbsnodes -a 2.4 删除作业 $ canceljob ID 3、 其他特殊需求 3.1 当需要对作业运行所在节点进行预处理时,如需要在运行作业前source 某个配置文件,可采用在pbs 脚本中添加命令的方式实现,如下(红色为添加部分): #PBS -N test #PBS -l nodes=3:ppn=1 echo "This job is "$PBS_JOBID@$PBS_QUEUE for i in $(uniq $PBS_NODEFILE) do rsh $i source XXXX

PBS使用说明

PBS使用说明 PBS是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运行,程序所需的硬件资源由PBS管理和分配。 PBS(Portable Batch System)是由NASA开发的灵活的批处理系统。它被用于集群系统、超级计算机和大规模并行系统。PBS主要有如下特征: 易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。 移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。 适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。 灵活性:支持交互和批处理作业。 OpenPBS( https://www.360docs.net/doc/1814643407.html,/)是PBS的Open Source的实现。商业版本的PBS可以参照:https://www.360docs.net/doc/1814643407.html,/。 1、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所提供的建议

PBS简要使用说明

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号即可,非结束态的作业才能被取消

PBS 脚本实例说明

PBS脚本实例说明 【摘要】本文主要通过一个算例来详细描述 PBS脚本。以下为提交 wrf 作业的脚本实例,解释说明部分用 ##开头和结尾。此 PBS脚本表明本次提交的作业申请计算资源为 2个计算节点,每个计算节点 12个 cpu 核,内存为 24G,其中红色部分,用户可根据具体需要进行修改。 #PBS -N wrf ##(#PBS 表示 PBS 指令,以#PBS 开头;-N 为 PBS 指令参数,用于指定提交作业名称,wrf 表示作业名)。## #PBS -l nodes=2:ppn=12 ##(#PBS 表示 PBS 指令,-l 为 PBS 指令参数,表示申请资源列表;nodes=2:ppn=12 表示申请 2 个节点,每个节点 12 个 cpu 核, 之间用分号隔开。注意与输入文件保持一致)## #PBS -j oe ##(#PBS 表示 PBS 指令,-j 为 PBS 指令参数,表示合并标准输出和标准错误输出至同一个文件;o 表示标准输出文件的路径,e 表示标准错误输出的路径,缺省的情况下,PBS 系统把标准输出和标准错误输出放在用户提交作业的目录下。)## #PBS -l walltime=1000:00:00 ##(#PBS 表示 PBS 指令,-l 为 PBS 指令参数,表示申请资源列表;walltime 为估计最大运算时间,1000:00:00 表示设为 1000 小时 0 分 0 秒。若没有设置这项,系统会自动按所在队列默认处理,超时系统会自动中断作业。)## nodecpu=`cat /proc/cpuinfo|grep processor|wc -l` ## (反引号内的意思为计算系统可用的 cpu 核数目,然后赋值给变量 nodecpu。反引号即键盘左上角与“~”在同一键上的符号,英文为Backquote)## id=`echo $PBS_JOBID|awk -F. '{print $1}'` ##(定义作业 ID 号)## NP=`cat $PBS_NODEFILE|wc -l` ##(计算申请的 cpu 核数目,并后赋值给变量 NP)## echo "The Jobbed is $id" echo "Worker dir is $PBS_O_WORKDIR" echo "Excuting Hosts is flowing:" cat $PBS_NODEFILE echo "begin time is `date`" if [ $NP -lt $nodecpu ];then sharecpu=$NP

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‘挂起。如果不指定,则设置挂起类型为‘n‘,即不挂起。 -I 指定作业以交互方式运行。 -j 指定合并错误输出和实际输出。如果指定‘oe‘,则合并到标准输出文件中;如果指定‘eo‘,则合并到标准错误输出文件中. -k 指定执行主机是否保留错误输出和实际输出。如果指定?o‘,则仅保留标准输出;如果指定‘e‘,则仅保留标准错误输出;如果指定‘oe‘或?eo‘,则保留标准输出和标准错误输出;如果指定‘n‘,则不保留任何输出。 -l 指定作业所需要的资源,设定对可消耗资源的限制。如果不设置,则无限制。例如: resource_name[=[value]][,resource_name[=[value]],…] LINUX系统可以设置的资源有cput, file, pcput, pmem, pvmem, vmem, walltime, arch, nodes, ncpus等;

PBS作业调度

PBS作业调度系统 高性能计算(HPC)是一个计算机集群系统,它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题,所以又通常被称为高性能计算集群。 高性能计算方法的基本原理就是将问题分为若干部分,而相连的每台计算机(称为节点)均可同时参与问题的解决,从而显著缩短了解决整个问题所需的计算时间。 通常,解决大型计算问题需要功能强大的计算机系统,而现在,随着高性能计算的出现,使这一类应用从昂贵的大型外部计算机系统演变为采用商用服务器产品和软件的高性能计算机集群。因此,高性能计算系统已经成为解决大型问题计算机系统的发展方向。那么,什么样的大型问题最适合使用高性能计算系统呢?一般来说,高性能计算是为了实现在下列情况下的计算系统: ?能够突破性能极限的计算。 ?单个高端计算机系统不能满足其需求的计算。 ?需要通过专门的程序优化最大限度提高系统的I/O、计算和数据传送性能的计算。 集群控制系统 我们知道,高性能计算系统实际上是一个计算机集群系统,它需要通过通讯和集群控制软件将整个系统紧密联系在一起。同时,还要负责初始化集群节点、在所需数量的节点上安装应用程序、并监视集群节点和互连的当前运行状况。 目前在市场上有多开放源代码的集群控制系统,也有许多高性能计算的用户开发自己的控制系统来适应其特殊的应用软件的需求。故而集群控制系统就必须具备: 一、高性能计算的互联技术 高性能计算的互联技术在整个系统中非常重要,因为一般的高性能计算系统都需要讲几十台甚至几百台的计算机系统互相连接在一起,互联系统的性能有时会直接影响整个高性能计算系统的性能。 目前,一般的大型高性能计算系统使用Myrinet系统作为主要的数据互联系统,而使用百兆或千兆以太网进行管理与控制。而在小型的高性能计算系统中,可以用直接使用千兆甚至百兆以太网作为互联系统。 二、计算节点 计算节点是高性能计算系统中的单个计算机系统,是整个高性能计算系统的基础。基于英特尔架构的服务器系统是作为高性能计算节点的最佳选择。应为大多数高性能计算需要多线程同时执行,这样基于英特尔至强处理器的计算节点可以满足需求。另外,大多数模拟类型程序需要进行大量浮点运算(FLOPS),因而节点处理器支持大量浮点运算的能力就变得至关重要。当前的英特尔处理器(如英特尔至强?处理器)的处理速度已达到每秒二十亿次浮点运算。这意味着由1000枚处理器组成的集群的处理能力可与世界上一些功能最强大的超级计算机相媲美,而成本却低得多。 数据采掘则不同。根据数据库的体系结构,这些应用对I/O的潜在要求较高。而分布式驻留内存数据库例外。在该体系结构中,集群中的每个处理器都要参与一部分数据库处理。当一个查询请求被提交给数据库时,它同时被提交给集群中的所有处理器。由于所有处理器都只需处理一小部分数据库,因而解决查询的速度要比在传统体系结构中快得多。 高性能计算系统设计 设计一个高性能计算系统是一件复杂的系统工程,涉及从软件到硬件的各个层面,而且每一个环节都相互关联。因此,设计和构建一个高性能计算系统应该使用系统的设计方法,

相关主题
相关文档
最新文档