集群作业管理OpenPBS与OpenPBS Interface Library(IFL)

高性能计算-nis和tmux HPC用户管理LDAPNIS文件存储NFSCLUSTER   集群调度管理TorqueOpenpbsPbsproSlurmLsf高性能计算 致力于开发超级计算机,研究并行算法和开发软件 高性能计算集群HPC典型行业应用软件[root@room9pc01 ~]# virsh list –all Id   &nbsp... 阅读详情

OpenPBS & Interface Library

--by 斜月 http://blog.youkuaiyun.com/idleguy

OpenPBS安装

1、  必须用root登录

2、  创建安装路径,一般是:/usr/local/OpenPBS

3、  cp OpenPBS安装包到安装路径并释放

4、  进入释放的目录,例如:$>OpenPBS_2_3_16/

5、  运行OpenPBS配置脚本:

$>./configure –prefix=/usr/local/OpenPBS

./configure可以配置OpenPBS的环境,-prefix是一些安装目录的前缀,例如lib等,默认是/usr/local。可以./configure –help查看所有的参数。一般默认的就可以。

6、  编译OpenPBS:在释放的目录下make.

在make的过程中可能出现如下错误:

make[4]: *** No rule to make target ` ', needed by `attr_atomic.o'.   Stop.

make[4]: Leaving directory `/g/pbs/OpenPBS_2_3_16/src/lib/Libattr'

make[3]: *** [all] Error 2

make[3]: Leaving directory `/g/pbs/OpenPBS_2_3_16/src/lib/Libattr'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/g/pbs/OpenPBS_2_3_16/src/lib'

make[1]: *** [all] Error 2

make[1]: Leaving directory `/g/pbs/OpenPBS_2_3_16/src'

make: *** [all] Error 2

这需要一个补丁来解决,参见附录

7、  安装OpenPBS:编译成功后,make install

8、  创建节点(node)文件

/usr/spool/PBS/server_priv/nodes

文件内容是节点的机器名。例如

node1

node2

……

当然可以有更具体的设置. 包括机群系统中所有结点的描述,如主机名,属性和cpu的数目。结点文件的格式为:hostname [:ts] [property…] [np=NUMBER] 。

9、  建立MOM进程配置文件

在{PBS_HOME}/mom_priv目录下建立资源管理器守护进程的配置文件config。所谓{PBS_HOME}可以在安装的第一步./configure的时候指定,相关参数:

--set-server-home={YOUR_PBS_HOME},一般不用指定,用默认值就好了。默认值为/usr/spool/PBS

config文件的内容通常包括:

  $logevent 0x1ff

  $clienthost server_host

其中$logevent是为了设置记录作业执行事件日志的掩码,当其值设为0x1ff时,表示记录作业运行事件的所有日志信息;server_host是PBS服务器所在的主机名。

OpenPBS启动

1.         启动MOM进程

$> /usr/local/OpenPBS/sbin/pbs_mom

 

2.      启动OpenPBS服务器

$>/usr/local/OpenPBS/sbin/pbs_server –t create

(第一次启动用户服务器时,需要“–t create”选项,以后启动不需要)

 

3.        启动调度器

$>/usr/local/OpenPBS/sbin/pbs_sched

 

(建议在$HOME/.bash_profile中加入

OPENPBSDIR=/usr/local/OpenPBS

PATH=$PATH:$OPENPBSDIR/bin: $OPENPBSDIR/sbin

 

export OPENPBSDIR PATH

 

创建队列

用qmgr创建队列,例如:

#创建队列,并命名为normal

qmgr -c "c q normal"

#设定队列的类型为Execution

qmgr -c "s q normal queue_type=Execution"

#设定该队列中任务最大运行时间为24小时(CPU时间)

qmgr -c "s q normal resources_max.cput=24:00:00"

#设定该队列中任务最小运行时间为1秒(CPU时间)

qmgr -c "s q normal resources_min.cput=1"

#设定该队列中任务默认运行时间为12分钟(CPU时间)

qmgr -c "s q normal resources_default.cput=12:00"

#enable queue

qmgr -c "s q normal enabled=true"

#start queue

qmgr -c "s q normal started=true"

#将normal队列设定为默认队列

qmgr -c "s s default_queue=normal"

 

qmgr的参数中-c代表命令行,引号(“”)中的内容是要执行的命令。

其中c是create, s是set, q是queue,所以,上述命令可以写作:

qmgr –c “set queue normal enabled=true”

……

提交任务可以用qsub,只有非root用户才可以提交任务。

 

OpenPBS Interface Library

       OpenPBS Interface Library(IFL)是OpenPBS提供的一组函数,完成OpenPBS的任务。

例如:pbs_connect,是连接服务器的函数。

       编写程序调用这些函数需要以下两个头文件:

       #include  

#include

和一个静态链接库:libpbs.a(可以在/usr/local/lib/中找到这个库)

因为该库用C编写需要,如果用C++编写程序调用这些函数,则需要:

extern “C”

下面是一个示例程序(subjob.cc),作用就是提交任务,如果成功返回该任务提交后在服务器上的任务标示,如果失败则返回错误代码:

extern "C"//C 函数

{

#include

#include

}

#include

 

int main(int argc,char** argv)

{

        int Con=pbs_connect("server”); //连结服务器”server”

        printf("Con=%d/n",Con);

        char *Ret=pbs_submit(Con,0,argv[1],0,0);//提交任务

        if (!Ret)

        {

printf("ERR=%d/n",pbs_errno);//发生错误,打印错误代码

        }

        else

        {

                printf("Ret=%s/n",Ret);//打印返回的任务标识

        }

        delete Ret;

        return 1;

}

编译该程序:

$>g++ -o subjob subjob.cc –lpbs

附录

安装OpenPBS过程中make出错

如果遇到前文提到的错误,那么通过打补丁可以解决该问题。

该补丁可以通过以下方法得到:

1.       下载:http://www.webmo.net/support/patch/pbs.patch

2.       将下面内容(=包括中的内容,不包含=)存入pbs.patch(当然,任意文件名)

======================================================================

--- /buildutils/makedepend-sh.000  Wed Nov 17 11:32:52 1999

+++ /buildutils/makedepend-sh    Thu Jul 10 13:35:43 2003

@@ -574,6 +574,12 @@

                 test "$verbose" -lt 2 && errout='2> /dev/null'

    

                 eval $CPP $arg_cc $d/$s $errout | /

+                  sed /

+                       -e '1d' /

+                       -e '/^#.* /d' /

+                       -e '/^#.* /d' /

+                       -e '/^#.* /d' /

+                       -e '/^#.*/d' | /

                   sed -n -e "s;^/# [0-9][0-9 ]*/"/(.*/)/";$f: /1;p" | /

                   grep -v "$s/$" | /

                   sed -e 's;/([^ :]*: [^ ]*/).*;/1;' /

--- /src/lib/Liblog/pbs_log.c.000  Tue Dec  4 18:38:40 2001

+++ /src/lib/Liblog/pbs_log.c    Thu Jul 10 13:39:45 2003

@@ -109,6 +109,7 @@

 

 /* Global Data */

 

+#include

 extern int errno;

 char log_buffer[LOG_BUF_SIZE];

 char log_directory[_POSIX_PATH_MAX/2];

--- /src/server/svr_connect.c.000  Tue Dec  4 18:39:23 2001

+++ /src/server/svr_connect.c    Thu Jul 10 13:43:11 2003

@@ -113,6 +113,7 @@

 

 struct connect_handle connection[PBS_NET_MAX_CONNECTIONS]; /* used by API */

 

+#include

 extern int     errno;

 

 extern int     pbs_errno;

将该文件cp到OpenPBS安装包的释放目录,打补丁:

$>patch -pl -b < pbs.patch

然后就可以正常安装了

使用IFL发生编译错误

Q:提示找不到库libpbs.a。

A:确定正确安装OpenPBS,lib搜索路径中包含libpbs.a.确定编译选项是-lpbs

 

Q:提示找不到函数,例如

undefined reference to `pbs_connect(char*)'

A:在程序中这样包含头文件:

extern "C"               

{

#include      

#include    

}

……

 

Q:已经像上面那样包含头文件,仍然找不到函数,不过这次看起来有点不一样,例如:

       undefined reference to `pbs_connect'

A:编译的时候,要将libpbs.a的引用放在源文件后面,例如:

$>g++ -o subjob subjob.cc –lpbs

基于HPC场景的集群任务调度系统LSF/SGE/Slurm/PBS 目前市面上主流调度器有四大流派:LSF/SGE/Slurm/PBS。 不同行业因为使用习惯和不同调度器对应用的支持力度不同,往往会有不同的偏好:比如高校和超算经常用Slurm,半导体公司最常用的是LSF和SGE,工业制造业可能用PBS更多一些。... 阅读详情

相关推荐

浅谈天线 - - - GNSS/BT/4G/2.4G

全球定位导航系统,最成熟的就是美利坚,我大中华,俄罗斯,还有就是欧洲的一个(太次不谈)所以我们在项目调试的时候,小尺寸的陶瓷天线上一般兼容2个频段,体积大一点的可以兼容三个频段,采用组合的形式 GPS+BD GPS+GLONASS GLONASS+BD 或者是单频段的定位天线陶瓷PATC陶瓷片:陶瓷片面积越大,介电常数越大,其共振频率越高,接收效果越高,这就是为什么都推荐使用大一点的陶瓷天线的原因银层:陶瓷天线表面的银层可以影响天线的共振频率,理想的GNSS陶瓷片频点准确落在1575.42MH

BLACKHOLE6的博客 1万+

基于HPC场景的集群管理系统(slurm系统初相识)

LSF是一个比较主流的任务调度系统,包括深圳和苏州的超算中心都是使用的LSF系统,包括Spectrum LSF, PlatformLSF和OpenLava。我接触到的都是PlatformLSF。SGE则包括UGE和SGE,本来是开源的,但是被Oracle收购后就变成了闭源了。PBS则包括OpenPBS,PBS PRO 和Moab/TORQUE,可能由于比较老了吧,目前我没有见到了。

刘炫320的博客 4270

UE4/5编译报错MSB3073终极解决指南:从路径检查到MSVC版本降级

本文针对UE4/5开发中常见的MSB3073编译报错,提供了一套从根源到实战的终极解决指南。文章系统性地讲解了错误成因,并分层次指导排查路径字符、环境变量、MSVC版本兼容性、权限冲突等核心问题,重点介绍了通过降级MSVC编译器版本等关键操作来彻底解决此编译难题。

rl6adventurer的博客 1435

torque (以前的 OpenPBS) 安装

Torque(OpenPBS 的后继)是一个开源的资源管理系统,用于高性能计算集群的作业管理与调度,现在属于 AdaptiveComputing 公司,可到 http://www.adaptivecomputing.com/support/download-center/torque-download/ 下载。torque 由三个服务组成 pbs_server, pbs_mom, pbs_sc

资源备忘 2622

技术美术个人笔记(十六)——Houdini到UE的大地形

文章目录关于地形白模制作关于PDG流程 关于地形白模制作 用heightfield noise和笔刷刷出合适的mask做山形叠加: 用remap可快捷反转mask ,用来做平原地区的小型丘陵: 接着用clip切平最低处,用distort制造侵蚀等,对部分地区用笔刷进行微调拓宽峡谷: 用经过sweep打平的曲线以及裁切的各种多面体用heightfield_project投影制作河道和水池,用blur mask并remap的方法拓宽河道 用distort、erode制造合适的弯曲和侵蚀,同理可挖出月牙形

小谁的博客 3180

东华大学2020考研计算机OJ题目解答分享——进阶篇(4)

4 一个月的天数 作者: Turbo时间限制: 1S章节: 分支结构 问题描述 : 输入年和月,输出该月有几天。 输入说明 : 输入两个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月。 输出说明 : 输出该年该月的天数,输出时,行首与行尾均无空格,仅输出一个整数。 输入范例 : 2000 2 输出范例 : 29 解答思路: 闰年和质数出题一样频繁,简单必会 AC代码 #include...

qq_38344326的博客 472

linux集群pbs管理,集群作业管理openPBS安装和使用介绍

最近开始一个项目,要用到openPBS,网上搜集了一些资料,放博客与大家分享一、OpenPBS安装1、 必须用root登录2、 创建安装路径,一般是:/usr/local/OpenPBS3、 cp OpenPBS安装包到安装路径并释放4、 进入释放的目录,例如:$>OpenPBS_2_3_16\5、 运行OpenPBS配置脚本:$>./configure –prefix=/u...

weixin_39637661的博客 2655

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 828

集群作业管理OpenPBS与OpenPBS Interface Library

OpenPBS安装 1、必须用root登录 2、创建安装路径,一般是:/usr/local/OpenPBS 3、cp OpenPBS安装包到安装路径并释放 4、进入释放的目录,例如:$>OpenPBS_2_3_16" 5、运行OpenPBS配置脚本: $>./configure –prefix=/usr/local/OpenPBS ./configure可以配置...

weixin_30437847的博客 154

VSCODE 安装LATEX环境,参数配置,常见问题解决

1 准备Texlive安装包 可以从以下网址下载 texlive 的镜像文件: 华为镜像 阿里镜像 官网 网址中大概文件构成 下载完后我们需要的文件构成(我是2020年下载过了,这次就不重新下载了) 将这个镜像文件进行解压 2 安装Texlive 右键install-tl-windows.bat,单击以管理员身份运行,进入安装界面. 点击左下角的“Advanced”进入高级安装来取消你不需要安装的宏包。 点击“Customize”来取消勾选不需要的宏包。 单是把非中英的语言包取消勾选可以省掉 1G

呆呆象呆呆的博客 6万+

基于ESP32 蓝牙游戏手柄设计

介绍使用 ESP32 并通过 BLE 通信的 设计手持游戏手柄,包含原理图与代码

DT程序员的博客 2164

亿万打工人的梦:16万个CPU随你用

如果有一天,你有16万个CPU,你要怎么用? 梦想还是要有的,万一它实现了呢? 首先,你要有个调度器。 我们现在说的调度器,主要是基于HPC场景的集群任务调度系统,英文叫Cluster Scheduler、Job Scheduler等。 市面上主流调度器有四大流派:LSF/SGE/Slurm/PBS。 不同行业因为使用习惯和不同调度器对应用的支持力度不同,往往会有不同的偏好:比如高校和超算经常用Slurm,半导体公司最常用的是LSF和SGE,工业制造业可能用PBS更多一些。 调度器是干嘛的? 如果有一台或.

weixin_43294760的博客 864

RK3568平台开发系列讲解(项目篇)手写数字识别

📢 本篇章带大家基于飞桨(PaddlePaddle),完成一个简单的手写数字识别任务。

内核笔记 1182

torque pbs_4.2.4.1安装过程

实验室接手的网格任务里要安装pbs批作业系统,我与

ai297313的专栏 1282

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Slurm提交MPI作业

Slurm提交MPI作业首先准备一个MPI程序,这里使用python语言的mpi4py库写了一个helloworld.py#!/usr/bin/env python """ Parallel Hello World """from mpi4py import MPI import sys import timesize = MPI.COMM_WORLD.Get_size() rank = MPI.C

kongxx的专栏 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OpenPBS安装

1、 必须用root登录 2、 创建安装路径,一般是:/usr/local/OpenPBS 3、 cp OpenPBS安装包到安装路径并释放 4、 进入释放的目录,例如:$>OpenPBS_2_3_16" 5、 运行OpenPBS配置脚本: $>./configure –prefix=/usr/local/OpenPBS ./configure可以配置OpenP...

live123的专栏 934

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Hadoop集群完全分布式模式环境部署和管理的5大工具

当你利用Hadoop进行大数据分析和处理时,首先你需要确保配置、部署和管理集群。这个即不容易也没有什么乐趣,但却受到了开发者们的钟爱。本文提供了5款工具帮助你实现。 Apache Ambari Apache Ambari是对Hadoop进行监控、管理和生命周期管理的开源项目。它也是一个为Hortonworks数据平台选择管理组建的项目。...

Enweitech Software Works 8895

pbs 作业调度应用与说明

PBS(Portable BatchSystem)简介 PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;

记事本 3万+

slurm作业管理系统怎么用?

对于大型集群环境,通常需要有作业管理系统来调度分配系统资源,本文介绍一款开源免费的容错和高度可扩展的集群管理和作业调度系统:SLURM。在我国首次获得世界TOP500计算机排名第一的天河一号计算机上使用的集群管理和作业调度系统,就是基于SLURM二次开发的,可见其强大。 它的官网是:传送门。 准备可执行程序和输入文件 我们想提交一个计算任务,首先要准备好可执行程序和输入文件。 可执行...

超算小站 2万+

Presto 集群管理工具

presto 官方提供了集群管理工具,但只支持 RedHat Linux version 6.x * CentOS, ubuntu下,不能正常使用,于是自己撸了一个presto集群管理工具:github链接 https://github.com/leoChaoGlut/presto-manager

Leo's Blog 2052

pbs作业调度用法

pbs -c 'p s' 查询队列设置 pbs -c 'set queue batch resources_default.walltime = 168:00:00' 设置等待时间

dz87505192的博客 2262

slurm and MPI example

Overview¶ RCC supports these MPI implementations: IntelMPIMVAPICH2OpenMPI Each MPI implementation usually has a module available for use with GCC, the Intel Compiler Suite, and PGI. For example,

百川汇海 4451
上一篇: FedoraCore3上使用nvidia显卡
下一篇: Linux 各个Distributions的排名和评价 -- distrowatch.com
lphpc
博客等级 码龄22年 32粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值