Title: Net Ibis Communication Support for GridOriented Programming Environments
1Net Ibis Communication Support for Grid-Oriented
Programming Environments
Ibis Project Vrije Universiteit, Amsterdam
2Introduction
- High-performance distributed computing
- Objective
- Go beyond computers power evolution rate
- Means
- Hardware
- Multiplication of processing units
- Software
- Distributed programming environments
3Domain evolution
- Hardware
- Much less work on supercomputer design
- Trend towards simple hardware solutions
- Standard components
- Clusters of workstations
- Software
- Supporting tools for distributed computing
application programming
4One step further the Grid
- Main idea
- A grid
- A single computer
- A grid interconnection
- Putting computing resources in common
5The Grid concept
- Main idea
- A grid
- A single computer
- A grid interconnection
- Analogy with electric power distribution
- Computing power used without knowing where it
comes from
Grid
6Ibis
- Principle
- Java-centered approach
- Better inherent portability than native
compilation - Write once, run everywhere
- Application support written in Java
- Use special-case (native) optimizations on demand
- Programming support
- Heterogeneous grids
- High level programming
- Efficiency
7Challenges
- Distributed resources
- Information
- Discovery
- Allocation
- Control
- Exploitation
- Ibis approach
- Reasonably efficient pure Java solution (for any
JVM) - Optimized solutions with native code for special
cases
8Project architecture Interfaces
Application
RMI
GMI
RepMI
Satin
Ibis portability layer (IPL)
Serialization Communication
Gridmonitoring
Topologydiscovery
Informationservice
Resourcemanagement
Ibis
TCP, UDP, GMPanda, MPI
NWS
TopoMon
GRAM
GIS
9Project architecture
Application
RMI
GMI
RepMI
Satin
Ibis portability layer (IPL)
Exploitation Communication
Control Grid monitoring
Exploration Topologydiscovery
Information service
Allocation Resourcemanagement
TCP, UDP, GMPanda, MPI
NWS
TopoMon
GRAM
GIS
10Project architecture Code
Application
RMI
GMI
RepMI
Satin
Ibis portability layer (IPL)
Serialization Communication
Grid monitoring
Topologydiscovery
Informationservice
Resourcemanagement
TCP, UDP, GMPanda, MPI
NWS
TopoMon
GRAM
GIS
11Project architecture Status
Application
RMI
GMI
RepMI
Satin
Ibis portability layer (IPL)
In progress
Serialization Communication
Gridmonitoring
Topologydiscovery
Informationservice
Resourcemanagement
TCP, UDP, GMPanda, MPI
NWS
TopoMon
GRAM
GIS
12Communication
- Model
- Message passing
- Open configuration
- Objects
- Receive port
- Accept connections from one or more sending ports
- Send port
- Can be connected to one or more receive ports
- Sends each message to all receive ports it is
connected with
13Interface
- Message passing in Java
- Native types
- Bytes
- Boolean
- Characters
- Integers, short, medium, long
- Floats, short, long
- Arrays
- Native type elements
- Efficiency
- Array slices
- Object elements
- Objects
- Several serialization implementations
true
false
A
B
3.14
6.28
14Communication modules
Application
RMI
GMI
RepMI
Satin
- Implementations
- TCP Ibis
- Panda Ibis
Ibis portability layer (IPL)
Serialisation / Communication
TCP Ibis
Panda Ibis
Panda, MPI
TCP
15Limitations
- TCP Ibis reference implementation
- Hardcoded TCP support
- Panda Ibis
- Designed for native communication libraries
(Panda, MPI) - Closed-world model
- Limited code reuse
- Monolithic architectures
- Common code reduced
- Compromised evolutivity
16Proposal Net Ibis
- Objectives
- Easy prototyping
- Modularity, flexibility
- Task isolation
- Short drivers
- Portability
- Strict restriction on native code usage
- Use of standard Java mechanisms
- Threads
- Synchronization
- Open world model
- Connection/disconnection
- Tolerance to unexpected disconnections
- Efficiency
- Polling, upcalls
- Multi-protocol support
17Communication modules
Application
RMI
GMI
RepMI
Satin
- Implementations
- TCP Ibis
- Panda Ibis
- Net Ibis
Ibis portability layer (IPL)
Serialisation / Communication
TCP Ibis
Net Ibis
Panda Ibis
TCP, UDP, GMetc.
Panda, MPI
TCP
18Architecture
- Data processing chain
- Configurable stack
- Unified driver interface
- Optional components
- Free order
- Dynamic loading
19Drivers
- Driver characteristics
- Objects
- Driver
- Input
- Output
- Driver
- Factory for input objects and output objects
- One instance per session
- Input
- One or more incoming connections
- Unified interface
- Output
- One or more outgoing connections
- Unified interface
Single connection output
Multiple connection output
20Drivers
- Driver characteristics
- Objects
- Driver
- Input
- Output
- Driver
- Factory for input objects and output objects
- One instance per session
- Input
- One or more incoming connections
- Unified interface
- Output
- One or more outgoing connections
- Unified interface
Single connection output
Multiple connection output
21Example
Send port
GM
TCP
UDP
22Example connections
Send port
GM
TCP
UDP
23Example data path
Send port
24Example connection multiplication
Send port
25Example more complex schemes
Send port
26Send/Receive Port Configuration
27Context string
28Sub-contexts
29Service connection
- Internal network
- Characteristics
- TCP
- Transparent multiplexing
- Advantages
- Unified connection scheme
- Unified unexpected connection break detection
- Simplification of drivers
- Useful for low-frequency dynamic features
TCP
30Implementation
- Characteristics
- Experimental status
- 20 000 lines, Java C
- Networks
- GM, TCP, UDP
- Network connection
Port interface
Serialization
Native-gtbytes
Identity
Multi-protocol
Port-level multiplexing
Reliability
Connection-level multiplexing
TCP
UDP
Service
GM
31Tests
- Environnement
- DAS-2 cluster
- PC bi-Pentium III 1 GHz, 1 GB
- Réseau GM/Myrinet
- Réseau Fast-Ethernet
- Algorithm
- Test 1000 x (send receive)
- Results ½ x average of 5 tests
- warm-up test
32GM latency
Latency (µs)
Packet size (byte)
33GM bandwidth
Bandwidth (MB/s)
Packet size (byte)
34Serialization latency
35Serialization bandwidth
36Conclusion
- A communication support for Grid environments
- Net Ibis
- Highly modular design
- Dynamically configurable software stack
- Open world model
- Multi-protocol support
- Basic support for fault tolerance
- Open architecture
37Future work
- On-going work and to-do list
- Performance tuning
- Polling/upcalls
- Buffer Management
- Buffer factories
- NIO support
- New serialization code organization
- Accumulator/dissipators
- High-level configuration management
- Collaboration with topology information
service(s) - Decentralised functionning
- Get rid of the Ibis name server
38(No Transcript)
39(No Transcript)