WorkflowSim根据既定调度方案进行遍历:以深度优先搜索为例(DFS)

As is known to all……咳咳众所周知,一个workflow就是一张有向图,以Epigenomics为例,它大概长这样:图.1 Epigenomics_46,实际有47个任务工作流的形状就像好多棵交错纠缠的树,构成森林……哦不还是 有向图呀;其中可能存在多个入度为零的节点,我们暂且称之为“根节点”。以上图为例,有两个“根节点”,我们可以用一句话很方便的找出它们:至此,已知task_i->vm_solution[i],接下来就是仿真调度。具体安排:每台vm上的时间片(Ev
摘要由CSDN通过智能技术生成

As is known to all……咳咳

众所周知,一个workflow就是一张有向图,以Epigenomics为例,它大概长这样:
Epigenomics_46,实际有47个任务

图.1 Epigenomics_46,实际有47个任务

工作流的形状就像好多棵交错纠缠的树,构成森林……哦不还是 有向图呀;
其中可能存在多个入度为零的节点,我们暂且称之为“根节点”。
以上图为例,有两个“根节点”,我们可以用一句话很方便的找出它们:
(寻找根节点)在这里插入图片描述

至此,已知task_i->vm_solution[i],接下来就是仿真调度。具体安排:

每台vm上的时间片(Event)将由一个一个的任务拼接连成;
其中,每一个任务都有一个就绪时间readyTime,一个执行时间timeCost,一个完成时间finishTime(放到实际就是actReadyTime、actFinishTime);
如果父任务pre与子任务suc不在同一台vm上执行,则它们之间还存在一个传递时间transferTime;
一台vm的完成时间由它上面拥有最大完成时间的任务决定;
整体的makespan,即这些vm里的最大finishTime决定。

好了,可以安排时间片了。那怎么来精确求出各个任务的实际就绪时间、完成时间呢?

可以从这些根节点出发,按DFS来遍历它们。自己写了一个适用于task_i->vm_solution[i]的代码:

	private double max(double a, <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值