1
Object Serialization for Marshalling Data in a Java Interface to MPI 2
Some issues in design of a Java API for MPI 3
Representing Message Buffers 4
Overview of this talk 5
Related projects 6
The mpiJava wrapper 7
mpiJava features. 8
Class hierarchy 9
Minimal mpiJava program 10
mpiJava implementation issues 11
mpiJava performance 12
MPI datatypes 13
Basic Datatypes 14
Derived datatypes 15
Restricted model 16
Limitations 17
Object datatypes 18
Automatic serialization 19
Implementation issues for Object datatypes 20
Modifications to mpiJava 21
Benchmarking mpiJava with serialization 22
Timing model 23
Platform 24
Non-shared memory: byte 25
Non-shared memory: float 26
Shared memory: byte 27
Shared memory: float 28
Parameters in timing model (microseconds) 29
Benchmark lessons 30
Improving serialization 31
Eliminating overheads of element serialization 32
Improved protocol 33
Customized output stream class 34
Customized input stream class 35
Non-shared memory: float (optimized in red) 36
Non-shared memory: byte (optimized in red) 37
Shared memory: float (optimized in red) 38
Shared memory: byte (optimized in red) 39
Comments 40
Conclusions
Click outside pointer rectangle to move pointer
Click on Pointer to Hide
Click on Pointer + ALT to toggle message hiding
Click on Pointer + CNTL to abolish pointer
Click on Pointer + Shift to cycle families
Click outside + Alt is Change Image
Click outside + Control is Double Size
Click outside + Shift is Halve Size
Right Mouse Down on Pointer Toggles Index
Shift Right Mouse aligns top with scrolled Page While With Mouse Down on Current Pointer h hides This Message while m restores i Toggles Index Aligned with Page Top j Toggles Index Aligned with Scrolled View Top a Abolishes Pointer while CNTL-Click restores f cycles through pointer families c cycles through members of a family u increases Size Up and d decreases Down Mouse Up-Down between changes of Pointer to process new option