SLURMのPerl APIは、API を使用してジョブを送信するには、「ジョブの説明」($job_desc
または$job_desc_msg
) を指定する必要があることを示しています。これには構造job_desc_msg_t
がありますが、何が何であるかはわかりませんjob_desc_msg_t
。
更新: slurm.h の 1162 行目から見つけたので、同様の構造のハッシュを渡す必要があると推測しています。
SLURMのPerl APIは、API を使用してジョブを送信するには、「ジョブの説明」($job_desc
または$job_desc_msg
) を指定する必要があることを示しています。これには構造job_desc_msg_t
がありますが、何が何であるかはわかりませんjob_desc_msg_t
。
更新: slurm.h の 1162 行目から見つけたので、同様の構造のハッシュを渡す必要があると推測しています。
これはまさに、マニュアルページに従って行う必要があることです。
通常、C 構造体は、フィールド名をハッシュ キーとして、Perl ハッシュ参照に変換されます (おそらく祝福されています)。C の配列は、Perl の配列に変換されます。たとえば、「job_info_msg_t」という構造があります。
typedef struct job_info_msg { time_t last_update; /* time of latest info */ uint32_t record_count; /* number of records */ job_info_t *job_array; /* the job records */ } job_info_msg_t;
これは、次の構造を持つハッシュ参照に変換されます。
{ last_update => 1285847672, job_array => [ {account => 'test', alloc_node => 'ln0', alloc_sid => 1234, ...}, {account => 'debug', alloc_node => 'ln2', alloc_sid => 5678, ...}, ... ] }
ハッシュに「record_count」フィールドがないことに注意してください。配列「job_array」の要素数から導出できます。
パラメータを API 関数に渡すには、対応するハッシュ参照を使用します。次に例を示します。
$rc = $slurm->update_node({node_names => 'node[0-7]', node_state => NODE_STATE_DRAIN});
構造体の定義については、「<slurm/slurm.h>」を参照してください。