By the way, regarding those studies which purport to show that java is as fast is C++:  it is easy to construct a test that does not require much garbage collection for a java implementation.  In reality, large agent-based  simulations written in java garbage collect.  It is therefore easy to find studies that support either side of the argument regarding java performance.

Here is one report that shows performance results that are more commiserate with my own personal experience:

From: http://verify.stanford.edu/uli/java_cpp.html : a bit dated but still relevant --

Here the results for my 400 MHz Pentium II PC running RedHat 5.2 / 6.1:

Version Execution Environment Execution Time
Java array JVM 1.1.5 v7 / 1.2 pre-v2 / 1.2.2 rc2 192s / 96s / 118s
  HotSpot Server 1.3.0 / IBM Classic VM 1.3.0 16.7s / 10.7s
  HotSpot Server 1.3.1beta-b15 16.3s
Java Vector JVM 1.1.5 v7 / 1.2 pre-v2 / 1.2.2 rc2 698s / 481s / 543s
  HotSpot Server 1.3.0 / IBM Classic VM 1.3.0 46.5s / 71.5s
  HotSpot Server 1.3.1beta-b15 45.6s
Java ArrayList JVM 1.2 pre-v2 / 1.2.2 rc2 - / 260s
  HotSpot Server 1.3.0 / IBM Classic VM 1.3.0 18.8s / 62.8s
  HotSpot Server 1.3.1beta-b15 18.8s
C++ pointer gcc version egcs-2.90.29 / 2.95 3.6s / 3.3s
C++ object gcc version egcs-2.90.29 / 2.95 5.7s / 3.9s
C++ vector gcc version egcs-2.90.29 / 2.95 6.0s / 5.9s
C++ STL gcc version egcs-2.90.29 / 2.95 3.8s / 3.9s


Here more results for a Sun Ultra 10 running Solaris 8 (SunOS 5.8).

Version Execution Environment Execution Time
Java array HotSpot Server VM 1.3.0 17.4s
Java ArrayList HotSpot Server VM 1.3.0 26.3s
C++ pointer Sun CC 5.1 5.22s
  gcc 2.95.2 5.84s
C++ STL gcc 2.95.2 6.55s


--Doug

On 10/7/06, Douglas Roberts <[EMAIL PROTECTED]> wrote:
Hi, Gunther. 

I don't want to start any language wars either.  I have seen some of these java performance studies as well... Regardless, I have yet to see a well-written real-world java application that can outperform an equivalent well-written C++ app, java garbage collection being one of the numerous reasons why.

There is, after all, a reason that there are so few java apps running on any of the TeraGrid HPC resources.

One limit of the HPJava environment is that it is primarily for use with data parallel or SIMD (Single Instruction Multiple Data) synchronous applications.  This type of parallel application is almost by definition *not* an agent based simulation. In reality most if not all distributed agent based simulations are MIMD (Multiple Instruction Multiple Data) asynchronous applications when implemented in an HPC environment.  HPJava will provide no help here.

--Doug

--
Doug Roberts, RTI International
[EMAIL PROTECTED]
[EMAIL PROTECTED]
505-455-7333 - Office
505-670-8195 - Cell

On 10/7/06, Günther Greindl < [EMAIL PROTECTED]> wrote:
Hello Doug,

I guess your friend is aware of this:

http://www.hpjava.org/

(a Java wrapper to interface with a native MPI package).
What speaks against this?

>   2. java runs 3-4 times slower than C, C++, Fortran, and machine time
>   is expensive, and finally

There have already been many studies (also published on this
list ;-) that this is a prejudice. Java apps can be made to
run just as fast as C/C++ - if you take care programming.
(I _don't_ want to start a language war!)

Best Regards,
Günther


============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org





--
Doug Roberts, RTI International
[EMAIL PROTECTED]
[EMAIL PROTECTED]
505-455-7333 - Office
505-670-8195 - Cell
============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to