跳轉到內容

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

華夏公益教科書