`
mintelong
  • 浏览: 392561 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

OpenPBS安装

    博客分类:
  • PBS
阅读更多
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

分享到:
评论

相关推荐

    OpenPBS安装使用手册

    PBS的一份手册,PBS(Partitioned Workload System)是一个批作业和计算机系统资源管理包。它按照兼容POSIX 1003.2d批作业环境标准设计的。因此,它能够接受批作业,并且保留和保护这个作业直到这个作业进入运行状态...

    openpbs 手册

    openpbs 手册openpbs 手册openpbs 手册openpbs 手册

    OpenPBS mini-howto

    The Portable Batch System (PBS) is available as Open Source software from ... and at a decent price for academic institutions.

    OpenPBS-2.3.16-652.i586.rpm

    最近由于要安装网格,用到OpenPBS,结果找了大半天都没有找到,偶然的一次机会,找到了些,希望对大家有帮助。下载的是rpm文件,直接运行即可。等找到64位的再给大家传

    OpenPBS 2.3.2 RPMs for Linux (Execution host only)

    OpenPBS 2.3.2 RPMs for Linux (Execution host only)

    openpbs.zip_openpbs_zip

    openpbs documentation

    OpenPBS 2.3.2 RPMs for Linux (Full PBS)

    OpenPBS 2.3.2 RPMs for Linux (Full PBS)

    OpenPBS Software License Agreement

    OpenPBS Software License Agreement ,openPBS的License

    OpenPBS Version 2.3.16

    经典的集群作业管理系统,完全开源,可以二次开发进而使其能满足自己的日常需要

    OpenPBS_2_3_16_IA64_AS3.tar.gz

    针对: IA64 + Redhat AS3 IA64 + Redhat AS4 不用打补丁 2.3.16版本,本来带有tcl,tk 8.49 由于太大没包括进来,需要的自己去下

    OpenPBS-IA64-2.3.16.tar.gz

    集群管理软件,针对Itanium 64位机器+ RedHat Linux AS3 的版本。已经安装过,运行正常,但是必须--disable-gui。 另外,安装在AS4系统上也可以。

    openpbs-api-spec:可能的 openpbs api 的规范

    OpenPBS 的 OpenAPI 规范 这是一个初始的,仍在进行中的 api 设计 渲染 如果要渲染规范,请使用或 Swagger 的 如果你使用 vscode,我使用一个名为的扩展

    OpenPBS-2.3.16-IA32-patch.tar.gz

    集群管理软件,IA32版,带patch文件,安装之前先打patch, 在IA32 + Red Hat Linux AS4上装过,可以正常运行。 注意gcc 4版本无法make通过,gcc 3 版本可以。

    Python bindings to OpenPBS API-开源

    该软件包提供了与OpenPBS C API的Python绑定。 通过使用此软件包,可以在Python中访问OpenPBS C库的所有功能。 我们提供了有关用法的大量文档和许多示例。

    PBS管理系统.pdf

    PBS 管理系统 (一)作业提交系统 Torque 个人安装总结(PBS) PBS 是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一。 PBS 的目前包括 openPBS,PBS Pro 和 Torque 三个主要分支。其中 OpenPBS 是最早...

    openpbs:用于台式机,集群和云的HPC工作负载管理器和作业计划程序

    OpenPBS开源项目 如果您不熟悉此项目,请从开始 注意:2020年5月,OpenPBS成为PBS Professional Open Source Project的新名称。 (将使用PBS Professional来指代商业版本;将OpenPBS指代开放源代码版本-相同的代码,...

    基于OpenPBS的高性能计算平台计费系统 (2009年)

    本文采用java语言、面向web方式,基于OpenPBS开发了一套高性能计算平台计费系统,根据资源的使用情况进行合理透明的计费,从而提高平台的透明度、公信度和利用率。本系统适用于大多数采用OpenPBS 进行作业管理的linux...

    Linux OpenPbs 批处理作业和计算机系统资源管理软件包

    命令可以被安装在任何PBS支持的系统类型上,并且不需要在本地安装任何其它的PBS组件。共有三种类型的命令:任何已授权用户可以使用的命令;操作员命令;管理员命令;操作员和管理员命令需要不同的访问权限。 作业...

    作业提交系统Torque个人安装总结

    PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。 其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一...

    qtop:OpenPBS的顶级职位查看器

    qtop-OpenPBS的顶级职位查看器 qtop旨在帮助监视和分析工作状态/绩效。 默认情况下,它将列出您所有的活动(即未完成)作业。 要列出已完成的任务(默认情况下,在过去24小时内),请使用-f开关。 使用-F ,仅列出...

Global site tag (gtag.js) - Google Analytics