22 Jul 2007

Java floating point performance

OK, so it's not exactly FPGAs but we use Java a great deal for writing systems including financial models. Now many people believe that Java floating point performance still lags C++ significantly but in reality it's pretty close. Given the significant productivity differences, in general you might as well use Java, especially if the maths is not matrix based. If it is matrix based, Java's lack of support for the modern processor instruction fused multiply acc/accumulate (ie do both a multiply and an add at the same time -- added to processors specifically for matrix math since it is such an important operation), can mean a 50% drop in performance compared to an optimised C++ / C99 version.

I've been harping on about this for years (for background see here and here), but I've just noticed a Java fmac bug report that you can vote on (and a related Java maths bug report). So why not dust off that Sun Developer (or JDC or whatever) login and go vote for something that could make a huge difference to Java adoption in the numerical finance world.