I have no more ideas how to make theincluded LAPACK in Goto-BLAS (Ver. 2)working directly, with LAPACKE or kompilingCLAPACK with Goto-BLAS! I have a dualXEON E5645 system with 25 threads usingopensuse 11.4. The Goto-BLAS itself seems towork, but no LAPACK-Version with it.These libraries compile, but any code fails with'segmentation fault' as lapack_testing.

No, you can delete the thread: Goto-BLAS does not work it's no LAPACK-problem.I have some unknown problem that causes Goto-BLAS and LAPACK 3.3.1to sometimes work (diagonalize) and sometimes not. It's probably some "thread"problem I can not solve. Maybe somebody else has the same problem (dual-Westmere 64bit).

Thanks for "Just calling" the F77-dlamch_

Michael

P.S.: If you still want to look I called dsyevx_ as: dsyev_(&job,&inp,&ndim,amat.begin(),&ndim,dvec.begin(),dtmpvec.begin(),&ndtmp,&nstatus); with char job='V', inp='U'; int ndim = 511, ndtmp, nstatus dvec.begin() dtmpvec.begin() are double * and amat.begin() is double * to a matrix in Column-Major order as a double[].

The following instructions assume a hexacore (Nehalem/Westmere) system with 64bit adresses.

1. Install Goto-BLAS by editing "Makefile.rule":TARGET=NEHALEM, CC=gcc, FC=gfortran, BINARY=64, USE_THREAD=1, NUM_THREADS=6call the lib "libgoto6t.a" and compile some others "libgotoXt.a" as above with NUM_THREADS=X.Copy them to "/usr/local/lib64". If you use too many threads (e.g. 12) Goto-BLAS will jump outwith "sementation fault"! You can use NUM_THREADS=11 and call that BLAS "libgoto11t.a".This will be your fastest BLAS, but sometimes jumps out (try again).

The testers should work, but they call Goto-BLAS very fast! It's better to usea Goto-BLAS lib with less or equal to half of the number of threads (e.g. libgoto6t.a)make lapack_testingmake blas_testing Call it "liblapackgoto.a" and copy to "/usr/local/lib64".

3. You can link the 6 thread-Goto-BLAS with:"-llapackgoto -lgoto6t -lpthread -lgfortran"or your fastest:"-llapackgoto -lgoto11t -lpthread -lgfortran"that sometimes "jumps out of the threads", but is unbeatable fast!

No need to compile CLAPACK or LAPACKE - just call the the Fortran-functiondirectly! Remember to call them two times:- work space query for arrays with unknown length: run with worklength=-1- resize workspace array to length found as first entry in your work array in test-length (e.g. 1)- run the function.

4. Use your own LAPACK-header (learn from "lapacke.h") to declare the functions you need:

These 3 functions can be called in main now. For example:int main(){...char sw = 'S';double tol = 2.0*dlamch_(&sw);...}(sorry no example for dsyev_ and zheev_)

Even complex functions work fine now - just give the pointer tothe first element of your complex<double> array stored as a 1DC-Array in Column-Major order. It is even possible to compileall for long array indices.(See: Algorithm/Data -> How large matrix can LAPACK support)