对多机调度算法进行分析,具体要求如下: 针对多机调度问题,实现基于两种贪心策略的贪心算法; 针对多机调度问题,实现遍历的最优解求解算法(也可以用回溯等其它算法); 针对两种贪心策略,构造问题输入,使得贪心算法结果接近最差,结合证明过程展开讨论; 以处理机数量m, 作业数量n为输入规模,固定m, n,随机产生大量测试样本,用两种贪心算法分别求解,并计算最优解(无法在合理时间内完成最优解计算则记录为“最优解求解失败”)及近似解上界,对贪心解近似比的概率分布展开分析; 改变m和n,对不同组合的结果进行对比分析,并撰写实验报告。 附加:模拟一个GPU集群在线调度问题,该集群有m块GPU,共享开放给全校师生。该集群有以下特点: 用户提交任务的时间点符合泊松分布,单个任务使用单块GPU所需的时间符合均匀分布。 假设提交的任务均具有高度并行性,可拆分到任意多块GPU并行执行,但是由于节点间通信、机架间通信等开销,k块GPU并行时单块效率降为原来的σlogk倍。例如2块GPU并行时,单块GPU性能为σ;4块GPU并行时,单块GPU的性能为σ2。对于不同任务,σ为[0.75, 0.95]之间均匀分布的小数。 GPU数量m = 64,并行运算时通常使用2的整幂次块GPU,如2、4、8、16、32、64。 对任务i,用户期望的完成时间为任务提交时刻ti,加上单块GPU执行任务所需时间τi。 系统有两个关键指标:集群利用率η,用户平均延迟δ。对于η,即任务期内集群所有GPU的平均利用率。对于δ,在用户期望时间之内完成的任务其延迟为0,超出之后按平方惩罚:设任务i结束时间为ti′,则其延迟为δi=0, ti′≤ti+τi时,或 δi=((ti′−ti−τi)/τi)^2, ti′>ti+τi时。 请针对该场景: 考虑多种优化目标:1)仅考虑η;2)仅考虑δ;3)均衡的优化目标(1−η)+λδ,其中λ为设置的常数平衡因子。 模拟生成多组任务集(注意考虑轻负载、中等负载、重负载等不同情况)。 设计两种以上调度策略。 使用调度策略对计算过程进行模拟,按照不同的优化目标对结果进行分析对比,撰写实验报告。