首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Pyschedule的资源约束调度项目

基于Pyschedule的资源约束调度项目
EN

Stack Overflow用户
提问于 2022-07-03 00:24:54
回答 1查看 142关注 0票数 0

简介:

我正在研究一个资源约束项目调度问题(RCPS),我正在寻找一些指导。这是一个根本上的优化问题。

目前,我正在使用一个名为Pyschedule的库,在该库中,我可以定义一个目标,然后添加各种约束,例如容量约束、优先级约束等。

我的项目概述如下:给定一组需要一定数量CPU/GPU计算的作业,将资源计划(我们可用的有限CPU/GPU计算)分配给一组作业,以便优化在特定时间框架内完成的最大作业数量。

以下是该项目的制约因素:

  • 作业的启动时间必须是惊人的15分钟(排好的第二个作业必须在第一个作业之后至少15分钟开始,以此类推)。
  • CPU/GPU计算有限(有限的资源)
  • 只有5个作业可以并行调度。
  • 有一个有限的期限(所有工作必须在最长期限内完成,如: 12小时)
  • 不同的工作有不同的优先次序。
  • 每小时可用资源的变化量(资源计划)

我面临的主要问题是:

目前,在pyschedule库中,您必须为一个任务定义一个长度(服务时间),因此基本上一个任务/作业需要一定数量的CPU/GPU计算才能完成。但问题是,我所从事的工作有不同的服务时间,取决于提供给它的资源。例如:一个需要10个CPU和5个GPU的作业可以在一小时内完成,但是如果给它提供20 CPU和10 GPU,它可以在30分钟内完成。因此,长度(服务时间)取决于您给它的资源的数量。

我应该如何最好地着手解决这个问题,在python中是否有一个比"pyschedule“更好的库来解决这个问题?

Pyschedule的示例代码:

S=场景(“计划优化”,horizon=720) #720表示每分钟12小时

CPU,GPU = S.Resource('CPU'),S.Resource('GPU')

job1 = S.Task('Job1',长度= 20) #

因此,在本例中,这将表示job1需要10个CPU和5个GPU才能在20分钟内完成。

结论:

任何的帮助都很感激,我已经在这个问题上被困了一段时间了,我想知道我是否应该朝另一个方向前进,或者是否有更好的方法,我不知道,

谢谢你抽出时间阅读我的问题!

EN

回答 1

Stack Overflow用户

发布于 2022-07-03 11:03:12

我们使用OR-Tools CP-SAT的当前代码取得了非常好的结果,下面的例子是:sat

但是要小心,这不是一个软件包库,解决者。这是一个从RCPSP学术基准构建解决问题的模型的例子。

您需要理解当前的代码,以使其适应您的具体情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72843244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档