{"title":"Java for high performance computing: assessment of current research and practice","authors":"G. L. Taboada, J. Touriño, R. Doallo","doi":"10.1145/1596655.1596661","DOIUrl":null,"url":null,"abstract":"The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and evaluations of their performance, as well as the unawareness of the current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC.\n This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on a multi-core cluster with a high-speed network, InfiniBand, and a 24-core shared memory machine. The main conclusions are that: (1) the significant interest on Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; and (2) Java can achieve almost similar performance to native languages, both for sequential and parallel applications, being an alternative for HPC programming. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2009-08-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"34","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Principles and Practice of Programming in Java","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1596655.1596661","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 34
Abstract
The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and evaluations of their performance, as well as the unawareness of the current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC.
This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on a multi-core cluster with a high-speed network, InfiniBand, and a 24-core shared memory machine. The main conclusions are that: (1) the significant interest on Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; and (2) Java can achieve almost similar performance to native languages, both for sequential and parallel applications, being an alternative for HPC programming. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.
对Java for High Performance Computing (HPC)日益增长的兴趣是基于这种语言在编程多核集群架构方面的吸引人的特性,特别是内置的网络和多线程支持,以及Java虚拟机(JVM)性能的不断提高。然而,由于缺乏对Java现有的HPC编程选项的分析和对其性能的评估,以及对该领域当前研究项目的不了解,Java在这一领域的采用被推迟了,而这些研究项目的解决方案是促进Java在HPC领域的普及所必需的。本文分析了Java用于高性能计算的现状,包括共享和分布式内存编程,介绍了相关的研究项目,最后评估了当前Java高性能计算解决方案的性能以及在高速网络、InfiniBand和24核共享内存机的多核集群上的研究进展。主要结论是:(1)对用于HPC的Java的重大兴趣导致了许多项目的开发,尽管通常相当有限,这可能阻碍了Java在该领域的更高发展;(2) Java可以实现与本地语言几乎相似的性能,无论是顺序应用程序还是并行应用程序,都可以作为HPC编程的替代方案。因此,Java在这一领域的良好前景吸引了工业界和学术界的关注,它们可以利用Java在高性能计算领域的显著优势。