集群手册/Torque
Torque 是一个基于原始 PBS 项目的开源资源管理器 (http://www.pbsworks.com/)。它负责启动、删除或监控作业,从而支持调度程序,否则调度程序无法管理这些作业。因此,Torque 带有自己的调度程序 (pbs_sched),但您也可以使用其他调度程序。Torque 足够灵活以执行空间规划,但主要用于集群。下面介绍如何在集群上为简单作业安装和配置 Torque。要安装最新版本的 Torque,您不应该使用来自 Ubuntu 的软件包,而应该使用来自以下网站的软件包:http://www.adaptivecomputing.com/products/open-source/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-essentials、libssl-devel 和 libxml2-devel
$ sudo apt-get install build-essentials libssl-dev libxml2-dev
如果您执行 ./configure,您将收到 libxml2-devel 未安装的错误。这是 Torque 中的一个错误,可以通过以下步骤解决。
首先,需要更改 configure.ac 文件中的两行(请参见屏幕截图)。
$ sudo nano configure.ac
减号表示需要更改的行,加号表示更改后的行应该是什么样子。最好寻找要更改行的关键字,因为该文件有很多行。
之后执行 autoconf
$ sudo autoconf
并更改 configure 文件
sudo nano configure
同样,您需要找到黄色标记的行,并在末尾(红色矩形)将 -1 更改为 -l。
现在您可以运行 ./configure,它应该顺利完成。
sudo ./configure
最后,还运行 make 和 make install。
sudo make
sudo make install
默认情况下,make install 会创建目录 /var/spool/torque
。此目录被称为 TORQUE_HOME。在其中,会创建用于配置和运行程序的各种子文件夹。
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_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
此文件在所有节点上创建方式相同,内容应如下所示:
此外,必须在其中写入行 $usecp*:/home /home。这确保了已完成作业的文件存储在特定目录中(此处为共享的 /home)。否则,在运行命令 tracejob 时会发生以下错误:
执行作业
[edit | edit source]运行服务
为了执行作业,至少需要启动 4 个服务。在主节点上,这些服务是 pbs_server、pbs_sched 和 trqauthd。在节点上,则是 pbs_mom。
sudo pbs_server
sudo pbs_sched
sudo sudo trqauthd
sudo pbs_mom
运行作业
[edit | edit source]
在主节点上执行命令 qsub [文件名] 将启动一个作业。要运行作业,需要一个 Bash 文件。在上面的示例中,显示日期,等待 10 秒,然后再次输出日期。结果将存储在启动作业的主节点上的目录中。
有用命令
[edit | edit source]Torque 中有一些命令可以用来跟踪正在运行的作业,对于故障排除非常有用。
命令
pbsnodes -a
在主节点上执行,会显示节点是否处于活动状态。使用命令
qstat
将显示正在运行或已完成的作业列表。
您可以在其中看到作业的编号,使用的节点以及作业是已启动、正在进行还是已结束。
一个非常有用的调试命令是
tracejob [作业编号]
这是一个来自 Torque 的命令,它会在 pbs_server、mom 和 scheduler 中搜索和汇总日志文件。使用它可以快速获得概览。