hpjava

20
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.

Upload: rogan-cardenas

Post on 01-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: HPJAVA

1

HPJAVAI.K.UJJWAL

07M11A1217

Dept. of Information Technology

B.S.I.T.

Page 2: 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

Page 3: HPJAVA

3

Outline

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

Page 4: HPJAVA

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

Page 5: HPJAVA

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

Page 6: HPJAVA

6

Array of Arrays in Java

0

1

2

3

X

Array of array for 2D

0

1

2

3

0

1

2

3

X Y

Array of array in irregular structure

Page 7: HPJAVA

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 level parallel programming language.

The HPJava system is built on Java technology. The HPJava programming language is an extension

of the Java programming language.

Page 8: HPJAVA

8

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

Range

BlockRange

CyclicRange

ExtBlockRange

IrregRange

CollapsedRange

Dimension

Page 9: HPJAVA

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

Page 10: HPJAVA

10

HPJava Architecture

Full HPJava

(Group, Range,on, overall,…)

Multiarrays, Java

int[[*, *]]

Java Source-to-Source Translator And Optimization

Adlib OOMPH MPJ

mpjdev

Native MPI Jini

Compiler

Libraries

Page 11: HPJAVA

11

HPJava Compiler

Parserusing JavaCC

Maxval.hpj

ASTFront-End

Pretranslator

Translator

Unparser

Optimizer

Maxval.java

Page 12: HPJAVA

12

HPJava Front-EndAST

Type Analysis

ClassFinderResolveParents

ClassFiller InheritanceHPJava

TypeChecker

Reachability

Definite Assignment

DefUnAssign DefAssign

completelytype-checked

AST

Page 13: HPJAVA

13

Optimization Strategies

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

Page 14: HPJAVA

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 ; }

Page 15: HPJAVA

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)

Page 16: HPJAVA

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

Page 17: HPJAVA

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

Page 18: HPJAVA

18

Future Works

HPJava – improve translation and optimization scheme

High-Performance Grid-Enabled Environments

Java Numeric Working Group Web Service Compilation

Page 19: HPJAVA

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

Page 20: HPJAVA

20

Conclusion

HPspmd programming model HPJava

Multiarrays, overall constructs Compilation and optimization scheme Benchmarks

Future works