跳转到内容

集群手册/Torque

来自 Wikibooks,开放世界中的开放书籍

Torque 是一个基于原始 PBS 项目的开源资源管理器 (http://www.pbsworks.com/)。它负责启动、删除或监控作业,从而支持调度程序,否则调度程序无法管理这些作业。因此,Torque 带有自己的调度程序 (pbs_sched),但您也可以使用其他调度程序。Torque 足够灵活以执行空间规划,但主要用于集群。下面介绍如何在集群上为简单作业安装和配置 Torque。要安装最新版本的 Torque,您不应该使用来自 Ubuntu 的软件包,而应该使用来自以下网站的软件包:http://www.adaptivecomputing.com/products/open-source/torque/.

下载 Torque

[编辑 | 编辑源代码]

在主节点上下载文件(这里我们使用版本 4.1.4)。

$ sudo wget http://adaptive.wpengine.com/resources/downloads/torque/torque-4.1.4.tar.gz

解压缩文件并导航到目录

[编辑 | 编辑源代码]

$ tar -xzvf torque-4.1.4.tar.gz

$ cd torque-4.1.4/

在配置和安装过程中,最好留在该目录中。

在主节点上配置和安装软件包

[编辑 | 编辑源代码]

设置目录

[编辑 | 编辑源代码]

默认情况下,make install 将所有文件安装在 /usr/local/bin/usr/local/lib/usr/local/sbin/usr/local/include/usr/local/man 中。
您也可以指定一个不同的文件夹来存储文件,方法是在 ./configure 后面加上 -–prefix=$directoryname。因此,如果您不想更改任何内容,则无需考虑此步骤。

设置库文件夹

[编辑 | 编辑源代码]

创建一个新文件:/etc/ld.so.conf.d/torque.conf

$ sudo nano /etc/ld.so.conf.d/torque.conf

在其中写入库的路径。在标准设置中,它将是 /usr/local/lib(如果 home 定义为一个目录,它将是 /home/lib)。然后输入以下命令

$ sudo ldconfig

执行配置

[编辑 | 编辑源代码]

要执行 configure,您需要使用以下命令安装 build-essentialslibssl-devellibxml2-devel

$ sudo apt-get install build-essentials libssl-dev libxml2-dev

如果您执行 ./configure,您将收到 libxml2-devel 未安装的错误。这是 Torque 中的一个错误,可以通过以下步骤解决。
首先,需要更改 configure.ac 文件中的两行(请参见屏幕截图)。

$ sudo nano configure.ac

图 12.1:配置错误修复


减号表示需要更改的行,加号表示更改后的行应该是什么样子。最好寻找要更改行的关键字,因为该文件有很多行。
之后执行 autoconf

$ sudo autoconf

并更改 configure 文件

sudo nano configure

图 12.2:配置错误修复 2


同样,您需要找到黄色标记的行,并在末尾(红色矩形)将 -1 更改为 -l。
现在您可以运行 ./configure,它应该顺利完成。

sudo ./configure

最后,还运行 makemake install

sudo make

sudo make install

默认情况下,make install 会创建目录 /var/spool/torque。此目录被称为 TORQUE_HOME。在其中,会创建用于配置和运行程序的各种子文件夹。

在节点上安装 Torque

[编辑 | 编辑源代码]

创建软件包

[编辑 | 编辑源代码]

Torque 具有创建软件包的功能,该功能使用配置,然后可以安装在节点上。为此,请使用命令 make

make packages

软件包存储在 torque-4.1.4/ 中,必须从该目录复制到节点可以访问的共享目录中。在我们的例子中,它将是 /home 目录。
例如

cp torque-package-mom-linux-i686.sh /home

在节点上,只需要 mom-linux 软件包。其他所有软件包都是可选的。

安装软件包

[编辑 | 编辑源代码]

在节点上,导航到您复制软件包的目录,并使用以下命令安装它

./torque-package-mom-linux-i686.sh –install

配置 Torque

[编辑 | 编辑源代码]

初始化 serverdb

[编辑 | 编辑源代码]

在目录 TORQUE_HOME/server_priv 中,会存放 pbs_server 服务使用的配置和信息。要初始化文件 serverdb,请运行以下命令

sudo ./torque.setup

然后,pbs_server 需要重新启动。

sudo qterm

sudo pbs_server

可以使用以下命令查看服务器属性

sudo qmgr -c ’p s’

指定节点

[edit | edit source]

因此,pbs_server 识别网络中的哪些计算机是节点。为此,在目录 TORQUE_HOME/server_priv 中创建一个名为 nodes 的新文件。

sudo nano nodes

在这个文件中,节点将与其名称一起存储。通常,在文件中写入名称就足够了,您可以为每个节点设置特殊属性。语法如下:
NodeName[:ts] [np=] [gpus=] [properties]
[:ts]: 此选项将节点设置为时分。这些节点确实由服务器列出,但不会分配作业。
[np=]: 此选项用于指定节点上存在的虚拟处理器数量。
[gpus=]: 此选项用于指定节点上存在的 CPU 数量。
[properties]: 此选项允许输入一个名称来标识节点。但是,它必须以字母开头。
也可以自动检测处理器数量。

sudo qmgr -c set server auto_node_np = True

因此,服务器 auto_node_np 中的属性将设置为 True。

配置节点

要配置节点,需要在目录 TORQUE_HOME/mom_priv 中创建文件 config

sudo nano config

此文件在所有节点上创建方式相同,内容应如下所示:

图 12.3: Config 文件

此外,必须在其中写入行 $usecp*:/home /home。这确保了已完成作业的文件存储在特定目录中(此处为共享的 /home)。否则,在运行命令 tracejob 时会发生以下错误:

图 12.4: Tracejob 错误


执行作业

[edit | edit source]

运行服务

为了执行作业,至少需要启动 4 个服务。在主节点上,这些服务是 pbs_serverpbs_schedtrqauthd。在节点上,则是 pbs_mom

sudo pbs_server

sudo pbs_sched

sudo sudo trqauthd

sudo pbs_mom

运行作业

[edit | edit source]
图 12.5: Bash 文件示例


在主节点上执行命令 qsub [文件名] 将启动一个作业。要运行作业,需要一个 Bash 文件。在上面的示例中,显示日期,等待 10 秒,然后再次输出日期。结果将存储在启动作业的主节点上的目录中。

有用命令

[edit | edit source]

Torque 中有一些命令可以用来跟踪正在运行的作业,对于故障排除非常有用。

命令

pbsnodes -a

在主节点上执行,会显示节点是否处于活动状态。使用命令

qstat

将显示正在运行或已完成的作业列表。

图 12.6: qstat 显示


您可以在其中看到作业的编号,使用的节点以及作业是已启动、正在进行还是已结束。
一个非常有用的调试命令是

tracejob [作业编号]

这是一个来自 Torque 的命令,它会在 pbs_servermomscheduler 中搜索和汇总日志文件。使用它可以快速获得概览。

华夏公益教科书