发明名称 一种虚拟化环境下面向任务并行编程模型的优化方法
摘要 本发明公开了一种虚拟化环境下面向任务并行编程模型的优化方法;在位于客户虚拟机的前端监控部分获取任务并行编程模型中失败的窃取操作;在位于虚拟机监控器的后端加速部分根据加速发起者和被加速候选者的运行状态和所在物理CPU的信息,做出是否执行加速的决策。若执行加速,将加速发起者的剩余时间片提供给被加速候选者,当被加速候选者被虚拟机监控器抢占(时间片耗尽或被阻塞)时,若被加速候选者处于可运行状态,恢复其原本的调度路径;本发明为现有任务并行编程模型增加了针对虚拟化环境的优化,减少了运行小偷线程的虚拟CPU对计算资源的浪费,降低了运行有用线程的虚拟CPU的调度延时,从而实现将物理计算资源最大化地投入到有效计算中。
申请公布号 CN104765613A 申请公布日期 2015.07.08
申请号 CN201510187523.6 申请日期 2015.04.21
申请人 华中科技大学 发明人 吴松;金海;彭亚琼
分类号 G06F9/44(2006.01)I;G06F9/455(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 廖盈春
主权项 一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,该方法包括以下步骤:(1)获取任务并行编程模型中失败的窃取操作,读取失败的窃取操作对应的受害线程在任务并行编程模型中维护的运行状态和双端队列信息;(2)根据受害线程的运行状态,判断受害线程是否为执行任务的有用线程,如果是,进入步骤(3);否则,结束本次优化;其中,有用线程是指拥有可执行任务的线程;(3)判断受害线程的双端队列是否为空,如果是,进入步骤(4);否则,结束本次优化;(4)通过自定义的系统功能调用,将小偷线程的线程标识符与受害线程的线程标识符,分别作为系统功能调用的第一个参数与第二个参数,发送给客户操作系统的内核层;(5)操作系统的内核层根据小偷线程的标识符和受害线程的标识符,查找内核中代表小偷线程和受害线程的数据结构,并从中获取受害线程在内核层的运行状态,以及小偷线程和受害线程所在虚拟CPU的标识符;(6)根据受害线程在内核层的运行状态,判断受害线程是否已被客户操作系统抢占,如果是,结束本次优化;否则,进入步骤(7);(7)将运行小偷线程的虚拟CPU角色定义为加速发起者,运行受害线程的虚拟CPU角色定义为被加速候选者,并通过自定义的超级调用,将加速发起者的虚拟CPU标识符和被加速候选者的虚拟CPU标识符,分别作为超级调用的第一个参数和第二个参数,发送给虚拟机监控器;(8)虚拟机监控器接收来自客户虚拟机的虚拟CPU标识符,查找虚拟机监控器中代表加速发起者和被加速候选者的虚拟CPU数据结构,并从中读取它们的运行状态和所在物理CPU的信息;(9)根据加速发起者和被加速候选者所在物理CPU的信息以及运行状态,决定是否执行加速,如果是,进入步骤(10);否则,结束本次优化;(10)利用加速发起者的剩余时间片,加速被加速候选者的执行。
地址 430074 湖北省武汉市洪山区珞喻路1037号