|Subject:||Instructions: ARPACK build from source with Intel MKL LAPACK/BLAS|
|Date:||Fri, 3 Sep 2010 09:03:52 -0500|
I had a hard time getting ARPACK to work correctly with Intel's MKL and using the Intel compiler, so I thought it would be a good idea to document the procedure here; there doesn't seem to be a better place to put this. A thread of reference can be found here:|
The problem that I ran into was that I kept getting the following error:
src/DLD-FUNCTIONS/eigs.cc .............................. ** On entry to DLASCL parameter number 4 had an illegal value
when running "make check". I thought it was a build issue, but as it turns out there is a problem with the ARPACK code. Luckily someone else had already done the legwork for me. I'll post the procedure here and then the references that led me to this at the end. The root of the error is that ARPACK provides a subroutine called "seconds" which is also the name of a function in the intel libs. Renaming the function alleviates the issue.
1) Download arpack from here: http://www.caam.rice.edu/software/ARPACK/ as well as the patch to be applied to it. I don't know why the patch isn't just included in a new release, but it seems like ARPACK is no longer maintained so that might explain it.
2) Download and apply this patch http://mathema.tician.de/news.tiker.net/files/arpack-arscnd-3.patch.gz like so:
> cd ARPACK
> patch -p1 < /path/to/patch.patch
At this point you are ready to make ARPACK, after editing ARmake.inc to your liking. No need to mess with the BLAS or LAPACK settings in ARmake.inc, they are not actually linked in the libarpack library.
3) make all
4) Turn it into a shared lib:
> ar -x libarpack.a
> ifort -shared *.o -o libarpack.so
5) Copy to /usr/local/lib or wherever you'd like and then run "ldconfig", first making sure that /usr/local/lib is in /etc/ld.so.conf.d/*
So that's it.
Another thing to note is that Andreas Klockner(smart guy, he spent his time debugging and made the arscnd.f patch) has also modified ARPACK to use autotools to build, which removes ARmake.inc and does a much better/easier job of everything, including making the shared lib and installing it. He only appears to have made ARPACK 0.92 though, which includes the arscnd fix. It wasn't too hard to take his work and apply it to 0.96 though, and I have done so and tarred it up. If anyone is interested I will attach the tarball here, if that is possible.
|[Prev in Thread]||Current Thread||[Next in Thread]|