javagrid: an innovative software for hpcc · 2018. 2. 27. · javagrid a framework for hpcc in...

55
page 1 ©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing JavaGrid JavaGrid : An Innovative Software : An Innovative Software for HPCC for HPCC Jochem Hauser * , Thorsten Ludewig * , Torsten Gollnick * , and Roy D. Williams * Dept. of High Performance Computing Center of Logistics and Expert Systems (CLE) GmbH Salzgitter, Germany Email: [email protected], web page: http://www.cle.de/cfd/ Center of Advanced Computational Research California Institute of Technology Pasadena, U.S.A. web page: http://www.cacr.caltech.edu/ presented at ECCOMAS COMPUTATIONAL FLUID DYNAMICS CONFERENCE, SWANSEA 2001 EXTV European eXperimental Test Vehicle

Upload: others

Post on 15-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 1©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

JavaGridJavaGrid: An Innovative Software : An Innovative Software for HPCCfor HPCC

Jochem Hauser*, Thorsten Ludewig*, Torsten Gollnick*, and Roy D. Williams†

*Dept. of High Performance ComputingCenter of Logistics and Expert Systems (CLE) GmbHSalzgitter, GermanyEmail: [email protected], web page: http://www.cle.de/cfd/

†Center of Advanced Computational ResearchCalifornia Institute of TechnologyPasadena, U.S.A.web page: http://www.cacr.caltech.edu/

presented at

ECCOMAS COMPUTATIONAL FLUID DYNAMICS CONFERENCE, SWANSEA 2001

EXTVEuropean eXperimentalTest Vehicle

Page 2: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 2©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Overview

Scope of JavaGrid (Framework)

Architecture Overview

Object Oriented Programming (OOP)

Threads

Graphical Applications (ClientGUI & ShowMe3D)

Java Performance Results

Conclusions

Future Work

Page 3: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 3©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Java as the Language for HPCC

platform independence

simple and straight forward parallelization

unique included network capabilitiesJDBC (Java Database Connectivity)

RMI (Remote Method Invocation)

Secure Connections over the Inter- and Intranet

easy generation of object reflecting the engineering design process

,,code reusability'' - simplifies code design

Page 4: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 4©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Why we like to use Java for writing high-quality portable parallel programs?

pure object formulation (i.e. an object representation of a wing, fuselage, engine etc. described by a set of classes containing the data structures and methods for a specific item)

strong typing

exception model

elegant threading

portability

Page 5: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 5©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

What is JavaGridThis is an age of possibility, and IT is the driving force behind this change that occurs on a global range.

High Performance Computing and Communications (HPCC) on a global scale is the key of this new economy.

The need for accurate 3D simulation in numerous areas of computationally intensive industrial applications, including the rapidly evolving field of bioscience, requires the development of ever more powerful HPCC resources for a computational Grid based on the Internet.

Page 6: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 6©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

What is JavaGridThe Java language has the potential to bring about a revolution in computer simulation. Using Java's unique features, a multi-disciplinary computational Grid, termed JavaGrid, can be built entirely in Java in a transparent, object-oriented approach.

JavaGrid provides the numerical, geometric, parallel, and network infrastructure for a wide range of applications in 3D computer simulation thus substantially alleviating the complex task of software engineering.

Page 7: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 7©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Scope of JavaGridJavaGrid a framework for HPCC in engineering,

science, and life sciences providing:

full portability to any computing platform

an infrastructure to couple ,,legacy codes''

all layers for

dealing with arbitrary complex 3D geometries

parallelization without libraries

scheduling (automatic dynamic load balancing)

Page 8: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 8©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Scope of JavaGrid

all layers for (continued)

internet connectivitycollaborative engineeringoutsourcinginteractive steering

system security (secure communication over the internet)

post processing with the Virtual Visualization Toolkit (VVT / ShowMe3D with Java3D)

Page 9: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 9©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Scope of JavaGrid

all layers for (continued)

solver package layer

contains all methods to construct a solver whose physics is governed by a set of conservation laws.

provides the infrastructure for a large class of computational problems

Navier-Stokes equations (fluid dynamics)

Maxwell's equations (electromagnetics, including semiconductor simulation)

Schrödinger's equation (quantum mechanics)

Page 10: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 10©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Scope of JavaGrid

A solver only needs to contain the physics and numerics of the simulation task for a single block or a single domain.

The solver does not need to know anything about the geometry data or the parallelization.

It has a simple structure

The solver can be tested independently before its integration

Replacing the default solver by one's own solver.

Page 11: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 11©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Current "static numeric" Solvers

the solver numerics is "static"

all provided numerical strategies have do be declared at build time of the solver executable

the user data will be handled like filling out predefined form

Page 12: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 12©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

"dynamic numerics" Framework

the numerical strategies can be exchanged during runtime

1st send the numerics

R = A + B / C

Page 13: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 13©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Framework

2nd send the dataA[1] = 10B[1] = 20C[1] = 4A[2] = 10

B[2] = 20C[2] = 4

A[3] = 10B[3] = 20C[3] = 4

Page 14: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 14©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Framework

3rd receive the self-defined result.

R[1] = 15R[2] = 15R[3] = 15

Page 15: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 15©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Architecture Overview

RMI basedNetwork

Solver/Code Development

Visualization

Collaborative Engineering

Server

Session-ID

Session-ID

Session-ID

Session-ID

Page 16: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 16©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Architecture Overview

Client Server

Client

sends the data AND the java solver code to the server and receives a unique session id to identify the session on the server.

Server

provides a framework for multi physics solver

Page 17: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 17©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Architecture Overview

Client Server

with the unique session id everyone can connect to a specific session on the server

start / stop sessionchanging the conditions of the computationvisualizationdebuggingcollaborative work

Page 18: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 18©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

OOP - Object Oriented Programming

Abstract Data TypesThe association between the declaration of a data type and the declaration of the code that is intended to operate upon variables of this type

Data hiding and encapsulationProtecting the data of an object from improper modification by forcing the user to access the data trough a method.

class name +variable1: integer +variable2: double +method1 +method2

Encapsulation of data in an Object

Page 19: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 19©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

OOP ExampleProgramming in 'C'

Programming in 'Java'

struct my_date { int day, month, year;} date;

date.day = 32;

public class MyDate { private int day, month, year; public void setDay( int day ) { ... validation code ... }}

MyDate myDate = new MyDate();myDate.setDay( 32 ); ERROR!

Page 20: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 20©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Threads an efficient way of parallelizing codesWhat are Threads?

Multithreaded programs extends the idea of multitasking by taking it one level further: individual programs (processes) will appear to do multiple tasks at the same time.

Each task is usually called thread which is the short form for thread of control.

Programs that can run more than one thread at once are said to be multithreaded.

Page 21: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 21©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

What are threads?

Three Parts of a Thread

A virtual CPU

The code the CPU is executing

The data the code works on

CPU

DataCodeA thread orexecution context

Page 22: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 22©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Why Threads are good for CFD

Threads as a general parallelization strategy for CFD codes

Advanced numerical schemes in CFD, i.e. GMRES, do not require the same computational work for each grid cell.

Sophisticated dynamic load balancing algorithms on distributed-memory machines

Page 23: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 23©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

MandelbrotThis code tests the self-scheduling of threadsComputation of the Mandelbrot set performed on a 2D grid in the complex plane

MandelbrotApplet.class

Page 24: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 24©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Mandelbrot Set - dimension 7,200 x 4,800, max iterations 5,000 running 400 threads

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 260,0

2,5

5,0

7,5

10,0

12,5

15,0

17,5

20,0

22,5

25,0

27,5

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

Java Runtime Environment 1.3.1_fcs

speedupefficiency

Number of CPUs

Spee

dup

Sun Enterprise 600026 CPUs, 400 MHz, 8 MB Cache, 32 GB Memory

Page 25: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 25©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Mandelbrot Set - dimension 7,200 x 4,800, max iterations 5,000 running 400 threads

Sun Enterprise 600026 CPUs, 400 MHz, 8 MB Cache, 32 GB Memory

1 2 3 4 5 6 7 805

10152025303540455055606570

JVM Comparison

1.2.2_081.3.0_03 Server1.3.1_fcs Server1.4.0_beta Server

Run

Com

pute

tim

e in

sec

onds

Page 26: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 26©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ClientGUI (2D & 3D)

Why we like to use simple graphical user interface for the JavaGrid?

Because for a non-Programmer it is to difficult to collect all different parts needed for a JavaGrid session into a Java source text and compile it for himself.

It's easier to run a quick test case without falling into common programming traps.

Page 27: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 27©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Setting Solver & Cell Class

Page 28: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 28©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Setting Geometry & Command files

Page 29: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 29©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Receiving Result

Page 30: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 30©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Virtual Visualization Toolkit (VVT / ShowMe3D)

The idea of ShowMe3D is to develop a light weight application, which is easy to use, with a limited (but useful) set of functionality.

visualizationGeometry (surface)results of a computation

debuggingonline client - server connectionf.e. boundary updates

surface convertingf.e. quads to triangles

Page 31: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 31©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: Motivation

This program is at first designed for all programmers of Solver Objects.

Based on the online "view" into the Server it can be very helpful for debugging.

it is NOT designed to provide complete post processing like TecPlot or Ensight

Page 32: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 32©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D (continued)

Today's implementation of ShowMe3D contains

Visualization

Geometry data

a tree view of the Java 3D scene graph

Surface converting

for Alias Wave Front Objects only

Page 33: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 33©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: main

The main window contains all the GUI elements for the file input / output and visualization options

load geometry

save geometry

shaded view

wire frame view

system properties

Page 34: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 34©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: file types

ShowMe3D can load 2D and 3D object data in different file formats

Triangle

Plot3DPlane 2DPlane 3DVolume 3D

Autodesk/AutoCAD DXF

AliasWavefront Objects

3D StudioMAX

LightWave

Page 35: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 35©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: Application

Page 36: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 36©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: Explorer

The explorer shows the Java 3D scene graph in a tree view

In the bottom text area the properties of the selected component are printed.

Page 37: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 37©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: shaded view

Page 38: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 38©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ShowMe3D: wire frame view

Page 39: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 39©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Java High Performance and Communications Test Suite

In the following series of slides we will demonstrate Java's amazing numerical performance gains obtained over the last two years.

Java numerical performance now rivals or exceeds that of C or C++ codes used in engineering.

Page 40: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 40©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Matrix MultiplyParallel matrix multiplication is implemented by block matrices, as shown in the Figure Matrices A and B are multiplied to produce C

The multi-threaded matrix multiplication is performed by splitting matrix C into partitions. Each partition is then calculated by one thread, with the thread numbering as shown for matrix C. Concurrent access to the memory containing A and B is necessary: here we see the memory that thread 2 accesses.

A B C

T2T1 T3

T4 T5 T6 T7

T8 T9 T10 T11

T12 T13 T14 T15

T0

Page 41: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 41©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Matrix Multiply

for comparison, we have a Java and a C++-coded version of the sequential block-matrix multiply that does not use threads and multithreaded Java and C++ version.

to compare floating point performance for scientific applications between C++ and Java on the test machines

to measure parallel efficiency of a multithreaded application

Page 42: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 42©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Sequential Matrix Multiplication

Results a 30 x 30 matrix doing 10,000 iterations on the E6000

1 2 3 4 5 6 7 80

2,55

7,510

12,515

17,520

22,525

27,530

32,5

JVM Comparison

1.3.0_03 Server1.3.1_fcs Server1.4.0_beta ServerC++ - GCCC++ - Forté 6u1

Run

Com

pute

tim

e in

sec

onds

Page 43: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 43©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Sequential Matrix Multiplication

Results a 30 x 30 matrix doing 10,000 iterations on the E6000

run 1 2 3 4 5 6 7 81.1.8_14 56,15 56,14 56,16 56,16 56,16 56,17 56,16 56,161.2.2_08 21,59 21,57 21,64 21,71 21,63 21,73 21,56 21,61

1.3.0_03 Client 36,25 36,23 36,27 36,42 36,42 36,43 36,23 36,271.3.0_03 Server 29,37 31,87 31,9 18,87 18,86 18,86 18,9 18,951.3.1_fcs Client 36,3 36,26 36,31 36,26 36,31 36,46 36,26 36,44

1.3.1_fcs Server 26,74 27,86 27,66 9,62 9,64 9,58 9,58 9,661.4.0_beta Client 47,61 47,51 47,55 47,51 47,51 47,55 47,56 47,51

1.4.0_beta Server 9,6 9,69 9,7 9,71 9,54 9,54 9,55 9,54C++ - GCC 20,35 20,31 20,36 20,34 20,31 20,35 20,31 20,33

10,41 10,42 10,42 10,42 10,41 10,32 10,32 10,35C++ - Forté 6u1

Page 44: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 44©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Multi-threaded Matrix Multiplication

1 2 3 4 5 6 7 80

10

20

30

40

50

60

70

JVM Comparsion

1.2.2_081.3.0_03 Server1.3.1_fcs Server1.4.0_beta ServerC++ - GCCC++ - Forté 6u1

Run

Com

pute

tim

e in

sec

onds

Results a 100 x 100 matrix doing 10,000 iterations with 400 threads on the E6000 (26 CPUs)

Page 45: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 45©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Multi-threaded Matrix Multiplication

Results a 100 x 100 matrix doing 10,000 iterations with 400 threads on the E6000 (26 CPUs)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 260,0

2,5

5,0

7,5

10,0

12,5

15,0

17,5

20,0

22,5

25,0

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

MultiThreaded Matrix Multiplication - jdk1.3.1_fcs

speedupefficiency

Number of CPUs

Spee

dup

Page 46: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 46©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Laplace SolverIn this test program we are using a global thread synchronization to test the systems behavior if it have to synchronize different numbers of threads.

1.1.8_14 1.2.2_09 1.3.0_03 Server 1.3.1_fcs Server 1.4.0_beta Server

0

50

100

150

200

250

300

350

400

450

500

24 blocks (threads), 300 x 300 cells per block (2,160,000 cells)

/usr/lib/usr/lib/lwp/32/usr/lib/lwp/64

Java Virtual Machine

Tim

e in

sec

onds

Page 47: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 47©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Laplace Solver

1.1.8_14 1.2.2_09 1.3.0_03 Server

1.3.1_fcs Server

1.4.0_beta Server

0100200300400500600700800900

100011001200

96 blocks (threads), 150 x 150 cells per block (2,160,000 cells)

/usr/lib/usr/lib/lwp/32/usr/lib/lwp/64

Java Virtual Machine

Tim

e in

sec

onds

Page 48: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 48©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Laplace Solver

LaplaceDemoApplet.class

Page 49: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 49©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

JParEulerIs an Euler solver plugin for the JavaGridTestcase is a Mach 3 Euler flow past a forward facing-stepThe simulations are based on structured multi-block grids

The computation is explicit and first order accurate. Shown is the Mach-number distribution.

Page 50: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 50©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

JParEuler

time in seconds

single processor multi processor (16)16 121104 3246,73 541,13 6,0016 200704 6908,88 1077,20 6,4116 484416 12905,88 2720,48 4,7448 118803 2980,93 225,76 13,2048 202800 5190,54 436,09 11,9048 480000 12663,30 1162,54 10,89

number of blocks

number of cells

parallel speedup

HP V-Class times for 320 iterations

Page 51: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 51©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

JParEuler

time in seconds

single processor multi processor (4)16 121104 852,79 258,26 3,3016 200704 1571,76 532,74 2,9516 484416 4277,96 1593,45 2,6848 118803 756,24 195,95 3,8648 202800 1409,96 378,61 3,7248 480000 3892,67 1077,06 3,61

number of blocks

number of cells

parallel speedup

Sun E450 times for 320 iterations

Page 52: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 52©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Conclusions

The parallel efficiency is obtained if a sufficient number of threads and sufficient computational work within a thread can be provided.With the scientific and engineering problems that we have in mind, these requirements are easily satisfied.The execution speed of Java code has increased substantially over the last 2 years and now rivals the speed of C and C++ codes. More is too be expected. Further work will be needed, but we following Kernighan's rules Make it right before you make it faster as well Don't patch bad code, rewrite it, the latter rule being the reason for a pure Java flow solver code.

Page 53: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 53©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Future Work

JavaGrid will be extended to accommodate both structured and unstructured as well as hybrid general 3D grids to allow complete geometric flexibility.

Extend the JavaGrid parallel layer to work with distributed memory machines (Beowulf class). (e.g., JavaSpaces, JINI, Sockets)

Page 54: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 54©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

Acknowledgments

This work is partly funded by the ministry of Sciences and Culture of the State of Lower Saxony, Germany under AGIP 1999.365 EXTV program.

We are particularly grateful to Sun Microsystems, Benchmark Center, Germany for providing exclusive access to a 28 CPU Sun Enterprise 6000 server.

We are grateful to Mr. Jean Muylaert for providing information about the European eXperimental Test Vehicle.

This work is part of the Ph.D. work of Thorsten Ludewig

Page 55: JavaGrid: An Innovative Software for HPCC · 2018. 2. 27. · JavaGrid a framework for HPCC in engineering, science, and life sciences providing: full portability to any computing

page 55©2000 University of Applied Sciences Wolfenbuettel and CLE, Department of High Performance Computing

ReferencesGinsberg,M., Häuser,J.,Moreira, J.E.,Morgan R., Parsons, J.C., Wielenga, T.J.Panel Session: future directions and challenges for Java implementations of numeric-intensive industrial applications published in: Advances in Engineering Software, Elsevier, 31,2000, p.743-751

Häuser,J., Ludewig, T., Williams, Roy D., Winkelmann, R., Gollnick, T., Brunett, S., Muylaert, J.A Test Suite for High Performance Parallel Java published in: Advances in Engineering Software, Elsevier,31, 2000, p.687-696

Häuser,J., Ludewig, T., Williams, Roy D., Winkelmann, R., Gollnick, T., Brunett, S., Muylaert, J.A Test Suite for High Performance Parallel Java paper presented at 5th National Symposium on Large-Scale Analysis, Design and Intelligent Synthesis Environments, Williamsburg, VA, October 12th to 15th, 1999

Häuser,J., Ludewig, T., Williams, Roy D., Winkelmann, R., Gollnick, T., Brunett, S., Muylaert, J.NASA Panel Java Soundbytes paper presented at 5th National Symposium on Large-Scale Analysis, Design and Intelligent Synthesis Environments, Williamsburg, VA, October 12th to 15th, 1999

Häuser, J., Ludewig, Th., Gollnick, T., Winkelmann, R., Williams, R., D., Muylaert, J., Spel, M.,A Pure Java Parallel Flow Solver, published in: Proceedings of the 37th AIAA Aerospace Sciences Meeting and Exhibit, AIAA 99-0549 Reno, NV, USA, January 11.-14., 1999.

Häuser J., Williams R.D, Spel M., Muylaert J., ParNSS: An Efficient Parallel Navier-Stokes Solver for Complex Geometries, AIAA 94-2263, AIAA 25th Fluid Dynamics Conference, Colorado Springs, June 1994.