ibis: a java-centric programming environment for computational grids

35
Ibis: a Java-centric Programming Environment for Computational Grids Henri Bal Vrije Universiteit Amsterdam vrije Universiteit

Upload: prince

Post on 17-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

vrije Universiteit. Ibis: a Java-centric Programming Environment for Computational Grids. Vrije Universiteit Amsterdam. Henri Bal. Distributed supercomputing. Parallel processing on geographically distributed computing systems (grids) Examples: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ibis: a Java-centric Programming Environment for Computational Grids

Ibis: a Java-centric Programming Environment for Computational Grids

Henri BalVrije Universiteit Amsterdam

vrije Universiteit

Page 2: Ibis: a Java-centric Programming Environment for Computational Grids

2

Distributed supercomputing

• Parallel processing on geographically distributed computing systems (grids)

• Examples:- SETI@home ( ), RSA-155, Entropia, Cactus

• Currently limited to trivially parallel applications• Questions:

- Can we generalize this to more HPC applications?- What high-level programming support is needed?

Page 3: Ibis: a Java-centric Programming Environment for Computational Grids

3

Grids versus supercomputers

• Performance/scalability- Speedups on geographically distributed

systems?

• Heterogeneity- Different types of processors, operating

systems, etc.- Different networks (Ethernet, Myrinet, WANs)

• General grid issues- Resource management, co-allocation, firewalls,

security, authorization, accounting, ….

Page 4: Ibis: a Java-centric Programming Environment for Computational Grids

4

Approaches

• Performance/scalability- Exploit hierarchical structure of grids

(previous project: Albatross)- Use optical (>> 10 Gbit/sec) wide-area networks

(future projects: DAS-3 and StarPlane)

• Heterogeneity- Use Java + JVM (Java Virtual Machine) technology

• General grid issues- Studied in many grid projects: VL-e, GridLab, GGF

Page 5: Ibis: a Java-centric Programming Environment for Computational Grids

5

Outline

• Previous work: Albatross project• Ibis: Java-centric grid computing

- Programming support- Design and implementation- Applications

• Experiences on DAS-2 and EC GridLab testbeds• Future work (VL-e, DAS-3, StarPlane)

Page 6: Ibis: a Java-centric Programming Environment for Computational Grids

6

• Grids usually are hierarchical- Collections of clusters, supercomputers- Fast local links, slow wide-area links

• Can optimize algorithms to exploit this hierarchy

- Minimize wide-area communication

• Successful for many applications- Did many experiments on a homogeneous wide-

area test bed (DAS)

Speedups on a grid?

Page 7: Ibis: a Java-centric Programming Environment for Computational Grids

7

Wide-area optimizations

• Message combining on wide-area links• Latency hiding on wide-area links• Collective operations for wide-area systems

- Broadcast, reduction, all-to-all exchange

• Load balancing

Conclusions:- Many applications can be optimized to run

efficiently on a hierarchical wide-area system- Need better programming support

Page 8: Ibis: a Java-centric Programming Environment for Computational Grids

8

The Ibis system

• High-level & efficient programming support for distributed supercomputing on heterogeneous grids

• Use Java-centric approach + JVM technology - Inherently more portable than native compilation

“Write once, run anywhere ”- Requires entire system to be written in pure Java

• Optimized special-case solutions with native code- E.g. native communication libraries

Page 9: Ibis: a Java-centric Programming Environment for Computational Grids

9

Ibis programming support

• Ibis provides- Remote Method Invocation (RMI)- Replicated objects (RepMI) - as in Orca- Group/collective communication (GMI) - as in

MPI- Divide & conquer (Satin) - as in Cilk

• All integrated in a clean, object-oriented way into Java, using special “marker” interfaces- Invoking native library (e.g. MPI) would give up

Java’s “run anywhere” portability

Page 10: Ibis: a Java-centric Programming Environment for Computational Grids

10

Compiling/optimizing programs

Javacompiler

bytecoderewriter JVM

JVM

JVM

source bytecodebytecode

• Optimizations are done by bytecode rewriting- E.g. compiler-generated serialization (as in Manta)

Page 11: Ibis: a Java-centric Programming Environment for Computational Grids

11

Satin: a parallel divide-and-conquer system on top of Ibis

• Divide-and-conquer isinherently hierarchical

• More general thanmaster/worker

• Satin: Cilk-like primitives (spawn/sync) in Java

fib(1) fib(0) fib(0)

fib(0)

fib(4)

fib(1)

fib(2)

fib(3)

fib(3)

fib(5)

fib(1) fib(1)

fib(1)

fib(2) fib(2)cpu 2

cpu 1cpu 3

cpu 1

Page 12: Ibis: a Java-centric Programming Environment for Computational Grids

12

Example

interface FibInter {public int fib(long n);

}

class Fib implements FibInter { int fib (int n) {

if (n < 2) return n;return fib(n-1) + fib(n-2);

}}

Single-threaded Java

Page 13: Ibis: a Java-centric Programming Environment for Computational Grids

13

GridLab testbed

interface FibInter extends ibis.satin.Spawnable {

public int fib(long n);}

class Fib extends ibis.satin.SatinObject implements FibInter { public int fib (int n) {

if (n < 2) return n;int x = fib (n - 1);int y = fib (n - 2);sync();return x + y;

}}

Java + divide&conquer

Example

Page 14: Ibis: a Java-centric Programming Environment for Computational Grids

14

Ibis implementation

• Want to exploit Java’s “run everywhere” property, but- That requires 100% pure Java implementation,

no single line of native code- Hard to use native communication (e.g. Myrinet) or

native compiler/runtime system

• Ibis approach:- Reasonably efficient pure Java solution (for any JVM)- Optimized solutions with native code for special

cases

Page 15: Ibis: a Java-centric Programming Environment for Computational Grids

15

Ibis design

Page 16: Ibis: a Java-centric Programming Environment for Computational Grids

16

NetIbis• Grid communication system of Ibis

- Dynamic: networks not known when application is launched -> runtime configurable protocol stacks

- Heterogeneous -> handle multiple different networks- Efficient -> exploit fast local networks- Advanced connection establishment

to deal with connectivity problems[Denis et al., HPDC-13, 2004]

• Example: - Use Myrinet/GM, Ethernet/UDP and TCP in 1 application- Same performance as static optimized protocol

[Aumage, Hofman, and Bal, CCGrid05]

Page 17: Ibis: a Java-centric Programming Environment for Computational Grids

17

Fast communication in pure Java

• Manta system [ACM TOPLAS Nov. 2001]

- RMI at RPC speed, but using native compiler & RTS

• Ibis does similar optimizations, but in pure Java- Compiler-generated serialization at bytecode level

5-9x faster than using runtime type inspection

- Reduce copying overheadZero-copy native implementation for primitive

arraysPure-Java requires type-conversion (=copy) to

bytes

Page 18: Ibis: a Java-centric Programming Environment for Computational Grids

18

Applications

• Implemented ProActive on top of Ibis/RMI• 3D electromagnetic application (Jem3D)

in Java, on top of Ibis + ProActive- [F. Huet, D. Caromel, H. Bal, SC'04]

• Automated protein identification forhigh-resolution mass spectrometry

• Many smaller applications (mostly with Satin)- Raytracer, cellular automaton, Grammar-based

compression, SAT-solver, Barnes-Hut, etc.

Page 19: Ibis: a Java-centric Programming Environment for Computational Grids

19

Grid experiences with Ibis

• Using Satin divide-and-conquer system- Implemented with Ibis in pure Java, using

TCP/IP

• Application measurements on- DAS-2 (homogeneous)- Testbed from EC GridLab project

(heterogeneous)

Page 20: Ibis: a Java-centric Programming Environment for Computational Grids

20

Distributed ASCI Supercomputer (DAS) 2

Node configuration

Dual 1 GHz Pentium-III>= 1 GB memoryMyrinetLinux

VU (72 nodes)UvA (32)

Leiden (32) Delft (32)

GigaPort(1 Gb)

Utrecht (32)

Page 21: Ibis: a Java-centric Programming Environment for Computational Grids

21

Performance on wide-area DAS-2(64 nodes)

0102030405060708090

Eff

icie

ncy

1 site

2 sites

4 sites

• Cellular Automaton uses IPL, the others use Satin.

Page 22: Ibis: a Java-centric Programming Environment for Computational Grids

22

GridLab

• Latencies:- 9-200 ms (daytime),

9-66 ms (night)

• Bandwidths:- 9-4000 KB/s

Page 23: Ibis: a Java-centric Programming Environment for Computational Grids

23

Testbed sitesType OS CPU Location CPUs

Cluster Linux

Pentium-3

Amsterdam 8 1

SMP Solaris Sparc Amsterdam 1 2

Cluster Linux Xeon Brno 4 2

SMP Linux Pentium-3 Cardiff 1 2

Origin 3000 Irix MIPS ZIB Berlin 1 16

Cluster Linux Xeon ZIB Berlin 1 x 2

SMP Unix Alpha Lecce 1 4

Cluster Linux Itanium Poznan 1 x 4

Cluster Linux Xeon New Orleans 2 x 2

Page 24: Ibis: a Java-centric Programming Environment for Computational Grids

24

Experiences

• Grid testbeds are difficult to obtain• Poor support for co-allocation (use our own tool)• Firewall problems everywhere• Java indeed runs anywhere

modulo bugs in (old) JVMs• Divide-and-conquer parallelism works very well on

a grid, given a good load balancing algorithm

Page 25: Ibis: a Java-centric Programming Environment for Computational Grids

25

Grid results

Program sites CPUs Efficiency

Raytracer (Satin) 5 40 81 %

SAT-solver (Satin) 5 28 88 %

Compression (Satin) 3 22 67 %

Cellular autom. (IPL) 3 22 66 %

• Efficiency based on normalization to single CPU type (1GHz P3)

Page 26: Ibis: a Java-centric Programming Environment for Computational Grids

26

Future work: VL-e

• VL-e: Virtual Laboratories for e-Science• Large Dutch project (2004-2008):

- 40 M€ (20 M€ BSIK funding from Dutch goverment)

• 20 partners- Academia: Amsterdam, TU Delft, VU, CWI,

NIKHEF, ..- Industry: Philips, IBM, Unilever, CMG, ....

• Our work:- Ibis: P2P, management, fault-tolerance, optical

networking, applications, performance tools

Page 27: Ibis: a Java-centric Programming Environment for Computational Grids

27

VL-e program

Page 28: Ibis: a Java-centric Programming Environment for Computational Grids

28

DAS-3

• Next generation grid in the Netherlands• Partners:

- ASCI research school- Gigaport-NG/SURFnet- VL-e and MultimediaN BSIK projects

• DWDM backplane- Dedicated optical group of 8 lambdas- Can allocate multiple 10 Gbit/s lambdas

between sites

Page 29: Ibis: a Java-centric Programming Environment for Computational Grids

29

DAS-3

CP

U’s

R

CPU’sR

CPU’s

R

CP

U’s

R

CPU’s

R

NOC

Page 30: Ibis: a Java-centric Programming Environment for Computational Grids

30

StarPlane project

• Collaboration with Cees de Laat (U. Amsterdam)• Key idea:

- Applications can dynamically allocate light paths- Applications can change the topology of the

wide-area network at sub-second timescale

• Challenge: how to integrate such a network infrastructure with (e-Science) applications?

Page 31: Ibis: a Java-centric Programming Environment for Computational Grids

31

Summary

• Ibis: A Java-centric Grid programming environment• Exploits Java’s “run anywhere” portability• Optimizations using bytecode rewriting and some

native code• Efficient, dynamic, & flexible communication system• Many applications• Many Grid experiments• Future work: VL-e and DAS-3

Page 32: Ibis: a Java-centric Programming Environment for Computational Grids

32

Acknowledgements

Rob van Nieuwpoort Jason Maassen Thilo Kielmann Rutger Hofman Ceriel Jacobs Kees Verstoep Gosia Wrzesinska

Ibis distribution available from: www.cs.vu.nl/ibis

Kees van Reeuwijk Olivier Aumage Fabrice Huet Alexandre Denis Maik Nijhuis Niels Drost Willem de Bruin

Page 33: Ibis: a Java-centric Programming Environment for Computational Grids

33

extra

Page 34: Ibis: a Java-centric Programming Environment for Computational Grids

34

Satin on wide-area DAS-2

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

Fibonac

ci

Adapt

ive in

tegra

tion

Set co

ver

Fib. th

resh

old IDA*

Knaps

ack

N cho

ose

K

N quee

ns

Prime

facto

rs

Raytrac

erTSP

spee

du

p

single cluster of 64 machines 4 clusters of 16 machines

Page 35: Ibis: a Java-centric Programming Environment for Computational Grids

35

Java/Ibis vs. C/MPI on Pentium-3 cluster (using SOR)