[发明专利]一种通过至强融核协处理器提升Erlang虚拟机性能的方法无效
申请号: | 201310184628.7 | 申请日: | 2013-05-17 |
公开(公告)号: | CN103294540A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 龙翔;郑思遥;高小鹏;万寒;姜博;杨经纬 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/455 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 周长琪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明是一种通过至强融核(Xeon PhiTM)协处理器提升Erlang虚拟机性能的方法,适用于各种基于Erlang的应用程序。在宿主机上运行Erlang虚拟机ERLVM_HOST,在至强融核协处理器卡上运行Erlang虚拟机ERLVM_PHI。在两个Erlang虚拟机之间建立了进程管理通道和消息传递通道,实现两个Erlang虚拟机之间Erlang进程的提交、迁移和消息传递,并改进了Erlang虚拟机在至强融核协处理器上的负载均衡机制。本发明方法将宿主机和至强融核协处理器两种异构的平台结合起来,提升了Erlang虚拟机的并发度和性能,使得Erlang虚拟机能够承受更大程度的吞吐量。 | ||
搜索关键词: | 一种 通过 至强融核协 处理器 提升 erlang 虚拟机 性能 方法 | ||
【主权项】:
一种通过至强融核(Xeon PhiTM)协处理器提升Erlang虚拟机性能的方法,其特征在于,在宿主机上运行一个Erlang虚拟机的操作系统进程ERLVM_HOST,在至强融核协处理器卡上运行一个Erlang虚拟机的操作系统进程ERLVM_PHI;宿主机是指安装至强融核协处理器PCIe扩展卡的计算机系统;ERLVM_HOST在宿主机上的启动包括如下操作:(1.1)探测宿主机是否安装了至强融核协处理器卡,如果安装了,启动至强融核协处理器卡上的ERLVM_PHI;(1.2)在宿主机的每一个处理器核心上启动调度器线程,每个调度器线程依次尝试连接至强融核协处理器卡的PROCESSEP_P、MSGEP_P和MIGEP_P端点,直到连接成功;(1.3)启动进程管理辅助线程,创建端点PROCESSEP_H,将满足判断规则的新创建的Erlang进程提交到ERLVM_PHI上运行,接受从ERLVM_PHI提交来的Erlang进程;判断规则:当新创建的Erlang进程的层次编号大于等于阈值变量offload_threshold时,新创建的Erlang进程被ERLVM_HOST提交给ERLVM_PHI;当ERLVM_PHI的状态为负载高或死亡时,新创建的Erlang进程不提交给ERLVM_PHI;阈值变量offload_threshold的初始值通过ELRVM_HOST启动参数传入,并根据ERLVM_PHI的负载和健康状况进行动态更新,且offload_threshold_min≤offload_threshold≤offload_threshold_max;offload_threshold_min和offload_threshold_max分别表示阈值变量offload_threshold能够设定的最小值和最大值,都通过ELRVM_HOST启动参数传入;(1.4)建立消息分发线程,创建端点MSGEP_H,ERLVM_PHI上的所有调度器都创建一个自己私有的消息分发端点与端点MSGEP_H连接,建立消息传递的信道;(1.5)建立健康状况监测线程,从ERLVM_PHI的健康状况服务线程中接收ERLVM_PHI的处理器负载、内存负载以及至强融核协处理器的健康状况,根据监测数据将ERLVM_PHI标记为健康、负载高或者死亡;为平均CPU使用率设定经验阈值A,为总内存使用量设定经验阈值B,健康是指ERLVM_PHI上所有核心的平均CPU使用率低于A并且总内存使用量低于B,负载高是指ELRVM_PHI上所有核心的平均CPU使用率大于等于A或总内存使用量大于等于B,死亡是指至强融核协处理器卡出现故障不能正常工作;在ERLVM_PHI的状态为负载高时,ERLVM_HOST停止向ERLVM_PHI提交Erlang进程,而且如果ERLVM_HOST负载正常,从ERLVM_PHI上窃取Erlang进程执行;在ERLVM_PHI的状态为死亡时,ERLVM_HOST将所有在本地创建但是提交到ERLVM_PHI上运行的Erlang进程标记为异常退出;ERLVM_HOST根据ERLVM_PHI的负载情况更新offload_threshold的值;(1.6)建立进程迁移分发线程,创建了端点MIGEP_H,ERLVM_PHI上的所有调度器都创建一个自己私有的进程迁移分发端点,并与端点MIGEP_H连接,建立进程迁移的信道;ERLVM_PHI在至强融核协处理器卡上启动,包括如下操作:(2.1)在至强融核协处理器卡的每一个处理器核心上启动调度器线程,每个调度器线程依次尝试连接宿主机的PROCESSEP_H、MSGEP_H和MIGEP_H端点,直到连接成功;(2.2)启动进程管理辅助线程,创建端点PROCESSEP_P,接受从ERLVM_HOST提交到至强融核协处理器卡的Erlang进程,并在至强融核协处理器卡的可用内存空间不足时,将新创建的Erlang进程提交回宿主机的ERLVM_HOST上运行;(2.3)建立一个消息分发线程,创建端点MSGEP_P,ERLVM_HOST上的所有调度器都创建一个私有的消息分发端点与端点MSGEP_P连接,建立消息传递的信道;至强融核协处理器卡上所有的I/O请求通过消息传递的信道发送到ERLVM_HOST,请求ERLVM_HOST处理,并将处理返回的结果分发给请求的Erlang进程;(2.4)在至强融核协处理器卡上,距离每一个内存控制器最近的处理器核心上运行一个内存回收线程,每一个内存回收线程均等地负责靠近自己的处理器核心上的调度器的内存使用,定时对辖区内调度器上的Erlang进程进行垃圾回收;(2.5)ERLVM_PHI进行Erlang进程负载均衡的时候考虑调度器所在处理器核心的距离,负载均衡算法在准备Erlang进程迁移路线的时候优先考虑距离近的处理器核心;(2.6)建立进程迁移分发线程,创建了端点MIGEP_P,ERLVM_HOST上的所有调度器都创建一个自己私有的进程迁移分发端点,并与端点MIGEP_P连接,建立进程迁移的信道;(2.7)建立健康状况服务线程,创建端点HEALTHEP_P,端点HEALTHEP_P与健康状况监测线程连接,建立健康状况监测信道;健康状况服务线程采集ERLVM_PHI中每个调度器的运行队列长度、每个处理器核心的CPU利用率以及每个内存控制器上空闲的物理内存容量,并将采集的监测数据通过健康状况监测信道发送给健康状况监测线程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310184628.7/,转载请声明来源钻瓜专利网。