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
分享到:
相关推荐
PBS的一份手册,PBS(Partitioned Workload System)是一个批作业和计算机系统资源管理包。它按照兼容POSIX 1003.2d批作业环境标准设计的。因此,它能够接受批作业,并且保留和保护这个作业直到这个作业进入运行状态...
openpbs 手册openpbs 手册openpbs 手册openpbs 手册
The Portable Batch System (PBS) is available as Open Source software from ... and at a decent price for academic institutions.
最近由于要安装网格,用到OpenPBS,结果找了大半天都没有找到,偶然的一次机会,找到了些,希望对大家有帮助。下载的是rpm文件,直接运行即可。等找到64位的再给大家传
OpenPBS 2.3.2 RPMs for Linux (Execution host only)
openpbs documentation
OpenPBS 2.3.2 RPMs for Linux (Full PBS)
OpenPBS Software License Agreement ,openPBS的License
经典的集群作业管理系统,完全开源,可以二次开发进而使其能满足自己的日常需要
针对: IA64 + Redhat AS3 IA64 + Redhat AS4 不用打补丁 2.3.16版本,本来带有tcl,tk 8.49 由于太大没包括进来,需要的自己去下
集群管理软件,针对Itanium 64位机器+ RedHat Linux AS3 的版本。已经安装过,运行正常,但是必须--disable-gui。 另外,安装在AS4系统上也可以。
OpenPBS 的 OpenAPI 规范 这是一个初始的,仍在进行中的 api 设计 渲染 如果要渲染规范,请使用或 Swagger 的 如果你使用 vscode,我使用一个名为的扩展
集群管理软件,IA32版,带patch文件,安装之前先打patch, 在IA32 + Red Hat Linux AS4上装过,可以正常运行。 注意gcc 4版本无法make通过,gcc 3 版本可以。
该软件包提供了与OpenPBS C API的Python绑定。 通过使用此软件包,可以在Python中访问OpenPBS C库的所有功能。 我们提供了有关用法的大量文档和许多示例。
PBS 管理系统 (一)作业提交系统 Torque 个人安装总结(PBS) PBS 是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一。 PBS 的目前包括 openPBS,PBS Pro 和 Torque 三个主要分支。其中 OpenPBS 是最早...
OpenPBS开源项目 如果您不熟悉此项目,请从开始 注意:2020年5月,OpenPBS成为PBS Professional Open Source Project的新名称。 (将使用PBS Professional来指代商业版本;将OpenPBS指代开放源代码版本-相同的代码,...
本文采用java语言、面向web方式,基于OpenPBS开发了一套高性能计算平台计费系统,根据资源的使用情况进行合理透明的计费,从而提高平台的透明度、公信度和利用率。本系统适用于大多数采用OpenPBS 进行作业管理的linux...
命令可以被安装在任何PBS支持的系统类型上,并且不需要在本地安装任何其它的PBS组件。共有三种类型的命令:任何已授权用户可以使用的命令;操作员命令;管理员命令;操作员和管理员命令需要不同的访问权限。 作业...
PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。 其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一...
qtop-OpenPBS的顶级职位查看器 qtop旨在帮助监视和分析工作状态/绩效。 默认情况下,它将列出您所有的活动(即未完成)作业。 要列出已完成的任务(默认情况下,在过去24小时内),请使用-f开关。 使用-F ,仅列出...