PBS 指南
PBS(Portable Batch System)是一个常用的作业调度系统,用于管理和调度计算集群中的作业。它允许用户提交作业并有效地利用集群资源,使得多个用户能够共享计算资源并按照优先级执行他们的作业。
背景:
PBS最初由NASA开发,旨在管理和调度超级计算机集群中的作业。它的设计目标是提供一个可移植、灵活和可扩展的作业管理系统,使得用户可以方便地提交、管理和跟踪作业的执行。
作用:
PBS的主要功能是管理和调度计算集群中的作业。它允许用户提交作业描述,包括作业需要的资源、执行命令、作业优先级等信息。PBS根据资源可用性、作业优先级和调度策略等因素来决定作业的执行顺序,并负责分配计算资源给作业使用。同时,PBS还提供了查询作业状态、取消作业、节点管理等功能。
参数用法:
以下是一些常用的PBS命令及其用法:
qsub
:提交作业到PBS系统。例如:qsub myjobscript.sh
。qstat
:查看作业状态信息。例如:qstat -u username
查看特定用户的作业状态。qdel
:取消作业。例如:qdel jobID
取消特定作业。pbsnodes
:管理节点信息。例如:pbsnodes -a
查看所有节点信息。qmgr
:管理PBS队列和服务器配置。例如:qmgr -c "p s"
显示服务器配置参数。
PBS工作流程:
- 作业提交:用户使用
qsub
命令提交作业到PBS系统,包括作业描述和执行脚本。 - 作业排队:提交的作业被放置在队列中等待调度执行。
- 资源分配:PBS根据作业需求、可用资源和调度策略,选择合适的节点分配资源。
- 作业执行:作业在分配的节点上执行,执行期间可以通过
qstat
查看作业状态。 - 作业完成:作业执行完成后,输出结果被返回给用户。
PBS允许管理员配置调度策略、节点管理、队列优先级等参数,以满足不同用户和系统需求。
请注意,PBS的具体用法和参数可以因版本和配置不同而有所差异。用户可以通过man
命令查看PBS相关命令的手册页以获取更详细的信息。
查看节点和核数使用情况
要查看空闲的节点和核数,可以使用以下命令:
pbsnodes -a
:这个命令将显示所有节点的详细信息,包括节点的状态、空闲核数、总核数等。pbsnodes -l free
:这个命令将列出所有空闲的节点。pbsnodes -l
:这个命令将列出所有节点的状态,包括空闲节点和正在运行的节点。
使用这些命令可以快速查看计算集群中空闲节点的状态和可用核数,帮助您有效地调度作业和资源。
PBS脚本基础:
当使用PBS(Portable Batch System)管理作业时,需要编写PBS脚本文件来描述作业的要求、资源需求以及作业的执行流程。下面是一个简单的PBS脚本教程以及一些案例示例:
PBS脚本是一个文本文件,通常以.pbs
为扩展名。它包含了用于描述作业要求的指令、环境设置和作业执行命令。
PBS脚本结构:
#!/bin/bash
#PBS -N job_name # 作业名称
#PBS -l nodes=1:ppn=4 # 分配资源,1个节点,每节点4个核心
#PBS -l walltime=01:00:00 # 预计作业运行时间
#PBS -q batch # 队列名称
# 可选的环境设置和加载模块
module load <module_name>
# 进入工作目录
cd $PBS_O_WORKDIR
# 执行命令
<command_to_execute>
PBS脚本案例:
示例1:运行一个简单的Shell命令
#!/bin/bash
#PBS -N myjob
#PBS -l nodes=1:ppn=2
#PBS -l walltime=00:30:00
#PBS -q batch
cd $PBS_O_WORKDIR
echo "Hello, PBS! This is my job."
示例2:运行一个Python脚本
#!/bin/bash
#PBS -N python_job
#PBS -l nodes=1:ppn=4
#PBS -l walltime=01:00:00
#PBS -q batch
module load python
cd $PBS_O_WORKDIR
python myscript.py
示例3:使用MPI运行并行作业
#!/bin/bash
#PBS -N mpi_job
#PBS -l nodes=4:ppn=2
#PBS -l walltime=02:00:00
#PBS -q batch
module load mpi
cd $PBS_O_WORKDIR
mpirun -np 8 my_mpi_program
这些示例展示了PBS脚本的基本结构和使用方法。用户可以根据自己作业的需要修改PBS脚本中的参数和命令来实现不同类型的作业执行。请注意,PBS脚本的准确性和正确性对于作业的顺利执行非常重要。
交互式节点使用方法
在PBS(Portable Batch System)中,通常可以通过一些特定的设置来在节点上交互式地使用资源。PBS可以通过命令行或脚本来请求交互式节点,这使得用户可以直接在分配的节点上执行命令而无需提交作业。
要在PBS节点上进行交互式使用,您可以使用qsub
命令和-I
选项。下面是一个示例:
qsub -I -l nodes=1:ppn=4
这个命令会请求分配一个节点,并且提供了-I
选项,表示请求交互式会话。-l nodes=1:ppn=4
指定了需要的资源,即1个节点和每个节点4个处理器核心。
执行这个命令后,如果资源可用,系统将分配一个节点给您,并在分配的节点上启动一个交互式的shell会话。您可以在这个会话中执行命令,运行程序,进行调试等操作。当您退出这个会话后,系统会释放所分配的节点。
需要注意的是,节点的可用性取决于系统负载和可用资源。有些集群可能会限制交互式使用的时间和资源,因此在实际使用前,最好先了解集群的规则和限制。
在一些PBS配置中,可能还需要添加一些额外的参数或者调整提交的选项来获得交互式会话的访问权限。