Re: Java for numerical methods
Arne VajhHj wrote:
Rob McDonald wrote:
If you Google around, you'll find that there was a lot of activity
surrounding the use of Java for numerical methods around ''99-'00.
There was active R&D into support libraries, high and low level.
Parallelization work, HPC, threading, MPI, etc. There were also
numerous research projects into language extensions, experimental
compilers, etc. There were conferences, working groups, active
mailing lists, etc.
It seems that it all came to an abrupt end. These libraries and
projects still exist, but they've gone stale. No updates for six or
seven years. Occasionally you'll find something small from 2003 or
so, but still.
A lot has happened to Java since 2000 (circa J2SE 1.2). The language
and the JVM's have progressed greatly. Computer hardware has
progressed as well.
So, the question is: What happened?
Two comments:
1) I don't think it is that bad.
http://dsd.lbl.gov/~hoschek/colt/ last release sep 2004
http://commons.apache.org/math/ last release dec 2005
2) These algorithms does not change much. If they are implemented
in Java, then there are no need to do anything further. I belive
the Fortran and C programmers mostly use libraries written in the
1980's.
I tried using Colt to replace invoking Matlab through a ProcessBuilder,
for computing truncated singular value decomposition. At least in my
test cases, for anything other than tiny matrices, the Matlab strategy
was faster. Part of the issue may be that Matlab implements a very wide
range of algorithms, including specific support for truncated SVD on
sparse matrices. The only way I could find with Colt was to compute the
full SVD and ignore the extra data.
From my point of view, there is still work to be done.
Oddly enough, the Matlab strategy is also logistically simpler, because
Matlab is installed on every computer on which I have any interest in
running my application, including computers I don't administer.
Patricia