`
mintelong
  • 浏览: 396187 次
  • 性别: 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 mini-howto

    首先,要安装OpenPBS,确保你的系统已经安装了TCL8.0和TK8.0。这两个组件是PBS运行所必需的,可以在Scriptics公司的官方网站上找到相关信息和下载链接。对于Linux用户,可以通过RPM包管理器安装,而在其他UNIX系统上...

    openpbs.zip_openpbs_zip

    安装OpenPBS涉及多个步骤,包括安装依赖库、配置文件设置、启动服务等。安装完成后,需要根据集群规模和需求进行细致的配置,如定义资源池、设置调度策略等。 五、OpenPBS实战应用 在实际使用中,OpenPBS广泛应用...

    OpenPBS-2.3.16-652.i586.rpm

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

    OpenPBS-IA64-2.3.16.tar.gz

    在安装OpenPBS时,需要注意一点是,为了确保系统的稳定性和安全性,描述中提到必须使用`--disable-gui`选项。这表示在编译和配置过程中应禁用图形用户界面(GUI)。通常,对于服务器环境,命令行接口更常见且更有效...

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

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

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

    对于Visual Studio Code(VSCode)用户,推荐安装名为"Swagger Viewer"的扩展,它可以方便地在编辑器内部查看和测试OpenAPI规范。 `openpbs-api-spec-master`这个压缩包文件很可能是该项目的源代码仓库,包含所有...

    Python bindings to OpenPBS API-开源

    Python bindings to OpenPBS API 是一个将Python编程语言与OpenPBS(Platform Computing的Portable Batch System)的C API接口相结合的开源项目。这个项目的主要目的是为了让Python开发者能够方便地利用OpenPBS的...

    OpenPBS-2.3.16-IA32-patch.tar.gz

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

    PBS管理系统.pdf

    PBS主要包括openPBS、PBS Pro和Torque三个分支。OpenPBS作为最早的版本,已逐渐停止更新,而PBS Pro作为商业版提供了最全面的功能。Torque则是由Clustering公司接手OpenPBS并持续维护的开源版本。 【Torque安装】...

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

    【作业提交系统Torque个人安装总结】 Torque(也称为pbs torque)是一种广泛使用的作业调度系统,源于历史悠久的PBS(Portable Batch System),是为本地集群提供资源管理和作业调度的工具。PBS有三个主要分支:...

    集群环境搭建的安装配置文档

    用于帮助搭建集群环境集群 参考文档配置集群事务 包括mpich2和OpenPBS的配置

    前端开源库-torque-reference

    1. **安装**:首先需要将torque-reference-master文件解压,然后通过npm或yarn将其添加到项目依赖中。 2. **阅读文档**:仔细阅读项目提供的文档,了解基本概念和使用方法,以及API的详细说明。 3. **实践操作**:...

    pbswebmon-开源

    【pbswebmon-开源】是一个专门针对基于PBS(Portable Batch System)的集群系统设计的Web监控工具,尤其适用于OpenPBS和Torque这两种流行的资源管理系统。它为管理员提供了一个直观的界面,以实时监控集群的运行状态...

    Torque安装管理手册

    - **依赖库**:在安装过程中,可能需要安装一些依赖库,如OpenPBS等,这些库对于Torque的正常运行至关重要。 ##### 2.2 基本配置 - **配置文件**:Torque的主要配置文件是`/etc/torque/server_config`,包含了...

    Linux集群组建和管理教学大纲.doc

    学生将学习OpenPBS的安装、操作命令、设置、工作目录和主要文件,以及用户命令的使用方法。通过OpenPBS,可以实现集群任务的高效调度和管理,对于科研和生产中大规模并行作业的处理至关重要。 除了上述教学内容,本...

    Torque Web Monitor-开源

    1. 安装依赖项,如Apache服务器、Python、数据库等。 2. 下载并解压torquemon-1.0压缩包。 3. 配置Torque和数据库连接。 4. 编译和安装Torque Web Monitor。 5. 配置Web服务器以代理Torque Web Monitor的HTTP请求。 ...

    ubmod:UBMoD - 按需度量

    UBMoD 是一个开源数据仓库和网络门户,用于从高性能计算环境中常见的资源管理器(目前支持的 TORQUE、OpenPBS、Sun Grid Engine 和 Slurm)中挖掘统计数据。 它最初是由纽约州立大学布法罗大学计算研究中心的 Andrew...

    超级计算机的发展方向.pdf

    这些工具和技术的未来发展可能会趋向于更加人性化和智能化,简化系统安装流程,提高系统的易用性和管理效率。 8. 集群管理(OpenPBS, queue, server, node, scheduling) OpenPBS是一个开源的作业调度系统,用于...

    适用于科研基因生物制药HPC的存储方案.pdf

    3. **软件堆栈**:软件堆栈包括Xcat、Oscar、CSM等集群管理系统,MPICH、OpenMPI等并行环境,Gnu C/C++、Fortran、Java、Python等编译环境,以及OpenPBS、Maui Scheduler等作业调度器。 4. **HPC架构**:典型的HPC...

Global site tag (gtag.js) - Google Analytics