LSF实践专题(17):资源回填(Backfill)调度策略

目录

启用backfill策略

backfill策略如何工作

只有使用了该策略的队列中的作业才可以实现backfill

总结


上一篇我们介绍了LSF里面的资源预留(reservation)调度策略,在配置了reservation策略的队列里,如果因为部分resource被其他正在运行的作业占用而不能满足运行条件的作业,LSF会先将可用的资源预留给这个作业,防止在等待资源释放的过程中,当前可用的资源被后续需求更低的作业占用。

那么这个reservation策略有哪些弊端呢?

其中一个比较明显的问题是,如果当前占用资源的作业需要比较长时间才能结束,而剩余可用资源又被预留给了另一个大型作业,这时,如果有一个需求资源很小的小型作业被提交到集群,也同样是不能运行的。虽然我们可以指定reservation的作业每隔一个固定时间会释放预留的资源重新调度,但是这个时间一般出于性能问题也不会设置的过于短。如果最后提交的小型作业恰恰是一个很短的作业,reservation很可能会增加他等待的时间,从而导致系统的作业吞吐率降低。

有没有一种策略能平衡一下reservation带来的弊端呢?

是有的,LSF中可以设置另一种策略——backfill。

为了讲述清晰,我们还是用实际的作业举例说明backfill策略。

启用backfill策略

首先,我们先要在队列中使用backfill。

图片

我们仍然设置两个队列,highQ和lowQ,两个队列都启用了reservation,同时我们在highQ里还配置了另一个参数,BACKFILL = Y,用于在highQ启用backfill策略。

图片

通过命令bqueues -l,我们可以看到highQ的调度策略里启用了backfill策略:

SCHEDULING POLICIES:  BACKFILL

backfill策略如何工作

为了方便观察,我们用slots作为竞争资源。

首先,通过bhosts -w命令,我们看到当前可用的slots为32个。

图片

我们先提交2个-n 8的作业<631><632>占用掉其中16个slots,注意在提交时,我们加入参数-W 10,意思是这个作业有一个运行时间限制(runlimit),长度为10分钟。这个runlimit可以在bsub时指定,也可以设置在队列或者application中,那么所有提交到这个队列或者application的作业都会自动含有这个runlimit。

图片

如果作业指定了runlimit,我们在通过bjobs -l查看作业详细信息的时候,也可以看到对应信息。

图片

如上图所示,我们看到作业<631>显示RUNLIMIT是10.0 min,也就是我们刚才指定的10分钟。

接下来我们向队列highQ提交一个需要32个slots的作业<633>。

图片

由于当前所剩余的可用slots数量只有16,所以作业<633>会继续等待,pending reason提示没有足够的processors(因为LSF中host上的slots对应概念为cpu个数,默认情况下,cpu的数量和slots的数量是相等的)。

图片

队列highQ是启用了reservation策略的,所以,我们通过bjobs -l -p可以看到LSF为作业<633>预留了剩余的16个可用slots。同时,我们可以看到作业<633>的详细信息中还有一项是:

Mon Jun 13 00:36:50: Job will start no sooner than indicated time stamp;

也就是说,LSF预计作业<633>的启动时间不可能早于00:36:50, 这是为什么呢?

图片

通过bhist检查,我们发现作业<631>的启动时间是00:26:46, 作业<632>的启动时间是00:26:50。而作业<633>想要运行,必须等到作业<631>和<632>都结束,才能得到足够的slots资源。根据作业<631>和<632>的runlimit计算,这两个作业最长有可能运行10分钟,因此它们肯定可以结束的时间分别是00:36:46和00:36:50。因此作业<633>预计的开始运行时间就是00:36:50。这个时间点将被用于backfill策略的计算。

因为占用着阻止作业<633>运行的slots,只有在00:36:50才能得到释放,所以作业<633>启动时间预计不会早于00:36:50, 这就是bjobs -l中为什么显示:

Mon Jun 13 00:36:50: Job will start no sooner than indicated time stamp;

当然,这个只是预估,实际情况可能和这个时间点有出入,比如作业<631>和<632>比预期更早结束了,又或者runlimit到达后,作业没有自己结束,LSF会负责强制结束作业,但是结束过程可能也会占用一些时间。但是作为预测调度,我们也只能尽量考虑,没办法完全预知未来的每一个细节。

这时,我们向队列highQ提交3个作业,每个作业都需要2个slots,但是第一个作业<634>不指定-W选项,第二个作业<635>指定-W 15,第三个作业<636>指定-W 5。这种场景下,会有什么情况发生呢?

图片

图片

我们看到,只有第三个-W 5的作业<636>成功运行了,同时,作业<633>预留的slots数量减少了2。这就是backfill策略作用的结果。

图片

backfill是借用已经预留给其他作业的资源,在该作业等待期间来运行一些小型作业。因此,通过backfill策略运行起来的小作业,有一个不可打破的原则,就是不能影响原本预留了资源的作业运行。而作业<633>预计是00:36:50开始运行,因此,在新提交的作业里,如果预留给作业<633>的16个slots可以满足新作业的需求,同时,当前时间加上新作业的runlimit时间,早于作业<633>的预计启动时间,才可以满足backfill的条件,让新作业得到预留给作业<633>的全部或者部分资源开始运行。

提交作业<634>,<635>和<636>的时间是00:30:30,作业<634>没有runlimit,不满足backfill的条件,作业<635>的runlimit是15分钟,如果运行,结束时间就是00:45:30,比<633>的预计启动时间00:36:50要晚,所以也不能满足backfill的条件, 作业<636>的runlimit是5分钟,预计在00:35:30结束,比00:36:50早,满足backfill的条件,所以只有作业<636>通过backfill策略,分配到预留给<633>的2个slots资源得以运行。

只有使用了该策略的队列中的作业才可以实现backfill

刚才的例子中,backfill是配置在highQ上的,而reserve和backfill的作业也都是来自highQ的。那么,backfill参数和reservation是什么关系呢?其他队列的作业可以通过backfill策略使用配置了backfill参数的队列所预留的资源吗?我们通过实验来调查一下。

制造一个和上面例子中相同的预留16个slots的场景。

图片

图片

我们可以看到,highQ中的作业<644>预留了16个slots,预计启动时间是00:47:28。

所不同的是,我们这次将短作业<645>提交到lowQ中,并指定runlimit为3分钟。

图片

等待一段时间后,lowQ中的作业<645>并没能通过backfill运行起来。我们再向highQ提交一个相同的短作业<646>,runlimit也是3分钟。

图片

这一次,highQ的作业<646>则顺利通过backfill策略运行起来。

我们继续实验,将backfill参数从highQ挪到lowQ上。

图片

我们仍然让highQ的作业<749>预留16个slots,预计启动时间是00:52:50。

图片

图片

这次,backfill参数是在lowQ中启用的,我们将短作业<750>提交到lowQ中。

图片

图片

如上图所示,lowQ中的短作业成功地通过backfill策略得到8个highQ中作业预留的slots得以运行起来。

因此,backfill的参数,是让使用了这个参数的队列中的作业,在满足backfill策略条件的前提下,使用自己或者其他队列中作业预留的资源来运行。backfill是一个很巧妙的策略,限制条件是,最开始占用资源的正在运行的作业和想要通过bacfill运行的作业,都要有runlimit属性,并且预估的时间关系能够满足不阻碍reserve资源的作业运行,才可以启用backfill策略。

总结

backfill策略我们先介绍到这里,之后我们再一起探寻LSF中各种有趣的策略,感谢大家阅读。

欢迎关注下方微信公众号【HPC常青园】,共同交流HPC集群管理经验和最佳实践。如果您有关于HPC集群的具体需求,欢迎邮件沟通交流:hpc@ivyent.cn。

HPC常青园

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
基于GPT-SoVITS的视频剪辑快捷配音工具 GPT, 通常指的是“Generative Pre-trained Transformer”(生成式预训练转换器),是一个在自然语言处理(NLP)领域非常流行的深度学习模型架构。GPT模型由OpenAI公司开发,并在多个NLP任务上取得了显著的性能提升。 GPT模型的核心是一个多层Transformer解码器结构,它通过在海量的文本数据上进行预训练来学习语言的规律。这种预训练方式使得GPT模型能够捕捉到丰富的上下文信息,并生成流畅、自然的文本。 GPT模型的训练过程可以分为两个阶段: 预训练阶段:在这个阶段,模型会接触到大量的文本数据,并通过无监督学习的方式学习语言的结构和规律。具体来说,模型会尝试预测文本序列中的下一个词或短语,从而学习到语言的语法、语义和上下文信息。 微调阶段(也称为下游任务训练):在预训练完成后,模型会被应用到具体的NLP任务中,如文本分类、机器翻译、问答系统等。在这个阶段,模型会使用有标签的数据进行微调,以适应特定任务的需求。通过微调,模型能够学习到与任务相关的特定知识,并进一步提高在该任务上的性能。 GPT模型的优势在于其强大的生成能力和对上下文信息的捕捉能力。这使得GPT模型在自然语言生成、文本摘要、对话系统等领域具有广泛的应用前景。同时,GPT模型也面临一些挑战,如计算资源消耗大、训练时间长等问题。为了解决这些问题,研究人员不断提出新的优化方法和扩展模型架构,如GPT-2、GPT-3等,以进一步提高模型的性能和效率。
### 回答1: LSF(Load Sharing Facility)是一种用于资源管理和作业调度的软件工具,其中的LSF license调度是指对LSF软件的许可证的管理和调度。 在使用LSF软件时,用户需要获得相应的许可证才能正常使用软件的全部功能。而LSF license调度就是对这些许可证的分配和调度,以确保每个用户都能够按照自己的需求使用软件。 LSF license调度通常涉及以下几个方面: 1.许可证分配:LSF管理员会根据用户的需求和优先级,将可用的许可证分配给不同的用户。通常将许可证分配给具有高优先级或需求的用户,以确保他们能够在需要时优先使用软件。 2.许可证回收:当一些用户不再需要使用LSF软件时,拥有许可证的管理员可以及时收回许可证,以便重新分配给其他用户。这样可以最大限度地提高许可证的利用率和效率。 3.许可证管理:LSF管理员还需要定期监控和管理许可证的使用情况,确保许可证的数量和使用情况与实际需求相符。如果发现许可证不足或者存在滥用的情况,管理员需要及时采取相应的措施。 总之,LSF license调度是对LSF许可证进行合理分配和管理的过程,旨在最大程度地满足用户的需求,提高许可证的利用效率,确保软件系统的正常运行。 ### 回答2: LSF(Load Sharing Facility)是一个用于集群计算的作业调度和管理系统,可以帮助高性能计算(HPC)环境下的任务有效地分配和使用资源。在LSF中,license调度是指对软件许可证资源的优化调度和管理。 在一个HPC环境中,常常需要使用各种不同的软件工具和库,这些工具和库通常需要相应的许可证才能合法使用。而软件许可证往往是有限的,所以对许可证资源进行调度是非常重要的。 LSF通过对许可证的分配和释放进行智能调度,以最大程度地利用许可证资源并最小化等待时间。它根据作业的需求和许可证的可用性,动态地分配许可证给需要它们的作业,尽量避免许可证的过度分配或浪费。同时,当一个作业不再需要许可证时,LSF会将其释放,以便其他作业能够利用这些许可证资源LSF还可以通过许可证的限制和优先级设置,来确保重要的作业能够获得所需的许可证资源,而次要的作业则可能会被推迟或降低许可证的使用。这样可以确保关键任务的顺利执行,同时最大限度地提高整个集群的利用率。 总而言之,LSF的license调度功能是为了合理、高效地管理和调度许可证资源,以确保HPC环境中的作业能够得到所需的许可证,并在最短的时间内完成任务。这样可以提高计算集群的利用率,提升工作效率和系统性能。 ### 回答3: LSF(Load Sharing Facility)是一种用于分布式计算环境的作业调度资源管理软件。在LSF中,license调度是指通过合理管理和分配软件许可证(license),以确保系统中所有用户能够合理使用软件许可证资源LSF License调度的主要目标是实现最大化利用软件许可证资源,同时确保用户的需求得到满足。为了实现这一目标,LSF会根据用户的需求和系统的实际情况进行许可证资源的分配和调度LSF License调度的过程通常包括以下几个步骤: 1. 许可证资源的监控和管理:LSF会监控系统中可用的许可证资源数量和使用情况,并对许可证资源进行管理。这包括许可证资源的获取、分配、释放和回收等操作。 2. 许可证资源的分配:根据用户提交的作业需求和当前系统的状况,LSF会决定如何分配许可证资源给不同的作业。通常,LSF会采用一定的算法和策略来进行许可证资源的分配,例如根据作业的优先级、作业的资源需求和系统的负载情况等。 3. 许可证资源调度和冲突处理:由于许可证资源是有限的,可能会出现作业之间对许可证资源的竞争。LSF会根据系统的策略和规则来调度许可证资源的分配顺序,并解决因许可证资源冲突而导致的调度问题。 4. 许可证资源的回收和释放:当作业使用完许可证资源后,LSF会将这些许可证资源回收并释放给其他等待的作业使用。这样可以确保系统中许可证资源的充分利用。 总之,LSF License调度是为了合理分配和管理系统中的许可证资源,以实现最大化的资源利用和满足用户的需求。通过LSF License调度,可以提高系统的效率和资源利用效率,同时提升用户的使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ivyent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值