叢集手冊/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 中搜索和彙總日誌檔案。使用它可以快速獲得概覽。