1

SLURMのPerl APIは、API を使用してジョブを送信するには、「ジョブの説明」($job_descまたは$job_desc_msg) を指定する必要があることを示しています。これには構造job_desc_msg_tがありますが、何が何であるかはわかりませんjob_desc_msg_t

更新: slurm.h の 1162 行目から見つけたので、同様の構造のハッシュを渡す必要があると推測しています。

4

1 に答える 1

4

これはまさに、マニュアルページに従って行う必要があることです。

通常、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>」を参照してください。

于 2015-05-06T17:30:39.607 に答える