pam

Parallel Application Manager (MPI 應用程式的工作入門範本)。

HP-UX 供應商 MPI 語法

bsub pam -mpi mpirun [mpirun_options] mpi_app [argument ...]

通用 PJL 架構語法

bsub pam [-t] [-v] [-n num_tasks] -g [num_args] pjl_wrapper [pjl_options] mpi_app [argument ...] pam [-h] pam [-V]

說明

「平行應用程式管理程式 (PAM)」與 LSF完全整合。 PAM 充當平行 LSF 工作的監督者。

pam 指令所啟動的 MPI 工作只能透過批次工作提交,無法以互動方式使用 PAM 來啟動平行工作。 sbatchd 常駐程式會在第一個執行主機上啟動 PAM。

對於所有平行應用程式程序 (作業) , PAM 具有下列功能:
  • 使用供應商 MPI 程式庫或「MPI 平行工作啟動程式 (PJL)」(例如, mpirunpoe) ,在 LSF 叢集中指定的一組主機上啟動平行工作。
  • PAM 會聯絡配置給平行工作之每一個執行主機上的 RES。
  • PAM 會定期查詢 RES ,以收集每一個平行作業的資源使用情形,並透過 RES 將控制信號傳遞至所有處理程序群組及個別執行中作業,並視需要清除作業。
  • 將工作層次資源使用及處理程序 ID (PID 及 PGID) 傳遞至 sbatchd 以強制執行
  • 收集資源使用資訊並在終止時結束狀態

供應商 MPI 工作的作業啟動

pam 指令會在 LSF 叢集的一組指定主機上啟動供應商 MPI 工作。 啟動 MPI 工作的 pam 指令,需要使用支援 LSF 的供應商 MPI 實作 (例如 HP-UX 供應商 MPI) ,讓基礎 MPI 系統能夠察覺 LSF

PAM 使用供應商 MPI 程式庫來建立組成 MPI 應用程式之平行作業所需的子程序。 它會在 LSF 配置的系統上啟動這些作業。 配置包括所需的執行主機數目,以及每一部主機上所需的子處理程序數目。

同屬 PJL 工作的作業啟動

對於使用 bsub提交的平行工作:
  • PAM 會啟動 PJL ,而 PJL 又會啟動 TaskStarter (TS)。
  • TS 會在每一個執行主機上啟動作業,向 PAM 報告處理程序 ID ,並等待作業完成。
兩個環境變數可讓 PAM 在啟動 PAM 之前或之後執行 Script 或二進位檔。 如果您自訂 mpirun.lsf Script ,並具有多次呼叫 mpirun.lsf Script 的工作 Script ,則這些變數非常有用。
$MPIRUN_LSF_PRE_EXEC
在 PAM 啟動之前執行。
$MPIRUN_LSF_POST_EXEC
在 PAM 啟動之後執行。

供應商 MPI 工作的選項

-auto_place
pam 指令行上的 -auto_place 選項會告知 IRIX mpirun 程式庫根據 LSF配置的資源來啟動 MPI 應用程式。
-mpi
在 HP-UX上,您可以透過協調 mpirun 指令的啟動階段,讓 LSF 管理主機的配置,以達到更好的資源使用。 在一般 MPI mpirun 指令之前,請使用下列指令:
bsub pam -mpi

對於 HP-UX 供應商 MPI 工作, -mpi 選項必須是 pam 指令的第一個選項。

例如,下列 mpirun 指令會執行單一主機工作:
mpirun -np 14 a.out
若要讓 LSF 選取主機,請在 bsub 工作提交指令中包括 mpirun 指令:
bsub pam -mpi mpirun -np 14 a.out
-n num_tasks
執行平行應用程式所需的處理器數目,通常與工作中的平行作業數目相同。 如果主機是多重處理器,則一部主機可以啟動數個作業。

您可以在相同的工作提交中同時使用 bsub -npam -n 指令。 在 pam -n 選項中指定的數字必須小於或等於 bsub -n 指令指定的數字。 如果使用 pam -n 指令指定的作業數目大於 bsub -n 指令指定的數目,則會忽略 pam -n 指令。

例如,您可以指定下列指令:
bsub -n 5 pam -n 2 -mpi -auto_place a.out

工作要求五個處理器,但 PAM 只會啟動兩個平行作業。

mpi_app [引數 ...]
要在列出的主機上執行的 MPI 應用程式名稱。 此名稱必須是指令行上的最後一個引數。
-h
將指令用法列印至 stderr 並結束。
-V
將 LSF 發行版本列印至 stderr 並結束。

同屬 PJL 工作的選項

-t
此選項告訴 pam 指令不要將 MPI 工作作業摘要報告列印至標準輸出。 依預設,摘要報告會列印作業 ID、它執行所在的主機、已執行的指令、結束狀態及終止時間。
-v
詳細模式。 顯示一或多個執行主機的名稱。
-g [num_args] pjl_wrapper [pjl_options]
需要 -g 選項才能使用通用 PJL 架構。 您必須在 -g之前指定所有其他 pam 選項。
num_args
指定指令行中有多少以空格區隔的引數與 PJL 相關 (之後,會假設指令行的其餘區段與啟動平行作業的二進位應用程式相關)。
pjl_wrapper
PJL 的名稱。
pjl_options
PJL 的選用引數。
例如:
  • 名稱為 PJL 的 PJLno_arg_pjl不採用任何選項,因此 num_args= 1。 語法如下:
    pam [pam_options] -g 1 no_arg_pjl job [job_options]
    
  • PJL 命名為 3_arg_pjl ,並採用選項 -a-bgroup_name,因此 num_args= 4。 使用下列語法:
    pam [pam_options] -g 4 3_arg_pjl -a -b group_name job [job_options]
    
-n num_tasks
執行 MPI 應用程式所需的處理器數目,通常是工作中的平行作業數目。 如果主機是多重處理器,則一部主機可以啟動數個作業。

您可以在相同的工作提交中同時使用 bsub -npam -n 指令。 pam -n 選項中指定的數字必須小於或等於 bsub -n 選項指定的數字。 如果使用 pam -n 選項指定的作業數目大於 bsub -n 選項指定的數目,則會忽略 pam -n 選項。

mpi_app [引數 ...]
要在列出的主機上執行的 MPI 應用程式名稱。 此名稱必須是指令行上的最後一個引數。
-h
將指令用法列印至 stderr 並結束。
-V
LSF 發行版本列印至 stderr 並結束。

結束狀態

pam 指令以 mpirun 指令或 PJL 封套的結束狀態結束。

另請參閱

bsub