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。
- 使用供應商 MPI 程式庫或「MPI 平行工作啟動程式 (PJL)」(例如, mpirun 或 poe) ,在 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 工作的作業啟動
- PAM 會啟動 PJL ,而 PJL 又會啟動 TaskStarter (TS)。
- TS 會在每一個執行主機上啟動作業,向 PAM 報告處理程序 ID ,並等待作業完成。
- $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 -n 和 pam -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、 -b及 group_name,因此 num_args= 4。 使用下列語法:
pam [pam_options] -g 4 3_arg_pjl -a -b group_name job [job_options]
- -n num_tasks
- 執行 MPI 應用程式所需的處理器數目,通常是工作中的平行作業數目。 如果主機是多重處理器,則一部主機可以啟動數個作業。
您可以在相同的工作提交中同時使用 bsub -n 和 pam -n 指令。 pam -n 選項中指定的數字必須小於或等於 bsub -n 選項指定的數字。 如果使用 pam -n 選項指定的作業數目大於 bsub -n 選項指定的數目,則會忽略 pam -n 選項。
- mpi_app [引數 ...]
- 要在列出的主機上執行的 MPI 應用程式名稱。 此名稱必須是指令行上的最後一個引數。
- -h
- 將指令用法列印至 stderr 並結束。
- -V
- 將 LSF 發行版本列印至 stderr 並結束。
結束狀態
pam 指令以 mpirun 指令或 PJL 封套的結束狀態結束。