Upload
carver
View
66
Download
0
Embed Size (px)
DESCRIPTION
Java による MPI の実装と評価. 日下部 明(日本オラクル) 廣安 知之(同志社大 工) 三木 光範(同志社大 工). Java. Easy To Develop Platform Independent. Simple Language. No. Correct Source Code Re-compile. Our Projects. Applications. Parallel Computers. Optimization tools. Gradient methods Genetic Algorithms - PowerPoint PPT Presentation
Citation preview
Java によるMPI の実装と評価
日下部 明(日本オラクル)廣安 知之(同志社大 工)三木 光範(同志社大 工)
Java
•Easy To Develop
•Platform IndependentCorrect Source Code
Re-compileNo
Simple Language
Our Projects
Applications
Optimization tools
Gradient methodsGenetic AlgorithmsSimulated Annealing
Parallel Computers
Applications on PC clusters and GRID
Applicationtasks
Clusters GRID
Genetic Algorithms
生物の遺伝と進化を模擬した最適化手法
交叉による探索
突然変異による探索
選択による探索領域の絞りこみ
多点探索
Parallel Genetic Algorithms
Individual Information
Gene1001110011
Fitness Value
Flags Object Transport
name
Sample Class
Class Individual
char[] nameInt[] genefloat fitness valueInt[] flags
Primitive Types Only
Sender Receiver
send(name)
send(gene)
send(fitness)
send(flag)
recv(name)
recv(gene)
recv(fitness)
recv(flag)
Object Types
Sender Receiver
Send
(individual)
Recv
(individual)
Bottleneck
Message passing
MPI
•For Fortran / C / C++
•For Java
Defined
Almost Defined
Message Passing InterfaceStandard API Set
Java-MPImpijava
•Object Transport
•Interface To Native MPI
MPIJ•Full Java Implementation
•Shared Memory Support
Objective
Deriving Java Merits
Java-MPI
Features
1. Object Transport
2. Full Java Implementation
3. Self Start-up
4. Shared Memory Support
Target 1Cluster
Target 2Multi Processor Machine
send/recv
void send (Object buf, int offset, int count, Datatype datatype, int dest, int tag)
void recv (Object buf, int offset, int count, Datatype datatype, int dest, int tag)
Java Datatypes
•byte
•char
•short
•boolean
•int
•long
•float
•double
Primitive Types Object Types
Other All
Marsharing
System.arraycopy
countoffset
writeObject
ObjectOutputStream
Message Buffer
MessageObject
System. arraycopy
countoffset
readObject
ObjectInputStream
Message Buffer
MessageObject
Extended Comm
void send (Object buf, int offset, int count, Datatype datatype, int dest, int tag)
void recv (Object buf, int offset, int count, Datatype datatype, int dest, int tag)
void sendObject (Object buf, int dest, int tag)
Object recvObject (int src, int tag, Status status)
Extended Method
pass reference
writeObject
ObjectOutputStream
Message Buffer
MessageObject
readObject
ObjectInputStream
pass reference
Message Buffer
MessageObject
How To Launch
JDK Style> java class
This MPI> java -Dnp=n class
MPICH> mpirun -np n exefile
Spawning Tasks
Launching
Command
MPI.init
Java-MPI Binding
Our Implementation
Void init(String[] args)
Void init(String name_of_class, String[] args)
SMP Cluster
Experiment Environment
Pentium 3500MHz2 Way SMPLinux 2.2.12Blackdown JDK1.2.2 RC3
Switching HUB
100BASE-TX
Band Width
byteint
double
1.0e8
1.0e7
1.0e6
1.0e5
1.0e4
1.0e31.0e61.0e51.0e41.0e31.0e21.0e1
Band Width (Bytes/sec)
Message Size (Bytes)
Band Width
byte1.0e8
1.0e7
1.0e6
1.0e5
1.0e4
1.0e31.0e61.0e51.0e41.0e31.0e21.0e1
Message Siz e (Bytes)
byte with extended method
1000
10000
100000
1000000
10000000
100000000
9 17 31 56 99 177 316 562 999 177831625623999917782316225623499999177827316227562341999999
MPICH
J ava-MPI
Band Width
10 100 1K 10K 100K 1M
100M
10M
1M
100K
10K
1K
byte[ ]
Message Size (Byte)
Band
Wid
th (
Byte
s/S
ec)
10000
100000
1000000
10000000
100000000
9 17 31 56 99 177316 562 999177831625623999917782316225623499999177827316227562341999999
MPICH
Shared Memory
Socket
Band Width (Intra Node)
10 100 1K 10K 100K 1M
100M
10M
1M
100K
10K
byte[ ]
Message Size (Byte)
Band
Wid
th (
Byte
s/S
ec)
Conclusion (1/2)
Deriving Java Merits1. Object Transport
2. Full Java Implementation
3. Self Start-up
4. Shared Memory Support
Natural Expression
Portability
JDK Style Start-up
Fast Communication
Conclusion (2/2)
5. Inter Node Communication
6. Intra Node Communication
Slower Than MPICH
Faster Than MPICH
Future Works
より高率的な実装1 K 付近での Bandwidth の落ち込みの特定Marshalling による通信遅延の検討最適化アプリケーションなどでの実際の使用その他