什么是我需要通过Perl API向SLURM提交作业的`job_desc_msg_t`格式?

时间:2015-05-06 14:30:32

标签: perl slurm

Perl API for SLURM表示要使用API​​提交作业,我们需要为其提供“职位说明”($job_desc$job_desc_msg),其结构为{{1}但它没有告诉job_desc_msg_t是什么。

我在slurm.h starting at line 1160找到了它,所以我猜我需要传入一个类似结构的哈希。我计划玩它并在今天或明天晚些时候发布一个答案,一旦我有机会试一试。

1 个答案:

答案 0 :(得分:3)

根据手册页,这正是你必须做的。

  

典型地,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>"用于结构的定义。