next up previous
Next: 5 Issues Up: ParaWeb: Towards World-Wide Supercomputing Previous: 3.2 The Java Parallel

4 An Example Application

 

As a test of our prototype implementation (using the parallel class libraries approach) we experimented with a simple parallel matrix multiplication program (blocking was not used). The program was executed on a network of 20 SUN SparcStation-10's connected by ethernet.

The execution time (in seconds) and speedup obtained using various numbers of machines to multiply two 400 by 400 matrices are shown in Table 1. The execution time using one machine was obtained by executing a sequential version of the program.

   table80
Table 1: Matrix Multiplication Performance (execution time in seconds).

These results demonstrate the potential of this approach. Using a simple initial prototype we've been able to attain substantial decreases in execution times and good speedups. Additionally, the relative simplicity with which remote threads can be created and ease with which data can be communicated between machines (there are no concerns with respect to different architectures or the operating systems) offer significant incentives to continue pursuing this approach. However, simply examining speedup numbers can be quite misleading. This same 400 by 400 matrix multiplication application, written in C and compiled to native machine code executes on the same platform in 58 seconds. This is about 16 times faster than the sequential Java program can be interpreted on the same platform. Note that although Table 1 suggests that 18 machines would have to be used by the current ParaWeb system just to be able to execute as quickly as the optimized sequential C program, the development of high-performance interpreters and just-in-time compilers promise to improve this drastically.

We also believe that the incentives for some people to write Java programs will become strong enough that comparisons with the execution time of C or C++ programs will be of theoretical interest only. It is our goal to provide an environment for easily writing and efficiently executing high performance Java applications.


next up previous
Next: 5 Issues Up: ParaWeb: Towards World-Wide Supercomputing Previous: 3.2 The Java Parallel

Tim Brecht
Mon Jul 21 16:39:55 EDT 1997