C3D 

A distributed raytracer for benchmarking Java RMI & Serialization 

Authors: Denis Caromel   Florian DOYON   Wilfried Klauser   Julien Vayssiere   Sections:
Description
Basic tasks benchs
Overall execution results
Application size
Credits
Donload and Run

Description

First, have a look at the interface of C3D.

C3D is a Java benchmark application that measures the performance of a 3D raytracer renderer distributed over several Java virtual machines using Java RMI. This benchmark gives indication of the performance of the serialization process and Java RMI itself. The benchmark is an automated version of C3D, which is both a collaborative application and a distributed raytracer: users can interact through messaging and voting facilities in order to choose a scene that is renderer using a set of distributed rendering engines working in parallel. Near-linear speedup is achieved with up to half a dozen rendering engines running in parallel and communicating using Java RMI.

A similar application was also developped with the ProActive PDC Java Library (formerly Java//, Java Parallel ) a Java library to ease the programming of distributed, concurrent and parallel applications.

Basic tasks benchmarks

We did perform some basic benchmarking tests in order to evaluate the basic communication cost of RMI. These tests are very simple: we measure the time elapsed after 100 calls to a method of a 'remote' object and divide it by 100 to get the average time.

Same VM
Same Host
RMI
void2.0
int3.24
Object3.86
Another VM
Same Host
RMI
void1.3
int 1.95
Object 4.31
Another VM
Another Host
RMI
void11.07
int49.82
Object49.82
Execution time measured in milliseconds.


Overall execution results :

The benchmarks were run on the following platforms: Ultra Sparc 5, Sun Enterprise 450, Pentium Pro 200, on both homogeneous and heterogeneous clusters, and on both Ethernet 10 and 100 Mbits/s.

Here are the results for a platform of Ultra Sparc 5. Each workstation had the following characteristics:

The following figures can be found:

These tests have been executed on complex scenes [8 balls, 5 lights], in order to increase CPU time instead of communication time. The Overall execution time curve and the speedup curve show C3D RMI 's good performances and scalability over the network.

Speedup formula: Speedup = Sequential time / Parallel time



Figure 1 - Overall execution time in ms.


Figure 2 - Speedup curve


# of enginesRMI
131839
215789
311342
48698
57248
66832
Execution time measured in milliseconds

Speedup, Problems, and Solutions:

First, although not measured, it is important to notice that all the collaborative aspects and synchronizations appeared to be instantaneous for users. That demonstrates the capability, based on RMI, to develop interactive applications over the Internet. Also, we can observe good speedup up to 5 or 6 machines, which is already quite interesting and useful. The results were quite consistent on all tested platforms. This brings and explain the problems encountered when trying to use more machines.

On all platforms, when the number of machines reaches around 10, the speedup get very poor, and at some point below 1. Moreover, this fade of speed up occurs at the same point whatever the network is (10 or 100 Mbits/s). This exhibits on a real-size application that the RMI implementation, and mainly the serialization, is the main bottleneck here, rather than the transport and network itself. Improvements of this aspect, as discussed and presented in the sections above should make it possible to easily use quite a large number of workstations on a standard network to build parallel applications with good speed up.


Application Size

A Here are some information about the size of the program and the amount of work the programmer has to produce in order to code this rmi application.

RMI
# of lines3177
# of source files22
# of class files25
Total classes size [Kb]96

Credits

C3D was mainly developed by Wilfried Klauser and Florian Doyon at INRIA Sophia-Antipolis under the supervision of Denis Caromel. Additional coding and final packaging were provided by David Sagnol and Julien Vayssière. Thanks to Bartosz Milewski and ReliSoft for the permission to use and modify the source code of their Java raytracer.

This experiment was partly sponsored by       and is part of the    Java Grande Forum www.javagrande.org



Feedback

We appreciate your feedback on any aspect of this benchmark application: relevance, implementation, ease of installation, results, etc. You can send your feedback to Denis Caromel,  Julien Vayssière

Since February, 16th, 1999, you are our    th   visitor.
Thanks for visiting!


This page is maintained by Denis Caromel.