skip to main content
10.1145/2578948.2560693acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
tutorial

A Framework for Multiplatform HPC Applications

Published: 07 February 2014 Publication History

Abstract

This paper proposes a framework for building multi-platform applications in Java for High Performance Computing (HPC). It allows HPC developers to write their programs in Java but dynamically translate part of the programs into C programs using MPI or CUDA so that the translated code can be executed on multi-platforms. The source of the translated code is written in Java but with extensions for MPI and CUDA supports. The implementations for different platforms are switched by object-oriented mechanisms such as dynamic method dispatch. However, object oriented mechanisms are major sources of execution overheads. To reduce these overheads, the proposed framework requires that the translated code is subject to our coding rules, in which object-oriented mechanisms are available only in limited contexts. All objects except arrays must be immutable and most class types must be leaf classes. Only the types of method parameters and instance fields can be non-leaf class types. These restrictions allow our framework to statically determine object types during the code translation while they still enable building a practical class library for HPC with respect to customizability. This paper presents examples of the class libraries built on top of our framework. Their performance is sometime better than the performance of the programs written in C++ with equivalent class libraries since C++ is a general-purpose language and thus its expressiveness does not perfectly fit our problem domain, HPC applications.

References

[1]
Aparapi. AMD developer central. http://developer.amd.com/zones/java/aparapi/Pages/default.aspx.
[2]
H. Chafi, A. K. Sujeeth, K. J. Brown, H. Lee, A. R. Atreya, and K. Olukotun. A domain-specific approach to heterogeneous parallelism. SIGPLAN Not., 46(8):35--46, Feb. 2011. ISSN 0362-1340. URL http://doi.acm.org/10.1145/2038037.1941561.
[3]
L. Dagum and R. Menon. OpenMP: an industry standard API for shared-memory programming. Computational Science & Engineering, IEEE, 5(1):46--55, 1998.
[4]
J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In ECOOP '95, pages 77--101. Springer-Verlag, 1995.
[5]
J. Dolby. Automatic inline allocation of objects. In PLDI '97, pages 7--17. ACM, 1997.
[6]
J. Dolby and A. Chien. An automatic object inlining optimization and its evaluation. In PLDI '00, pages 345--357. ACM, 2000.
[7]
G. Dotzler, R. Veldema, and M. Klemm. JCudaMP: OpenMP/Java on CUDA. In Proceedings of the 3rd Int'l Workshop on Multicore Software Engineering (IWMSE '10), pages 10--17. ACM, 2010.
[8]
M. F. Fernández. Simple and effective link-time optimization of Modula-3 programs. In PLDI '95, pages 103--115. ACM, 1995.
[9]
G. Ganegoda, D. Samaranayake, L. Bandara, and K. Wimalawarne. JConqurr - a multi-core programming toolkit for Java. Int'l Journal of Computer and Information Engineering, 3(4), 2009.
[10]
K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A study of devirtualization techniques for a Java just-in-time compiler. In OOPSLA '00, pages 294--310. ACM, 2000.
[11]
jcuda.org. jcuda.org - Java bindings for CUDA. http://www.jcuda.de.
[12]
K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical report, DTIC Document, 1990.
[13]
Khronos OpenCL Working Group. The OpenCL specification, 2008.
[14]
C. Mellon. Software product lines --- overview. http://www.sei.cmu.edu/productlines.
[15]
N. Nystrom, D. White, and K. Das. Firepile: run-time compilation for GPUs in Scala. In Proc. of the 10th ACM int'l conf. on Generative Programming and Component Engineering (GPCE '11), pages 107--116. ACM, 2011.
[16]
P. C. Pratt-Szeliga, J. W. Fawcett, and R. D. Welch. Rootbeer: Seamlessly using GPUs from Java. In High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems (HPCC-ICESS), 2012 IEEE 14th International Conference on, pages 375--380. IEEE, 2012.
[17]
Tokyo Institute of Technology. TSUBAME computing services. http://tsubame.gsic.titech.ac.jp.
[18]
C. Wimmer and H. Mössenböck. Automatic feedback-directed object inlining in the Java hotspot virtual machine. In Proc. of the 3rd int'l conf. on Virtual Execution Environments (VEE '07), pages 12--21. ACM, 2007.
[19]
Y. Yan, M. Grossman, and V. Sarkar. JCUDA: A programmer-friendly interface for accelerating Java programs with CUDA. In Euro-Par, pages 887--899, 2009.
[20]
W. Zaremba, Y. Lin, and V. Grover. Jabee: framework for object-oriented Java bytecode compilation and execution on graphics processor units. In Proc. of the 5th Annual Workshop on General Purpose Processing with Graphics Processing Units (GPGPU-5), pages 74--83. ACM, 2012.

Cited By

View all
  • (2016)Deeply Reifying Running Code for Constructing a Domain-Specific LanguageProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972219(1-12)Online publication date: 29-Aug-2016
  • (2015)Gaspar: a compositional aspect‐oriented approach for cluster applicationsConcurrency and Computation: Practice and Experience10.1002/cpe.366628:8(2353-2373)Online publication date: 7-Oct-2015
  • (2014)Decoupling Architecture for All-to-all ComputationProceedings of the 21st European MPI Users' Group Meeting10.1145/2642769.2642801(169-174)Online publication date: 9-Sep-2014

Index Terms

  1. A Framework for Multiplatform HPC Applications

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PMAM'14: Proceedings of Programming Models and Applications on Multicores and Manycores
    February 2014
    156 pages
    ISBN:9781450326575
    DOI:10.1145/2578948
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 February 2014

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. CUDA
    2. Java
    3. MPI
    4. Software Productivity

    Qualifiers

    • Tutorial
    • Research
    • Refereed limited

    Conference

    PPoPP '14
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 53 of 97 submissions, 55%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 23 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)Deeply Reifying Running Code for Constructing a Domain-Specific LanguageProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972219(1-12)Online publication date: 29-Aug-2016
    • (2015)Gaspar: a compositional aspect‐oriented approach for cluster applicationsConcurrency and Computation: Practice and Experience10.1002/cpe.366628:8(2353-2373)Online publication date: 7-Oct-2015
    • (2014)Decoupling Architecture for All-to-all ComputationProceedings of the 21st European MPI Users' Group Meeting10.1145/2642769.2642801(169-174)Online publication date: 9-Sep-2014

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media