[發明專利]面向眾核處理器的修改Java虛擬機的方法在審
| 申請號: | 201710871869.7 | 申請日: | 2017-09-25 |
| 公開(公告)號: | CN107729118A | 公開(公告)日: | 2018-02-23 |
| 發明(設計)人: | 張為華;李弋 | 申請(專利權)人: | 復旦大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F8/41 |
| 代理公司: | 上海正旦專利代理有限公司31200 | 代理人: | 陸飛,陸尤 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 面向 處理器 修改 java 虛擬機 方法 | ||
技術領域
本發明屬于計算機技術領域,具體涉及一種面向眾核處理器的修改Java虛擬機的方法。
背景技術
Java是最受歡迎的編程語言之一,被廣泛應用于各個實用領域。小到嵌入式應用,大到計算機集群上大規模應用。Java程序的運行依賴于Java虛擬機,一個跨平臺的中間層運行時環境。因其強大且完整的功能特性,Java之外的諸多語言也用Java虛擬機來執行。
現在,Java在數值計算(Numerical computing)、科學計算(Scientific computing)、分布式計算(Distributed computing)等計算領域越來越受到關注,這與JVM日益提升的計算性能、優秀的內置多線程及網絡通信機制密不可分。具體來說,相較于傳統的高性能程序語言,例如C/C++和Fortran,Java在HPC(High Performance Computing,高性能計算)開發方面具有一些優勢,包括可移植性、可靠性、開發效率和自適應的運行時優化等方面。
由于JVM的持續發展以及Java在高性能計算方面越來越具有競爭力,許多實用領域的高性能科研或工程項目都選擇使用Java進行開發,其中包括了宇宙天文學、分子物理和生物醫學等領域。
為了提高HPC的計算能力,很多超級計算機廣泛使用了專門用于計算的加速設備,例如GPGPU(通用GPU)和Intel Xeon Phi這樣的眾核計算芯片。目前為止Java高性能計算領域的研究并沒有能夠充分利用飛速發展的硬件資源,在現有的主流眾核平臺——包括成熟的GPGPU和新興的MIC,缺乏Java HPC乃至Java的研究工作,導致使用Java開發的高性能計算項目失去了進一步提升性能的機會。
Nvidia公司開發了CUDA編程模型來支持應用利用GPU計算,為了支持Java程序用GPU計算,提供了CUDA的Java訪問接口jCUDA。Java程序只需要調用jCUDA提供的函數,即可把計算放到GPU上執行。在Intel Xeon Phi上,Java需要通過JNI(Java Native Interface)接口來調用Intel MKL(Math Kernel Library)庫中的函數,從而利用Phi的的計算能力。
通過調用底層函數庫的方式,Java應用可以利用眾核平臺的計算能力,但是也限制了應用充分發揮眾核平臺的計算能力。眾核平臺在設計內存系統時更多地側重于考慮內存帶寬問題,而作為折衷也因此不可避免地引入了較高的訪存延時(Memory latency)。
Java高性能計算程序中往往大量存在計算密集的數組操作循環,為了克服訪存延遲通常都采用預取的方案。大多現有的預取解決方案普遍都是通過編譯器靜態分析以確定具體的預取行為,然而這類方法由于難以獲取重要的動態運行時數據,從而無法精確控制執行預取的參數;而其他一些動態預取方法也并未針對Java特性,或未有考慮到步長與程序運行時數據之間的關系,故而無法針對不同的Java運行場景提供相應的最優預取方案。
本發明面向計算加速的眾核處理器,提出了一種修改Java虛擬機的方法,使得Java應用程序可以充分利用眾核平臺的計算能力。
發明內容
本發明的目的在于提供一種面向眾核處理器的修改Java虛擬機的方法,以提高Java虛擬機的性能。
Java虛擬機是Java平臺的核心執行引擎,同時也是保證上層Java應用程序與底層環境無關的最重要的功能部件。Java虛擬機定義了一套特殊的指令,Java字節碼。Java程序必須編譯成Java字節碼后,才能在Java虛擬機上執行。Java虛擬機的基本結構如圖1所示。Java字節碼最終由解釋器解釋執行或者由即時編譯器翻譯為機器碼執行。Java提供標準的編程接口(JNI),支持虛擬機直接調用與平臺相關的本地方法(通常由C、C++或匯編等語言編寫)。
Java程序的運行環境,由虛擬機和Java核心類庫組成。Java虛擬機是一種采用解釋模式與編譯模式混合執行的引擎。但無論Java虛擬機執行哪種模式,系統最終都必須運行平臺相關的本地代碼。針對特定的體系結構,虛擬機中包含了一個匯編庫(Assembly library),定義了特定體系結構上匯編指令的二進制機器碼實現方式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于復旦大學,未經復旦大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710871869.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:城市貨物地下智能傳輸系統
- 下一篇:依托現有高速公路建立高速管道物流的方法





