[发明专利]一种通过至强融核协处理器提升Erlang虚拟机性能的方法无效
申请号: | 201310184628.7 | 申请日: | 2013-05-17 |
公开(公告)号: | CN103294540A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 龙翔;郑思遥;高小鹏;万寒;姜博;杨经纬 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/455 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 周长琪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通过 至强融核协 处理器 提升 erlang 虚拟机 性能 方法 | ||
技术领域
本发明涉及一种通过至强融核(Xeon PhiTM)协处理器提升Erlang虚拟机性能的方法,适用于提升各种利用Erlang编写的要求极高并行度的应用程序的并发度,从而提升这类应用程序的运行性能。这一类应用程序包括网络服务器程序、数据库管理程序、键值存储系统、实时消息系统和高性能计算程序等。
背景技术
Erlang是一种用于构建大型可伸缩且要求高可用性的软实时系统的语言。Erlang虚拟机是运行Erlang语言编写的程序的平台,用Erlang语言编写的应用程序被编译为字节码,然后在Erlang虚拟机上运行。在Erlang虚拟机中,运行的基本单元是轻量级Erlang进程,Erlang虚拟机实现了高效的Erlang进程创建和调度功能。Erlang进程之间不允许任何形式的共享内存,Erlang进程之间唯一的通信方式是异步的消息传递,因此相比共享内存的多线程模型,Erlang的进程模型可以避免因为访问共享数据需要加锁而带来的一系列问题,例如锁的可伸缩性问题和死锁的问题。在Erlang中,所有的I/O操作也是通过消息传递的方式进行的:I/O驱动程序以Erlang虚拟机插件的形式实现为端口,端口也像Erlang进程一样可以接收和发送消息。Erlang进程之间不共享数据的特性还使得Erlang进程可以很方便地扩展到多个处理器上运行,因此Erlang的进程模型具有很好的可伸缩性。Erlang的这些特性使得Erlang成为各种需要高性能的网络服务程序的重要选择。目前使用到Erlang的领域包括网络服务器程序、聊天服务器程序、数据库服务器程序、缓存服务器程序和网络在线游戏服务器程序等,甚至在高性能计算领域也有对Erlang的应用。虽然根据以上描述,Erlang虚拟机可以提供很高的并发性,但是为了实现高性能的Erlang虚拟机,还需要具有高并行度的底层硬件的支持。
众核处理器的出现给高并行度Erlang虚拟机的实现成为可能。由于功耗和频率的限制,处理器技术的发展已经从追逐主频提升转变为在同一片处理器上集成更多的核心。目前处理器的发展趋势正在从复杂的单核心或少量复杂核心向带有大量简单核心的众核转变。多核处理器通常指的是目前市场上常见的带有2个以上核心的处理器,这种处理器的核心功能复杂,一般不超过16个核心。多核处理器的特点是单线程性能强大,但是功耗高且价格高。众核处理器虽然没有具体定义,但是通常指的是带有数十甚至上百个核心的处理器,未来甚至可能会出现带有成百上千核心的处理器。这种处理器除了具有核心数多的特点之外,在处理器结构和处理器核心之间的互联方式上和传统多核处理器也有较大区别。至强融核协处理器是Intel在2012年底发布的一款众核处理器,具有60个以上的核心,这些核心通过双向环形网络连接在一起,环形网络中穿插了8个双通道内存控制器。至强融核协处理器安装在PCIe扩展卡上,通过PCIe接口和宿主机进行通信。SCIF(Symmetric Communication Interface,对称通信接口)库是对PCIe接口的封装,所以宿主机和至强融核协处理器卡上的应用程序所有的交互都是通过SCIF进行的:宿主机和至强融核协处理器分别打开端点H和端点P,一个端点(例如H)监听,另一个端点(例如P)连接,当两个端点连接上之后就可以发送和接收消息。至强融核协处理器的PCIe接口逻辑也插在前述的环形网络中。由于Erlang进程之间不会共享数据,所以在主机上扩展至强融核协处理器理论上可以让更多的处理器核心来运行Erlang进程,提升Erlang虚拟机的并行度,从而提升Erlang虚拟机的性能,同时还能保持较高的效能。但是现有的Erlang虚拟机因为存在以下两个问题所以无法直接通过至强融核协处理器提升性能:1)由于缺乏对众核协处理器的支持,所以不能将Erlang虚拟机中运行的数目庞大的Erlang进程卸载(提交)到至强融核协处理器上运行;2)由于目前Erlang虚拟机是针对传统多核处理器进行优化的,所以如果Erlang虚拟机直接在至强融核协处理器上运行,无法感知众核处理器中众多核心的互联网络架构,现有的Erlang调度策略和进程分布策略会因为众核处理器底层的互联网络架构而影响Erlang进程间消息传递的效率,例如在传统多核处理器的系统中,每个核心访问内存的延迟差别不大,所以Erlang进程的分布对于消息传递的影响很小;而在至强融核协处理器中,内存控制器是分布在环形网络中的,所以核心和内存控制器的距离决定了核心访问内存控制器延迟的大小,因此消息传递频繁的Erlang进程如果分布在距离很远的核心上会降低消息传递的效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310184628.7/2.html,转载请声明来源钻瓜专利网。