Algorithm 寻找优化调度的算法

Algorithm 寻找优化调度的算法,algorithm,scheduled-tasks,Algorithm,Scheduled Tasks,我有7个任务t1-t7,每个任务都有一个相关的执行时间(t1需要1个时间单位,t2需要5个时间单位等) 如果在同一个处理器中进行t1和t2之间的通信,则不必支付通信费用。如果在p1上执行t1,在p2上执行t2,则需要5个时间单位才能将数据从p1传输到p2。(5是边缘t1-t2的重量) 如右图所示,通信c(1,2)和c(3,4)可以同时完成,它们都在5个时间单位的末尾结束 完工时间是指完成所有7项任务所需的时间。考虑到处理器的数量是我想要的,我可以使用哪种算法来查找具有最小完工时间(或至少接近最小

我有7个任务t1-t7,每个任务都有一个相关的执行时间(t1需要1个时间单位,t2需要5个时间单位等)

如果在同一个处理器中进行t1和t2之间的通信,则不必支付通信费用。如果在p1上执行t1,在p2上执行t2,则需要5个时间单位才能将数据从p1传输到p2。(5是边缘t1-t2的重量)

如右图所示,通信c(1,2)和c(3,4)可以同时完成,它们都在5个时间单位的末尾结束

完工时间是指完成所有7项任务所需的时间。考虑到处理器的数量是我想要的,我可以使用哪种算法来查找具有最小完工时间(或至少接近最小完工时间)的调度结果

请注意,右图中的结果可能未优化


在同一处理器中分配通信延迟是否相同?否则,如何防止将每个任务分配给不同的处理器?是的,通信需要时间。如果执行t2,则需要t1中的数据。这样做需要5个单位的时间(上图中的边t1-t2的权重为5)。我认为对于大量节点,在合理的时间内无法找到最佳解决方案。您可能必须通过递归对所有可能的组合使用暴力。@navie这不是Leeor的意思。如果所有任务都在一个处理器上,您还需要支付相同的通信成本吗?如果通信成本始终相同,Leeor的天真解决方案肯定是最好的:将每个任务放在自己的处理器上。总时间将是DAG中最长的路径,即最短的运行时间。像“假设有我想要的那么多处理器”这样的短语很有趣。。这就是span这个词的定义:无限处理器上的时间。相反的是工作,即单个处理器上的时间。