Figure 6 shows results from running the Mandelbrot application on 17
200MHz Pentium Pro machines (1 server and 16 workers) connected by 10Mbit
Ethernet, running Windows NT 4.0, Netscape 4.03 on the clients, and Sun's JDK
1.1.6 JIT compiler on the server. In this experiment, the target work was an 800x800 pixel array, divided into 256 square chunks. To represent different computation granularities, we tried four different target ranges with different average depths (iterations per pixel). For comparison, ideal speedup was computed using the sequential computation speed on a single unpartitioned 800x800 array with maximum depth.
Table 2 shows a comparison of absolute speeds from sequential Java and native C executions of the same Mandelbrot code. Here, we see that with just-in-time (JIT) compilation, Java was actually faster than unoptimized C code, while only slightly slower than optimized C code (compiled with djgpp's gcc [8] using the -O option that produced the best result). In another test, our RC5 code was about 8 times slower than distributed.net's version. While not as impressive, this is still notable, considering that distributed.net's code was hand-optimized using processor-specific assembly code, while Java does not even directly support some necessary operations such as bitwise rotates.