Slurm Job Completion Logging Plugin API

Overview

This document describes Slurm job completion logging plugins and the API that defines them.
このドキュメントでは、Slurmジョブ完了ロギングプラグインとそれらを定義するAPIについて説明します。
It is intended as a resource to programmers wishing to write their own Slurm job completion logging plugins.
これは、独自のSlurmジョブ完了ロギングプラグインを作成したいプログラマー向けのリソースとして意図されています。

Slurm job completion logging plugins are Slurm plugins that implement the Slurm API for logging job information upon their completion.
Slurmジョブ完了ログプラグインは、完了時にジョブ情報をログに記録するためのSlurmAPIを実装するSlurmプラグインです。
This may be used to log job information to a text file, database, etc.
これは、ジョブ情報をテキストファイルやデータベースなどに記録するために使用できます。
The plugins must conform to the Slurm Plugin API with the following specifications:
プラグインは、次の仕様のSlurmプラグインAPIに準拠している必要があります。

const char plugin_type[]
The major type must be "jobcomp." The minor type can be any recognizable abbreviation for the type of scheduler.
メジャータイプは「jobcomp」である必要があります。マイナータイプは、スケジューラーのタイプの認識可能な省略形にすることができます。
We recommend, for example:
たとえば、次のことをお勧めします。

  • none — No job logging.
    none —ジョブログはありません。
  • elasticsearch — Log job information to an Elasticsearch server.
    elasticsearch —ジョブ情報をElasticsearchサーバーに記録します。
  • filetxt — Log job information to a text file.
    filetxt —ジョブ情報をテキストファイルに記録します。
  • mysql — Job completion is written to a mysql database.
    mysql —ジョブの完了はmysqlデータベースに書き込まれます。
  • script — Execute a script passing in job information in environment variables.
    script —環境変数でジョブ情報を渡すスクリプトを実行します。

const char plugin_name[]
Some descriptive name for the plugin.
プラグインのわかりやすい名前。
There is no requirement with respect to its format.
そのフォーマットに関する要件はありません。

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.
const uint32_t plugin_version指定されている場合、このプラグインのビルドに使用される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/jobcomp/filetxt/jobcomp_filetxt.c and src/plugins/jobcomp/none/jobcomp_none.c for sample implementations of a Slurm job completion logging plugin.
プログラマーは、Slurmジョブ完了ロギングプラグインのサンプル実装について、src / plugins / jobcomp / filetxt /jobcomp_filetxt.cおよびsrc / plugins / jobcomp / none /jobcomp_none.cを調べることをお勧めします。

API Functions

The following functions must appear.
次の関数が表示される必要があります。
Functions which are not implemented should 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 slurm_jobcomp_set_location (char * location);

Description: Specify the location to be used for job logging.
説明:ジョブロギングに使用する場所を指定します。

Argument: location    (input) specification of where logging should be done.
引数:ロギングを実行する場所の場所(入力)仕様。
The interpretation of this string is at the discretion of the plugin implementation.
この文字列の解釈は、プラグインの実装の裁量に委ねられています。

Returns: SLURM_SUCCESS if successful.
戻り値:成功した場合はSLURM_SUCCESS。
On failure, the plugin should return SLURM_ERROR and set the errno to an appropriate value to indicate the reason for failure.
失敗した場合、プラグインはSLURM_ERRORを返し、errnoを適切な値に設定して失敗の理由を示す必要があります。

int slurm_jobcomp_log_record(job_record_t *job_ptr);

Description: Note that a job is about to terminate or change size.
説明:ジョブが終了するか、サイズが変更されようとしていることに注意してください。
The job's state will include the JOB_RESIZING flag if and only if it is about to change size.
ジョブの状態には、サイズが変更されようとしている場合にのみ、JOB_RESIZINGフラグが含まれます。
Otherwise the job is terminating.
それ以外の場合、ジョブは終了します。
Note the existence of resize_time in the job record if one wishes to record information about a job at each size (i.e. a history of the job as its size changes through time).
各サイズでジョブに関する情報(つまり、サイズが時間とともに変化するときのジョブの履歴)を記録する場合は、ジョブレコードにresize_timeが存在することに注意してください。

Argument:
job_ptr   (input) Pointer to job record as defined in src/slurmctld/slurmctld.h
job_ptr(入力)src / slurmctld /slurmctld.hで定義されているジョブレコードへのポインター

Returns: SLURM_SUCCESS if successful.
戻り値:成功した場合はSLURM_SUCCESS。
On failure, the plugin should return SLURM_ERROR and set the errno to an appropriate value to indicate the reason for failure.
失敗した場合、プラグインはSLURM_ERRORを返し、errnoを適切な値に設定して失敗の理由を示す必要があります。

List slurm_jobcomp_get_jobs(acct_job_cond_t *job_cond);

Description: Get completed job info from storage.
説明:ストレージから完了したジョブ情報を取得します。

Arguments:
job_cond     (input) specification of filters to identify the jobs we wish information about (start time, end time, cluster name, user id, etc).
情報が必要なジョブ(開始時刻、終了時刻、クラスター名、ユーザーIDなど)を識別するためのフィルターのjob_cond(入力)仕様。
acct_job_cond_t is defined in common/slurm_accounting_storage.h.
acct_job_cond_tはcommon / slurm_accounting_storage.hで定義されています。

Returns: A list of job records or NULL on error.
戻り値:ジョブレコードのリスト、またはエラーの場合はNULL。
Elements on the list are of type jobcomp_job_rec_t, which is defined in common/slurm_jobcomp.h.
リストの要素は、common /slurm_jobcomp.hで定義されているタイプjobcomp_job_rec_tです。
Any returned list must be destroyed to avoid memory leaks.
メモリリークを回避するために、返されたリストはすべて破棄する必要があります。

void slurm_jobcomp_archive(List selected_parts, void *params)

Description: used to archive old data.

Arguments:
List selected_parts (input) list containing char *'s of names of partitions to query against.
照会するパーティションの名前のchar *を含むselected_pa​​rts(入力)リストをリストします。

void *params (input) to be cast as sacct_parameters_t in the plugin.
プラグインでsacct_parameters_tとしてキャストされるvoid * params(入力)。

Returns: None

Last modified 23 October 2019