[I have renamed the thread to forestall mailer problems.]

I have made some progress in producing a better version of LAPACK for J,
but I am not quite there yet on Windows.

There are significant performance improvements to be gained from

(a) Using the FORTRAN sources rather than the f2c version.
(b) Locally optimizing the BLAS (which requires local recompilation,
unless you can get ATLAS to work, which I can't).

Of these optimizations, (b) seems to get more significant on more modern
computers.

I can do this on Linux, and successfully call the libraries from J.

It is more of a problem on Windows, because most J users do not have a
Windows f77 compiler, and you need one for step (b).  The g77 compiler is
freely available: it's just a question of getting it to work.

Cygwin (which includes g77) can compile to Windows DLLs: however, it
requires extensive runtime support (at least cygwin1.dll on the search
path, and possibly more), and there are always filesystem renaming issues.

I have now switched to using g77 under MinGW to generate native Windows
DLLs with no runtime support.  I believe these will be callable from J and
that the process can be reasonably automated.   For the rich and
impatient, many commercial vendors sell a product which will do what I am
attempting.

There is a similar issue in the Windows version of FFTW.  FFTW uses a
mechanism called "wisdom" to dynamically optimize performance, much as is
done statically when optimizing the BLAS.  Limitations of Windows DLLs
preclude the generic FFTW code from using this, and since the FFTW
developers hate Windows, they are not doing anything about it.  There is a
workaround that requires recompilation and probably slightly different
packaging for use with J.

If anyone has any suggestions, they will be appreciated.  It took me a
long time and a lot of dead ends to realize that MinGW was the way to go. 
I use Linux most of the time, and seldom have to deal with these issues,
but I know most J users use Windows.  I don't know anything about the Mac.

Hopefully this will lead to J being more useful for numerical analysis,
and in particular to compete with MATLAB in certain arenas, especially
since MATLAB largely relies on LAPACK.

Best wishes,

John




----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to