[petsc-users] Make PETSc not link with systemwide Atlas

Ondřej Čertík ondrej.certik at gmail.com
Thu Jun 20 18:57:33 CDT 2013


Hi,

I want to strictly link to my own Lapack installed in $LAPACK:

$ ls $LAPACK/lib
cmake  libblas.so  liblapack.so  pkgconfig

So I configure petsc with:

$PYTHON/bin/python ./config/configure.py --with-pic --with-clanguage=C
--with-cc=$MPI/bin/mpicc --with-mpi-compilers --with-shared-libraries
--prefix=$ARTIFACT --with-fortran=0 --with-blas-lapack-dir=$LAPACK/lib

The full log is attached with exact paths etc. The problem is that
petsc still picks up systemwide Atlas, as can be seen from the end of
configure.log:

BLAS/LAPACK: -Wl,-rpath,/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib
-L/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib -llapack
-Wl,-rpath,/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib
-L/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib -lcblas
-Wl,-rpath,/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib
-L/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib -lf77blas
-Wl,-rpath,/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib
-L/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib -latlas

as well as from ldd:

ondrej at cekees-MacBookPro-ubuntu:~/repos/python-hpcmp2$ ldd
opt/petsc/zlfe/lib/libpetsc.so
    linux-gate.so.1 =>  (0xb7742000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb672d000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6712000)
    liblapack.so =>
/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib/liblapack.so
(0xb5e6c000)
    libf77blas.so.3 => /usr/lib/libf77blas.so.3 (0xb5e4d000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb5e0a000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5e05000)
    libmpich.so.10 =>
/home/ondrej/repos/python-hpcmp2/opt/mpich/c7uq/lib/libmpich.so.10
(0xb5b91000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb59dd000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb59bb000)
    /lib/ld-linux.so.2 (0xb7743000)
    libblas.so =>
/home/ondrej/repos/python-hpcmp2/opt/lapack/xq2x/lib/libblas.so
(0xb591b000)
    libgfortran.so.3 => /usr/lib/i386-linux-gnu/libgfortran.so.3 (0xb5823000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5806000)
    libcblas.so.3 => /usr/lib/libcblas.so.3 (0xb57e5000)
    libatlas.so.3 => /usr/lib/libatlas.so.3 (0xb5504000)
    libmpl.so.1 =>
/home/ondrej/repos/python-hpcmp2/opt/mpich/c7uq/lib/libmpl.so.1
(0xb54fe000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb54f5000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb54f1000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb54e9000)
    libquadmath.so.0 => /usr/lib/i386-linux-gnu/libquadmath.so.0 (0xb5471000)

as you can see, it actually does link to my blas/lapack, but also to
systemwide cblas and atlas...

I want the ldd to look like this (my other machine):

ondrej at kittiwake:~/repos/python-hpcmp2((bca3099...))$ ldd
local/lib/libpetsc.so         linux-vdso.so.1 =>  (0x00007fff1dd1f000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe85f46f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007fe85f252000)
    liblapack.so =>
/auto/netscratch/ondrej/opt/lapack/xq2x/lib/liblapack.so
(0x00007fe85e768000)
    libblas.so =>
/auto/netscratch/ondrej/opt/lapack/xq2x/lib/libblas.so
(0x00007fe85e4a8000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe85e1ac000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe85dfa7000)
    libmpich.so.10 =>
/auto/netscratch/ondrej/opt/mpich/c7uq/lib/libmpich.so.10
(0x00007fe85db3d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe85d77e000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe85d55f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe8609a9000)
    libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
(0x00007fe85d248000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe85d032000)
    libmpl.so.1 =>
/auto/netscratch/ondrej/opt/mpich/c7uq/lib/libmpl.so.1
(0x00007fe85ce2b000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe85cc23000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe85ca1f000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
(0x00007fe85c819000)
    libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x00007fe85c5e3000)


How can I do that? I read here:

http://www.mcs.anl.gov/petsc/documentation/installation.html#blas-lapack

that maybe I should try to use the "--with-blas-lapack-lib" option.
But I wanted to first check if I am doing something wrong, or what the
intended way to setup Lapack is.

Thanks for any tips,
Ondrej Certik
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure.log.gz
Type: application/x-gzip
Size: 204682 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130620/f85e1ed2/attachment-0001.bin>


More information about the petsc-users mailing list