使用SLURM的Jenkins按需构建代理

使用SLURM的Jenkins按需构建代理,jenkins,hpc,slurm,Jenkins,Hpc,Slurm,我可以访问HPC群集,该群集使用SLURM来安排作业。我想评估Jenkins是否向集群提交作业 作为一个简单的测试,它可以将HPC登录节点添加到Jenkins,并配置一个执行srun….的Jenkins作业/登录节点上的myprogram。srun命令告诉SLURM分配一个计算节点并在其上执行/myprogram 这不是一个理想的解决方案。每个Jenkins作业都必须编写为使用srun。多个命令的脚本比较困难。计算节点未运行Jenkins代理,因此功能受到限制 我可以让Jenkins在作业处于队

我可以访问HPC群集,该群集使用SLURM来安排作业。我想评估Jenkins是否向集群提交作业

作为一个简单的测试,它可以将HPC登录节点添加到Jenkins,并配置一个执行
srun….的Jenkins作业/登录节点上的myprogram
srun
命令告诉SLURM分配一个计算节点并在其上执行
/myprogram

这不是一个理想的解决方案。每个Jenkins作业都必须编写为使用
srun
。多个命令的脚本比较困难。计算节点未运行Jenkins代理,因此功能受到限制


我可以让Jenkins在作业处于队列中时按需生成新节点吗?然后它可以执行
srun。。。登录节点上的jenkins代理
,在某些计算节点上生成jenkins代理。然后计算节点将连接回Jenkins并接受排队作业。我会短暂地出现一个节点
hpc-job-1643
,然后在作业完成后它会消失。

是的,您可以让Jenkins通过Slurm按需启动节点

  • 创建一个新节点。将远程根目录设置为可从Slurm集群的所有节点访问的目录

  • 设置作业将用于启动此节点的标签

  • 将用法设置为“仅生成标签表达式与此节点匹配的作业”

  • 选择“通过SSH启动代理”启动方法(我认为您需要一个插件)

  • 将主机设置为Slurm控制节点的主机名

  • 根据需要设置凭据和主机密钥验证策略

  • 单击SSH启动方法的“高级…”按钮

  • 将Prefix Start Agent命令设置为
    srun--pty[所需资源和约束的选项]sh-c'
    。注意结尾的单引号

  • 将后缀Start Agent命令设置为
    。这只是一句话

  • 对于可用性,请选择“需要时使此代理联机,空闲时使其脱机”。您需要设置按需延迟(我使用0)和空闲延迟


  • 是的,您可以通过Slurm让Jenkins按需启动节点

  • 创建一个新节点。将远程根目录设置为可从Slurm集群的所有节点访问的目录

  • 设置作业将用于启动此节点的标签

  • 将用法设置为“仅生成标签表达式与此节点匹配的作业”

  • 选择“通过SSH启动代理”启动方法(我认为您需要一个插件)

  • 将主机设置为Slurm控制节点的主机名

  • 根据需要设置凭据和主机密钥验证策略

  • 单击SSH启动方法的“高级…”按钮

  • 将Prefix Start Agent命令设置为
    srun--pty[所需资源和约束的选项]sh-c'
    。注意结尾的单引号

  • 将后缀Start Agent命令设置为
    。这只是一句话

  • 对于可用性,请选择“需要时使此代理联机,空闲时使其脱机”。您需要设置按需延迟(我使用0)和空闲延迟


  • 很有趣,谢谢。我试试这个。那么,您是否将这个节点上的执行者数量设置得非常高?太多了,用户界面变得有点可笑不!设置与要在该Slurm节点上运行的作业数量相称的执行器数量。其中一个Jenkins节点与一个Slurm节点相同。如果要在多个Slurm节点上运行作业,则需要多个Jenkins执行器。我正在尝试此操作,但对
    --pty
    很好奇。斯劳姆似乎忽略了这一点,因为父母并不是一个同性恋者。如果没有它,代理似乎试图通过标准输出进行通信,但失败了,出现了一些意外的流字节错误。我可以在一个PTY下运行,但也会出现错误(意外的EOF)。是的,slurm使用--PTY选项向我发出警告,并声称忽略了它。然而,没有它詹金斯的经纪人就无法工作。实际上没有必要说服ssh使用pty。很有趣,谢谢。我会试试这个。那么,您是否将这个节点上的执行者数量设置得非常高?太多了,用户界面变得有点可笑不!设置与要在该Slurm节点上运行的作业数量相称的执行器数量。其中一个Jenkins节点与一个Slurm节点相同。如果要在多个Slurm节点上运行作业,则需要多个Jenkins执行器。我正在尝试此操作,但对
    --pty
    很好奇。斯劳姆似乎忽略了这一点,因为父母并不是一个同性恋者。如果没有它,代理似乎试图通过标准输出进行通信,但失败了,出现了一些意外的流字节错误。我可以在一个PTY下运行,但也会出现错误(意外的EOF)。是的,slurm使用--PTY选项向我发出警告,并声称忽略了它。然而,没有它詹金斯的经纪人就无法工作。实际上没有必要说服ssh使用pty。