Platform LSF Compute Units 调度策略

Compute Units(CU)可以对一个队列中的机器在调度时进行分组,可以控制作业在这些组中的分配。

假设有三个cu,每个cu空闲的job slots如下:

cu name free job slots
cu1 4
cu2 6
cu3 8

 

cu[pref=minavail]:把cu按照空闲的job slots从小到大排序,按顺序填充分配使用cu。例:-n 4则使用cu1的4个;-n 6则使用cu1的4个和cu2的2个。

cu[pref=maxavail]:把cu按照空闲的job slots从大到小排序,按顺序填充分配使用cu。例:-n 6则使用cu3的6个;-n 10则使用cu3的8个和cu2的2个。
上面的情况下,如果cu中空闲的job slots数量一样,则按照其在lsb.hosts中Begin ComputeUnitvs中的顺序使用

cu[balance]:按照在lsb.hosts中Begin ComputeUnitvs中的顺序,在尽量少的cu中分配使用且每个cu中使用的job slots尽量平衡。例:-n 6则使用cu2的6个;-n 8则使用cu3的8个;-n 10则使用cu2和cu3的各使用5个;-n 12则cu2和cu3个使用6个;-n 14则cu1使用4个、cu2和cu3各使用5个。
cu[balance:pref=minavail]和cu[balance:pref=maxavail]:把cu按照空闲的job slots排序,在尽量少的cu中分配使用且每个cu中使用的job slots尽量平衡。例:-n 4 -R “cu[balance:pref=minavail]”使用cu1,-n 4 -R “cu[balance:pref=maxavail]”使用cu3。

对于HPC来说,​其实更想要一种类似于minavail但是又尽量分布到最少cu上的策略,如果必须跨cu则应尽量不等分减少跨cu通讯。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据