Core Specialization Plugin Programmer Guide

Overview

This document describes the Slurm core specialization plugins and the APIs that defines them.
このドキュメントでは、Slurmコアスペシャライゼーションプラグインとそれらを定義するAPIについて説明します。
It is intended as a resource to programmers wishing to write their own Slurm core specialization plugin.
これは、独自のSlurmコアスペシャライゼーションプラグインを作成したいプログラマー向けのリソースとして意図されています。
This is version 100 of the API.
これはAPIのバージョン100です。

Slurm core specialization plugins must conform to the Slurm Plugin API with the following specifications:
Slurmコアスペシャライゼーションプラグインは、次の仕様のSlurmプラグインAPIに準拠する必要があります。

const char plugin_name[]="full text name"

A free-formatted ASCII text string that identifies the plugin.
プラグインを識別する自由形式のASCIIテキスト文字列。

const char plugin_type[]="major/minor"

The major type must be "core_spec".
メジャータイプは「core_spec」である必要があります。
The minor type can be any suitable name for the type of core specialization package.
マイナータイプは、コアスペシャライゼーションパッケージのタイプに適した名前にすることができます。
The following core specialization plugins are included in the Slurm distribution
以下のコアスペシャライゼーションプラグインがSlurmディストリビューションに含まれています

  • cray_aries — Use Cray XC APIs to enforce core specialization.
    cray_aries — Cray XC APIを使用して、コアの特殊化を実施します。
  • none — Can be configured to log calls to its functions, but otherwise does nothing.
    none —関数への呼び出しをログに記録するように構成できますが、それ以外の場合は何もしません。

Slurm can be configured to use multiple core specialization plugins if desired.
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関数の変更により、障害の診断が困難になる可能性があります。

NOTE: These functions all accept as an argument the job step's container ID (as set by the proctrack plugin).
注:これらの関数はすべて、引数としてジョブステップのコンテナID(proctrackプラグインによって設定されたもの)を受け入れます。
Each job step will have a different container ID.
各ジョブステップには、異なるコンテナIDがあります。
Since a job may execute multiple job steps sequentially and/or in parallel; these functions will be called once for each job step on each compute node.
ジョブは複数のジョブステップを順次および/または並行して実行する可能性があるため、これらの関数は、各計算ノードのジョブステップごとに1回呼び出されます。

API Functions

All of the following functions are required.
以下のすべての機能が必要です。
Functions which are not implemented must be stubbed.
実装されていない関数はスタブする必要があります。

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 core_spec_p_set(uint64_t cont_id, uint16_t core_count)

Description:
This function is called by the slurmstepd daemon after the job step's tasks have been forked and exec'ed, and immediately before they are released from a held state.
この関数は、ジョブステップのタスクがフォークされて実行された後、ホールド状態から解放される直前に、slurmstepdデーモンによって呼び出されます。
Note that each job step will have a different container ID.
各ジョブステップには異なるコンテナIDがあることに注意してください。
Note that since a job may execute multiple job steps sequentially and/or in parallel; this function will be called once for each job step on each compute node.
ジョブは複数のジョブステップを順次および/または並行して実行する可能性があることに注意してください。この関数は、各計算ノードのジョブステップごとに1回呼び出されます。

Arguments:
cont_id (input) the job step's container ID as set by the proctrack plugin.
cont_id(入力)proctrackプラグインによって設定されたジョブステップのコンテナID。

core_count (input) number of specialized cores to be reserved for the job.
core_count(入力)ジョブ用に予約される特殊なコアの数。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int core_spec_p_clear(uint64_t cont_id)

Description:
This function is called by the slurmstepd daemon after the job step's tasks have all exited.
この関数は、ジョブステップのタスクがすべて終了した後、slurmstepdデーモンによって呼び出されます。
Note that each job step will have a different container ID.
各ジョブステップには異なるコンテナIDがあることに注意してください。
Note that since a job may execute multiple job steps sequentially and/or in parallel; this function will be called once for each job step on each compute node.
ジョブは複数のジョブステップを順次および/または並行して実行する可能性があることに注意してください。この関数は、各計算ノードのジョブステップごとに1回呼び出されます。

Arguments:
cont_id (input) the job step's container ID as set by the proctrack plugin.
cont_id(入力)proctrackプラグインによって設定されたジョブステップのコンテナID。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int core_spec_p_suspend(uint64_t cont_id, uint16_t core_count)

Description:
This function is called by the slurmstepd daemon immediately after the job step's tasks have all been sent a SIGSTOP signal.
この関数は、ジョブステップのタスクがすべてSIGSTOPシグナルを送信された直後に、slurmstepdデーモンによって呼び出されます。
Note that each job step will have a different container ID.
各ジョブステップには異なるコンテナIDがあることに注意してください。
Note that since a job may execute multiple job steps sequentially and/or in parallel; this function will be called once for each job step on each compute node.
ジョブは複数のジョブステップを順次および/または並行して実行する可能性があることに注意してください。この関数は、各計算ノードのジョブステップごとに1回呼び出されます。

Arguments:
cont_id (input) the job step's container ID as set by the proctrack plugin.
cont_id(入力)proctrackプラグインによって設定されたジョブステップのコンテナID。

core_count (input) number of specialized cores to be reserved for the job.
core_count(入力)ジョブ用に予約される特殊なコアの数。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

int core_spec_p_resume(uint64_t cont_id, uint16_t core_count)

Description:
This function is called by the slurmstepd daemon immediately before the job step's tasks will all be sent a SIGCONT signal.
この関数は、ジョブステップのタスクがすべてSIGCONTシグナルを送信される直前に、slurmstepdデーモンによって呼び出されます。
Note that each job step will have a different container ID.
各ジョブステップには異なるコンテナIDがあることに注意してください。
Note that since a job may execute multiple job steps sequentially and/or in parallel; this function will be called once for each job step on each compute node.
ジョブは複数のジョブステップを順次および/または並行して実行する可能性があることに注意してください。この関数は、各計算ノードのジョブステップごとに1回呼び出されます。

Arguments:
cont_id (input) the job step's container ID as set by the proctrack plugin.
cont_id(入力)proctrackプラグインによって設定されたジョブステップのコンテナID。

core_count (input) number of specialized cores to be reserved for the job.
core_count(入力)ジョブ用に予約される特殊なコアの数。

Returns:
SLURM_SUCCESS on success, or
SLURM_ERROR on failure.

Last modified 27 March 2015