Ubuntu22.04上作业调度管理软件PBS Torque的安装、配置及主要使用方法

文章目录

  • 前言
  • 一、PBS及Torque是什么?
  • 二、Ubuntu22.04上Torque的安装和配置步骤
    • 1. 更新系统软件包
    • 2. 安装必要的软件包
    • 3. 下载和安装Torque
    • 4. 配置Torque
    • 5. 设置环境变量
    • 6. 配置和启动Torque服务
    • 7. 配置计算节点
    • 8. 创建队列的信息,名称 batch001
    • 9. 提交测试任务
  • 三、设置PBS Torque开机自动启动
    • 1. 编辑rc-local.service文件
    • 2. 创建并保存rc.local文件
    • 3.赋予rc.local可执行权限
    • 4.为rc-local.service添加软链接
    • 5.使rc-local.service生效并启动
  • 四、PBS Torque的使用
    • 1.创建作业
    • 2.提交作业
    • 3.监控作业
    • 4.删除作业
  • 总结
  • 参考资料


前言

PBS Torque作为一种开源的作业调度和资源管理系统,广泛用于高性能计算环境中。它提供了一个集中式的作业调度器,可以有效地管理计算集群中的作业,并将它们分配给可用的资源。
Torque目前最新版本为7.0.1,本文将介绍Linux Ubuntu 22.04上PBS Torque 6.1.3的安装、配置及主要使用方法。


一、PBS及Torque是什么?

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 Torque作为一种开源的作业调度和资源管理系统,广泛用于高性能计算环境中。它提供了一个集中式的作业调度器,可以有效地管理计算集群中的作业,并将它们分配给可用的资源。

PBS Torque的主要特点包括:

  1. 高度可伸缩性:它可以支持从几台机器到上千台机器的集群规模,并可以动态地扩展和收缩。这使得它非常适合于大规模的高性能计算环境。
  2. 灵活的作业调度:PBS Torque根据作业的优先级和资源需求,自动调度和分配作业给可用的计算节点。它提供了各种调度策略和调度器插件,以满足不同的需求。
  3. 多用户支持:PBS Torque可以同时管理多个用户的作业,并为每个用户提供独立的计算资源。它还可以实施配额和限制,以确保公平分配计算资源。
  4. 弹性资源管理:PBS Torque可以管理多种类型的计算资源,包括CPU、内存、存储和网络带宽等。它可以根据作业的需求动态分配和管理这些资源。
  5. 作业监控和管理:PBS Torque提供了详细的作业监控和管理功能,包括作业状态查询、错误日志分析和资源利用统计等。这些功能有助于用户了解作业的执行情况和集群的利用率。

总的来说,PBS Torque是一个功能强大且灵活的作业调度和资源管理系统,可以有效地管理大规模的高性能计算环境。它已经被广泛应用于学术界和工业界,成为许多超级计算机和集群系统的首选作业调度器。
在这里插入图片描述

Torque目前最新版本为7.0.1,本文将介绍Linux Ubuntu 22.04下PBS Torque 6.1.3的安装、配置及主要使用方法。

二、Ubuntu22.04上Torque的安装和配置步骤

在Ubuntu上安装Torque可以按照以下步骤进行:

1. 更新系统软件包

sudo apt update
sudo apt upgrade

2. 安装必要的软件包

sudo apt install build-essential libssl-dev libxml2-dev libboost-all-dev libz-dev liblzma-dev libevent-dev libsqlite3-dev libmysqld-dev mysql-client mysql-server libmunge-dev libmunge2

3. 下载和安装Torque

首先,从Torque项目的官方网站下载Torque源代码包。可以使用如下命令下载最新版本:

wget http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.3.tar.gz

接下来,解压下载的源代码包:

tar -xvzf torque-6.1.3.tar.gz
cd torque-6.1.3

然后,配置和编译Torque:

./configure --disable-gui --prefix=$HOME/app/torque-6.1.3 --disable-gcc-warnings
make -j8 CFLAGS='-fpermissive'

configure由于gcc warning中断,可加入–disable-gcc-warnings

最后,使用以下命令进行安装,其中需要使用root权限,创建/var/spool/torque文件夹:

sudo make install

4. 配置Torque

首先,创建必要的目录:

sudo mkdir -p /var/spool/torque/mom_priv
sudo mkdir -p /var/spool/torque/server_priv

然后,使用以下命令生成Torque配置文件及添加启动项:

sudo cp contrib/init.d/pbs_mom /etc/init.d/pbs_mom
sudo cp contrib/init.d/pbs_server /etc/init.d/pbs_server
sudo cp contrib/init.d/trqauthd /etc/init.d/trqauthd
sudo cp contrib/init.d/pbs_sched /etc/init.d/pbs_schedsudo cp contrib/systemd/pbs_mom.service /etc/systemd/system/
sudo cp contrib/systemd/pbs_server.service /etc/systemd/system/
sudo cp contrib/systemd/trqauthd.service /etc/systemd/system/
sudo cp contrib/systemd/pbs_sched.service /etc/systemd/system/sudo chmod +x /etc/init.d/pbs_*
sudo chmod +x /etc/init.d/trqauthd
sudo chmod +x /etc/systemd/system/pbs_*
sudo chmod +x /etc/systemd/system/trqauthd.servicesudo update-rc.d pbs_mom defaults
sudo update-rc.d pbs_server defaults
sudo update-rc.d pbs_sched defaults
sudo update-rc.d trqauthd defaults

接下来,编辑/etc/hosts文件,添加主机名和IP地址的映射:(对于计算节点nodes同样需要设置)

sudo vim /etc/hosts

在文件中添加类似以下内容,只需要添加第二行对应的信息:ip_address可由ifconfig查看,hostname命令查看hostname

127.0.0.1       localhost
<ip_address>    <hostname>

5. 设置环境变量

切换到root,打开profile:

su root
vim /etc/profile

添加以下内容:

export PATH=$HOME/app/torque-6.1.3/bin:$PATH
export PATH=$HOME/app/torque-6.1.3/sbin:$PATH
export LD_LIBRARY_PATH=$HOME/app/torque-6.1.3/lib:$LD_LIBRARY_PATH

生效

source /etc/profile

6. 配置和启动Torque服务

首先,编辑/var/spool/torque/mom_priv/config文件,添加以下内容:

pbsserver     <主节点主机名>

然后,编辑/var/spool/torque/server_priv/nodes文件,添加各个节点的主机名和CPU数量,例如:

<node1> np=<CPU数量> gpus=<GPU数量>
<node2> np=<CPU数量> gpus=<GPU数量>
...

接下来,编辑/var/spool/torque/server_name文件,添加主节点主机名。

<主节点主机名>

最后,启动Torque服务:

sudo service pbs_mom start
sudo service pbs_server start
sudo service pbs_sched start
sudo service trqauthd start

7. 配置计算节点

pbs_mom.service 拷贝到所有子节 点上相同的位置:node1, node2,并在所有子节点上执行:

scp contrib/systemd/pbs_mom.service node1:/usr/lib/systemd/system/
chmod 754 /usr/lib/systemd/system/pbs_mom.service
systemctl enable pbs_mom.service
systemctl start pbs_mom.service

重启服务

sudo su
for i in trqauthd pbs_server pbs_sched pbs_mom ; do service $i restart; done
exit

检查PBS,显示类似如下信息。

ps -e | grep pbs

在这里插入图片描述
以上如果没有错误提示,Torque已经在Ubuntu上安装好了并配置好了。接下来可以使用Torque命令行工具来管理和监控作业。

8. 创建队列的信息,名称 batch001

su root
qmgr -c 'create queue batch001'
qmgr -c 'set queue batch001 queue_type= execution'
qmgr -c 'set queue batch001 started= true'
qmgr -c 'set queue batch001 enabled= true'
qmgr -c 'set queue batch001 resources_default.nodes= 1'
qmgr -c "set queue batch001 resources_max.ncpus=12" #12为队列最大允许的cpu核数
qmgr -c "set queue batch001 resources_default.walltime = 1000:00:00" #1000为队列默认时长
qmgr -c 'set server default_queue= batch001'
qmgr -c 'set server scheduling=true'
qmgr -c "set server query_other_jobs =True"

输入qnodes, 查看节点信息。
在这里插入图片描述

9. 提交测试任务

echo sleep 60 | qsub

输入qstat -a命令可以查看任务详情。

三、设置PBS Torque开机自动启动

1. 编辑rc-local.service文件

sudo vim  /lib/systemd/system/rc-local.service

打开rc-local.service文件之后在最后添加如下代码

[Install]
WantedBy=multi-user.target  
Alias=rc-local.service

2. 创建并保存rc.local文件

sudo vim /etc/rc.local

打开rc.local文件之后添加如下代码

#!/bin/bash
systemctl start pbs_server.service
systemctl start pbs_sched.service
systemctl start pbs_mom.service
systemctl start trqauthd

3.赋予rc.local可执行权限

sudo chmod +x /etc/rc.local

4.为rc-local.service添加软链接

sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/

5.使rc-local.service生效并启动

sudo systemctl enable rc-local
sudo systemctl start rc-local.service  #启动服务
# sudo systemctl stop rc-local.service  #暂停服务
# sudo systemctl status rc-local.service #查看状态
# sudo systemctl daemon-reload # 重新加载自启服务

四、PBS Torque的使用

1.创建作业

使用PBS Torque提交作业之前,需要创建一个作业脚本。作业脚本是一个包含作业信息的文本文件,用于告诉PBS Torque如何运行作业。作业脚本通常使用PBS的命令行工具qsub提交。
以下是一个示例作业脚本:

#!/bin/bash
#PBS -N MyJob
#PBS -l nodes=1:ppn=4
#PBS -l walltime=1:00:00mpirun -np 4 echo "Hello, PBS Torque"

在上面的示例中,作业名称是MyJob,使用了1个节点和4个进程,并设置了最长运行时间为1小时。使用mpirun命令运行作业中的程序。

2.提交作业

将作业脚本保存为job.sh文件,并使用qsub命令提交作业:

qsub job.sh

作业将被提交到PBS Torque队列中,等待调度和执行。

3.监控作业

可以使用qstat命令来查看作业的状态和进度。例如,使用以下命令查看所有作业的状态:

qstat -a

4.删除作业

如果需要删除已经提交的作业,可以使用qdel命令并指定作业的ID:

qdel job_id

总结

以上是PBS Torque 6.1.3在Ubuntu22.04上的安装、基本配置和使用方法。
根据具体需求,可以参考PBS Torque的官方文档和用户手册,进一步学习PBS Torque的高级功能和配置选项以获取更详细的信息。

参考资料

  1. https://blog.csdn.net/qq_29684215/article/details/116603489
  2. https://blog.csdn.net/r1141207831/article/details/125262556

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Visual Studio】技巧 :自动与活动文档同步

在这里插入图片描述 工具 -> 选项 -> 项目和解决方案 - 勾选上面的 我厉害不&#xff01;&#xff01;&#xff01;

BMS再进阶(新能源汽车电池管理系统)

引言 一文入门BMS&#xff08;电池管理系统&#xff09;_bms电池管理-CSDN博客 BMS进阶&#xff08;Type-C、PD快充、充电IC、SOC算法、电池管理IC&#xff09;_充电ic asi aso功能-CSDN博客 本文是上面两篇博客的续篇&#xff0c;之前都是讲解一些BMS基本原理&#xff0c;…

【初始RabbitMQ】持久化的实现

RabbitMQ持久化 如何保障当 RabbitMQ 服务停掉以后消 息生产者发送过来的消息不丢失。默认情况下 RabbitMQ 退出或由于某种原因崩溃时&#xff0c;它忽视队列 和消息&#xff0c;除非告知它不要这样做。确保消息不会丢失需要做两件事&#xff1a;我们需要将队列和消息都标记为…

Java学习day13

流&#xff08;Stream&#xff09; 流是一个非常强大的概念&#xff0c;它提供了一种高效且便捷的方式来处理集合数据。你可以将流看作是一系列数据项的管道&#xff0c;你可以对这些数据进行各种操作&#xff0c;如过滤、映射、排序和归约。 流的创建 在Java中&#xff0c;…

nginx upstream server主动健康检测模块添加https检测功能[完整版]

目录 1 缘起1.1 功能定义2. 实现后的效果2.1 配置文件2.2 运行效果3. 代码实现3.1 配置指令3.1.1 配置指令定义:3.1.2 配置指令结构体:3.1.3 配置指令源码定义:3.2 模块的初始化3.3 添加新的健康检测类型的定义3.4 握手完成后的处理3. 5 发送http请求3.6 接收http响应3.7 连…

GPT升级信息:能记住用户的喜好和习惯!

OpenAI刚刚宣布了ChatGPT的一项激动人心的更新&#xff01; OpenAI在ChatGPT中新加了记忆功能和用户控制选项&#xff0c;这意味着GPT能够在与用户的互动中记住之前的对话内容&#xff0c;并利用这些信息在后续的交谈中提供更加相关和定制化的回答。 这一功能目前正处于测试阶段…

Shiro-11-web 介绍

配置 将Shiro集成到任何web应用程序的最简单方法是在web.xml中配置一个Servlet ContextListener和过滤器&#xff0c;该Servlet了解如何读取Shiro的INI配置。 INI配置格式本身的大部分是在配置页面的INI部分中定义的&#xff0c;但是我们将在这里介绍一些额外的特定于web的部…

介绍如何解决msvcr120.dll丢失问题,msvcp120.dll常见问题的解答

msvcr120.dll是Windows操作系统中的一个重要的动态链接库文件&#xff0c;它包含了许多与C运行库相关的函数。然而&#xff0c;有时用户在运行某些应用程序或游戏时可能会收到"msvcr120.dll丢失"的错误提示。本文将介绍如何解决msvcr120.dll丢失问题&#xff0c;并提…

【c语言】c语言转义字符详解

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;c语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

prometheus基于consul的服务发现

文章目录 一、基础二、安装consul下载地址启动consul访问consul 三、编写服务发现文件nodes.json四、prometheus配置consul发现修改prometheus.yml重启Prometheus 参考 一、基础 二、安装consul 下载地址 https://developer.hashicorp.com/consul/install 启动consul mkdi…

HCIP-MGRE实验配置、PPP的PAP认证与CHAP认证、MGRE、GRE网络搭建、NAT

实验要求 R5为ISP,只能进行IP地址配素&#xff0c;其所有地址均为公有IP地址R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方 R2与R5之间使用PPP的chap认证&#xff0c;R5为主认证方 R3与R5之间使用HDLC封装。R1/R2/R3构建一个MGRE环境&#xff0c;R1为中心站点;R1、R4间为…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏通知栏都居中功能实现

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏通知栏功能中,通知栏总是显示在右边,并且是在右边居中显示的, 由于需要和竖屏显示一样,所以就需要用到在时钟下面显示通知栏,然后同样需要居中显示通知栏,所以就来分析下相关的…

前端vue金额用逗号分隔

实现效果 代码 template部分 <el-input v-model"state.val"></el-input><div>{{ priceFor(state.val) }}</div> js部分 const state reactive({ val: });const priceFor (val)> {if(!val){return }else if(val.length<4){return…

Z分数标准化

Z分数标准化是一种常用的数据标准化方法&#xff0c;用于将不同数据集的值转换为具有相同比例和零均值、标准差为1的标准正态分布。这种标准化方法对于机器学习和统计分析中的特征缩放和数据预处理非常有用。 标准化的步骤如下&#xff1a; 计算均值和标准差&#xff1a; 对于…

进程链信任-父进程欺骗

文章目录 前记普通权限的父进程欺骗ShllCode上线进程提权基础进程提权注入 前记 父进程欺骗作用&#xff1a; 进程链信任免杀进程提权 检测&#xff1a; etw 普通权限的父进程欺骗 #include<stdio.h> #include<windows.h> #include <TlHelp32.h>DWORD …

elementui 中el-date-picker 选择年后输出的是Wed Jan 01 2025 00:00:00 GMT+0800 (中国标准时间)

文章目录 问题分析 问题 在使用 el-date-picker 做只选择年份的控制器时&#xff0c;出现如下问题&#xff1a;el-date-picker选择年后输出的是Wed Jan 01 2025 00:00:00 GMT0800 (中国标准时间)&#xff0c;输出了两次如下 分析 在 el-date-picker 中&#xff0c;我们使用…

【51单片机】如何设置中断函数(场景:在定时器工作完跳转到中断程序时,怎么识别我们的中断程序在哪里呢?)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 本章是【利用定时器和中断实现一个简单项目】中的一部分&#xff0c;感兴趣的老铁可以跳转传送门查看传送门 欢迎订阅 YY滴C专栏&#xff01;更多干货…

CI/CD部署

什么是CI&#xff0c;什么是CD CI和CD是软件开发中持续集成和持续交付的缩写。 CI代表持续集成&#xff08;Continuous Integration&#xff09;&#xff0c;是一种实践&#xff0c;旨在通过自动化构建、测试和代码静态分析等过程&#xff0c;频繁地将代码变更合并到共享存储…

前端技巧之svg精灵图svg-sprite-loader

首先说明精灵图的必要性&#xff0c;其可以让我们只需要向服务器请求一次图片资源&#xff0c;就能加载很多图片&#xff0c;即能够减轻http请求造成的服务器压力。 然后这里要说明的是这个插件是webpack上面的&#xff0c;所以在vue2中比较好用&#xff0c;如果在vue3中&…

3DSC特征描述符、对应关系可视化以及ICP配准

一、3DSC特征描述符可视化 C #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/search/kdtree.h> #include <pcl/io/pcd_io.h> #include <pcl/features/normal_3d_omp.h>//使用OMP需要添加的头文件 #include <pcl…