Launch Plugin API

Overview

This document describes the launch plugin that is responsible for launching a parallel task in Slurm and the API that defines them.
このドキュメントでは、Slurmで並列タスクを起動するための起動プラグインとそれらを定義するAPIについて説明します。
It is intended as a resource to programmers wishing to write their own launch plugin.
これは、独自の起動プラグインを作成したいプログラマー向けのリソースとして意図されています。

const char plugin_name[]="launch Slurm plugin"

const char plugin_type[]="launch/slurm"

  • slurm — Use Slurm's default launching infrastructure
    slurm —Slurmのデフォルトの起動インフラストラクチャを使用します

const uint32_t plugin_version
If specified, identifies the version of Slurm used to build this plugin and any attempt to load the plugin from a different version of Slurm will result in an error.
指定されている場合、このプラグインのビルドに使用されたSlurmのバージョンを識別し、異なるバージョンのSlurmからプラグインをロードしようとするとエラーが発生します。
If not specified, then the plugin may be loaded by Slurm commands and daemons from any version, however this may result in difficult to diagnose failures due to changes in the arguments to plugin functions or changes in other Slurm functions used by the plugin.
指定しない場合、プラグインは任意のバージョンのSlurmコマンドおよびデーモンによってロードされる可能性がありますが、プラグイン関数の引数の変更またはプラグインが使用する他のSlurm関数の変更により、障害の診断が困難になる可能性があります。

The programmer is urged to study src/plugins/launch/slurm/launch_slurm.c for a sample implementation of a Slurm launch plugin.
プログラマーは、Slurm起動プラグインのサンプル実装について、src / plugins / launch / slurm /launch_slurm.cを調べることをお勧めします。

API Functions

int init (void)

Description:
Called when the plugin is loaded, before any other functions are called.
プラグインがロードされたときに、他の関数が呼び出される前に呼び出されます。
Put global initialization here.
ここにグローバル初期化を配置します。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

void fini (void)

Description:
Called when the plugin is removed.
プラグインが削除されたときに呼び出されます。
Clear any allocated storage here.
ここで割り当てられたストレージをすべてクリアします。

Returns: None.

Note: These init and fini functions are not the same as those described in the dlopen (3) system library.
注:これらのinitおよびfini関数は、dlopen(3)システムライブラリで説明されているものと同じではありません。
The C run-time system co-opts those symbols for its own initialization.
Cランタイムシステムは、独自の初期化のためにこれらのシンボルを採用します。
The system _init() is called before the Slurm init(), and the Slurm fini() is called before the system's _fini().
システム_init()はSlurm init()の前に呼び出され、Slurm fini()はシステムの_fini()の前に呼び出されます。

int launch_p_setup_srun_opt(char **rest, opt_t *opt_local)

Description:
Sets up the srun operation.
srun操作を設定します。

Arguments:
rest: extra parameters on the command line not processed by srun
残り:srunによって処理されないコマンドラインの追加パラメーター

opt_local: task launch options from srun command

Returns:
opt_local:srunコマンドからのタスク起動オプション戻り値:

SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int launch_p_handle_multi_prog_verify(int command_pos, opt_t *opt_local)

Description:
Is called to verify a multi-prog file if verifying needs to be done.
検証を行う必要がある場合は、マルチプログラムファイルを検証するために呼び出されます。

Arguments:
command_pos: to be used with global opt variable to tell which spot the command is in opt.argv.
command_pos:コマンドがopt.argv内のどのスポットにあるかを示すためにグローバルopt変数とともに使用されます。

opt_local: task launch options from srun command
opt_local:srunコマンドからのタスク起動オプション

Returns:
1 if handled, or
0 if not.

int launch_p_create_job_step(srun_job_t *job, bool use_all_cpus, void (*signal_function)(int), sig_atomic_t *destroy_job, opt_t *opt_local, int pack_offset)

Description:
Creates the job step.
ジョブステップを作成します。

Arguments:
job: the job to run.
job:実行するジョブ。

use_all_cpus: choice whether to use all cpus.
use_all_cpus:すべてのCPUを使用するかどうかを選択します。

signal_function: function that handles the signals coming in.
signal_function:入ってくる信号を処理する関数。

destroy_job: pointer to a global flag signifying if the job was canceled while allocating.
destroy_job:割り当て中にジョブがキャンセルされたかどうかを示すグローバルフラグへのポインタ。

opt_local: task launch options from srun command
opt_local:srunコマンドからのタスク起動オプション

pack_offset: zero-origin index into a heterogeneous job allocation, -1 if not heterogeneous job
pack_offset:異種ジョブ割り当てへのゼロオリジンインデックス。異種ジョブでない場合は-1

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

launch_p_step_launch(srun_job_t *job, slurm_step_io_fds_t *cio_fds, uint32_t *global_rc, opt_t *opt_local)

Description:
Launches the job step.
ジョブステップを起動します。

Arguments:
job: the job to launch.
ジョブ:起動するジョブ。

cio_fds: filled in io descriptors
cio_fds:io記述子に入力

global_rc: srun global return code.
global_rc:グローバルリターンコードを実行します。

opt_local: task launch options from srun command
opt_local:srunコマンドからのタスク起動オプション

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int launch_p_step_wait(srun_job_t *job, bool got_alloc, opt_t *opt_local, int pack_offset)

Description:
Waits for the job to be finished.
ジョブが終了するのを待ちます。

Arguments:
job: the job to wait for.
ジョブ:待機するジョブ。

got_alloc: if the resource allocation was created inside srun.
got_alloc:リソース割り当てがsrun内で作成された場合。

opt_local: task launch options from srun command
opt_local:srunコマンドからのタスク起動オプション

pack_offset: zero-origin index into a heterogeneous job allocation, -1 if not heterogeneous job
pack_offset:異種ジョブ割り当てへのゼロオリジンインデックス。異種ジョブでない場合は-1

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int launch_p_step_terminate(void)

Description:
Terminates the job step.
ジョブステップを終了します。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

void launch_p_print_status(void)

Description:
Gets the status of the job.
ジョブのステータスを取得します。

void launch_p_fwd_signal(int signal)

Description:
Sends a forward signal to any underlying tasks.
基になるタスクに転送信号を送信します。

Arguments:
signal: the signal that needs to be sent.
シグナル:送信する必要のあるシグナル。

Last modified 14 June 2018