denis caromel1 florian doyon, fabrice huet, julien vayssiere, david sagnol inria -- cnrs - i3s --...
TRANSCRIPT
Denis Caromel 1
Denis CaromelFlorian Doyon, Fabrice Huet, Julien Vayssiere, David Sagnol
INRIA -- CNRS - I3S -- Univ. of Nice [email protected]
DIVA: Distributed and Interactive Virtual world in Java
1. Objectives
2. Structure and Features of DIVA
3. Demo ...
4. Benchmarks and conclusions
Denis Caromel 2
ObjectivesTest and benchmark the Java technology in:• Concurrency, Distribution, Applications
JavaGrande working groug
• In actual applications, featuring not a single task to benchmark, but:
• RMI communications
• computations
• visualization (3D)
• User Interface
Denis Caromel 3
DIVA: Distributed Int. Virtual World in Java
Denis Caromel 4
Structure of Diva
ProActive:
- asynchronous calls
- future-based synchronization
- migration of Active Objects
Java3D:
- Graphical 3D objects
- RenderingRMI
ProActiveJava3D AWT-Swing
server
client
client
client
client
RUN-TI
ME
S
O
F
T
Denis Caromel 5
Features of DivaGraphical objects:
• Avatars : user reprensantation --> 1 thread
• Autonomous active objects :• Droids, dogs, sheeps, etc. (open 3D model) --> 1 thread
• Passive objects (cube, sphere, etc.)
Interactions:• Collision, pickup and move around objects
Migration:• active objects live in the client
• migrate from one VM to another
No classical optimizations:• No point to point client communications
• No motion predictions
Denis Caromel 6
Demo
• 2 Pentium II (300 and 400 Mhz), 128 MB RAM
• Under NT
• One with a client + the server
• One with a client
Denis Caromel 7
Benchmarking such an application
• Hard to do
• Try anyway:
• Frames per second:
• Add a counter in the routine postRender () of Java3D
• Throughput : point to point, one way
• Number of communications
• We know the size of data transmited
The update time (server to clients) varies: 25 ms to 300 ms
Same run accross the virtual world: takes about 1.5 minute
Denis Caromel 8
Benchmark platform
Local:• bi Pentium II, 450 Mhz, 256 Mo ram,
• Matrox G200, no 3D card (DirectX)
• NT 4, Service Pack 3
• JDK 1.2.1
Distributed• 2 of those
• Ethernet Lan 10 Mb
Denis Caromel 9
Distributed testUpdate time (ms) 0 25 50 75 100 200 300Running time (ms) 77 719,00 79 718,00 79 047,00 79 463,00 113 250,00 152 203,00Frames 651,00 733,00 782,00 749,00 1 232,00 2 420,00Broadcasts 683,00 470,00 464,00 405,00 405,00 399,00
Frames per second 8,38 9,19 9,89 9,43 10,88 15,90Broadcasts/seconds 8,79 5,90 5,87 5,10 3,58 2,62Frames/boradcast 0,95 1,56 1,69 1,85 3,04 6,07Throughput[bytes/sec] 667,89 448,08 446,11 387,35 271,79 199,23
EXPERIMENTAL DATAS
CALCULATIONS
10
110
210
310
410
510
610
710
810
25 50 75 100 200 300
Update Time [ms]
Th
rou
gh
pu
t [b
yte
s\s
ec
]
8
9
10
11
12
13
14
15
16
17
Fra
me
s p
er
se
co
nd
Throughput [bytes/sec]
Frames per second
Left:
Better throughput, but
Too many updates,
Server is overloaded
Client cannot render
Right:
Too much lag
But good frames/s …
Best peformances:
75 ms of UT
10 Frames/s
4 Kb/s Thgh.
(client to server)
Denis Caromel 10
Time repartition of threads
70 %
30 %
Distribution
Java 3D
• OptimizeIt, thread repartition
•Java 3D : 30 % collision, 30 % Render, 15 % Traversal
Denis Caromel 11
Conclusion
• Low points for performances:• Throughput: only about 10 Kb/s (eff., and application) but
• RMI seems not to be a problem
• More costly: Collision detection, Rendering, Traversal of graphical objects
• Able to do:• 10 frames per second between distributed clients
• Update time of about 75 ms
• Perspectives:• Improvements after the benchmarks
• Needs more benchmarks (RMI, Java3D, etc.)
• No real threads priority, optimization --> Java3D 1.2 early 2000
Want to know more ? www.javagrande.org