1 / 20

HPJAVA

HPJAVA. Introduction. HPJava is a new language for parallel computing developed by research group at Indiana University It extends Java with features from languages like Fortran New features include multidimensional arrays and parallel data structures. Outline.

Télécharger la présentation

HPJAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HPJAVA

  2. Introduction • HPJava is a new language for parallel computing developed by research group at Indiana University • It extends Java with features from languages like Fortran • New features include multidimensional arrays and parallel data structures

  3. Outline • Background on parallel computing • Multidimensional Arrays • Multiarrays, Sections • HPJava compilation and optimization • Benchmarks • Future Works

  4. Data Parallel Languages • Large data-structures, typically arrays, are split across nodes • Each node performs similar computations on a different part of the data structure • SIMD – Illiac IV and Connection Machine for example introduced a new concept, distributed arrays • MIMD – asynchronous, flexible, hard to program

  5. Multidimensional Arrays • Java is an attractive language, but needs to be improved for large computational tasks • Java provides array of arrays • Time consumption for out-of bounds checking • The cost of accessing an element

  6. X X Y 3 2 1 0 3 2 0 3 2 1 0 1 Array of array in irregular structure Array of array for 2D Array of Arrays in Java

  7. Features of HPJava • A language for parallel programming, especially suitable for massively parallel, distributed memory computers as well as shared memory machines. • In other respects, HPJava is a lower levelparallel programming language. • The HPJava system is built on Javatechnology. • The HPJava programming language is an extension of the Java programming language.

  8. BlockRange CyclicRange Range ExtBlockRange IrregRange CollapsedRange Dimension Distribution format • HPJava provides further distribution formats for dimensions of distributed arrays without further extensions to the syntax • Instead, the Range class hierarchy is extended • BlockRange, CyclicRange, IrregRange, Dimension • ExtBlockRange – a BlockRange distribution extended with ghost regions • CollapsedRange – a range that is not distributed, i.e. all elements of the range mapped to a single process

  9. Overview of HPJava execution • Source-to-source translation from HPJava to standard Java • “Source-to-source optimization” • Compile to Java bytecode • Run bytecode (supported by communication libraries) on distributed collection of optimizing (JIT) JVMs

  10. Full HPJava (Group, Range, on, overall,…) Multiarrays, Java int[[*,*]] Compiler Java Source-to-Source Translator And Optimization Libraries Adlib OOMPH MPJ mpjdev Jini Native MPI HPJava Architecture

  11. HPJava Compiler Pretranslator Translator Optimizer Maxval.hpj Parser using JavaCC Unparser Front-End AST Maxval.java

  12. HPJava Front-End

  13. OptimizationStrategies • Based on the observations for parallel algorithms such as Laplace equation using red-black iterations, distributed array element accesses are generally located in inner overall loops. • The complexity of subscript expression of a multiarray element access • The cost of HPJava compiler-generated method calls

  14. Example of Optimization • Consider the nested overall and loop constructs overall (i=x for :) overall (j=y for :) { float sum = 0 ; for (int k=0; k<N; k++) sum += a [i, k] * b [k, j] ; c [i, j] = sum ; }

  15. Current Status of HPJava • HPJava 1.0 is available • http://www.hpjava.org • Fully supports the Java Language Specification • Tested and debugged against HPJava test suites and jacks (Automated Compiler Killing Suite from IBM)

  16. Related Systems • Co-Array Fortran – Extension to Fortran95 for SPMD parallel processing • ZPL – Array programming language • Jade – Parallel object programming in Java • Timber – Java-based programming language for array- parallel programming • Titanium – Java-based language for parallel computing • HPJava – Pure Java implementation, data parallel language and explicit programming

  17. Contributions • Proposed the potential of Java as a scientific (parallel) programming language • Pursued efficient compilation of the HPJava language for high-performance computing • Proved that the HPJava compilation and optimization scheme generates efficient node code for parallel programming • hkl – HPJava front- and back-end implementation, original implementation of JNI interfaces of Adlib, and benchmarks of the current HPJava system

  18. Future Works • HPJava – improve translation and optimization scheme • High-Performance Grid-Enabled Environments • Java Numeric Working Group • Web Service Compilation

  19. High-Performance Grid-Enabled Environments • Need nifty compilation technique, high-performance grid-enabled programming model, applications, components, and a better base language • HPJava • Acceptable performance on matrix algorithms • search engines and parameter searching • BioComplexity Grid Environments at Indiana University

  20. Conclusion • HPspmd programming model • HPJava • Multiarrays, overall constructs • Compilation and optimization scheme • Benchmarks • Future works

More Related