[發明專利]一種通過至強融核協處理器提升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.szxzyx.cn/pat/books/201310184628.7/2.html,轉載請聲明來源鉆瓜專利網。





