Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2008

Tip: Looking for answers? Try searching our database.

Java for numerical methods

Thread view: 
Rob McDonald - 05 Jan 2008 18:49 GMT
I'm asking here instead of sci.math.num-analysis because I'd like
responses biased pro-Java instead of bias against.

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?

          Rob
Arne Vajhøj - 05 Jan 2008 20:09 GMT
> 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.
[quoted text clipped - 14 lines]
>
> 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.

Arne
Patricia Shanahan - 05 Jan 2008 20:49 GMT
>> 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.
[quoted text clipped - 26 lines]
>     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
H.L - 05 Jan 2008 20:47 GMT
> I'm asking here instead of sci.math.num-analysis because I'd like
> responses biased pro-Java instead of bias against.
[quoted text clipped - 19 lines]
>
>            Rob

I have dealt with HPC as well as Java. I am not really biased against
Java, but it is inherently slow for several reasons. That's why I think
that it suits applications where computational speed is a factor rather
poorly.
Mark Thornton - 05 Jan 2008 22:19 GMT
> I'm asking here instead of sci.math.num-analysis because I'd like
> responses biased pro-Java instead of bias against.
[quoted text clipped - 19 lines]
>
>            Rob

Work on concurrency continues (see
http://g.oswego.edu/dl/concurrency-interest/). The lack of efficient
complex numbers, convenient multidimensional arrays and operator
overloading have probably led quite a few to move on to other languages.

Mark Thornton
Roedy Green - 06 Jan 2008 03:02 GMT
On Sat, 5 Jan 2008 10:49:02 -0800 (PST), Rob McDonald
<rob.a.mcdonald@gmail.com> wrote, quoted or indirectly quoted someone
who said :

>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?

Numerical libraries don't need updates. The new language features
don't change the way you code low level arithmetic.  I talked with
Bill Joy some years ago.  He was keen on a complex type, actually a
generalization.  When that comes, many libraries will be rewritten to
use it.

I think what happened is established libraries were ported to Java.
Once that happened there was nothing to do.  
Signature

Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com

Rob McDonald - 07 Jan 2008 06:36 GMT
Thanks for all the input,

I wish I could believe it is just a solved problem and that activity
isn't needed.

There are some very mature libraries in C and Fortran which change
very little.  However, they are very complete and have active user
communities.

The Java libraries I've found are incomplete (by reading their to-do
list and list of unimplemented features), and the communities are
ghost towns.  None of them appear to have reached the maturity of a
product in deep-maintenance-mode.

I think a better comparison is C++ (OO, younger, language still
changing, etc).  There are a great number of libraries under active
development, with vibrant communities.

Someone said language changes don't push library updates.  I agree
that they do not require it, but they do give opportunity for
advances.  The changes to the concurrency library in JSE5 are
significant enough to warrant revisiting the threading in existing
libraries, or possibly new libraries to exploit new techniques.  There
is a C++ library (http://www.oonumerics.org/blitz/) which exists
purely to take advantage of advances allowed by the introduction of
Template programming in C++.

This of course ignores the simple fact that numerical methods is an
active research area.  There are always new things to be done.  It may
be that researchers in the field still choose to do their new work in
Fortran, C, and C++ rather than Java.

             Rob


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.