LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   failed to mention mpi libraries (https://www.linuxquestions.org/questions/linux-newbie-8/failed-to-mention-mpi-libraries-4175504690/)

sryzdn 05-12-2014 02:55 AM

failed to mention mpi libraries
 
Hi,

There a code, called BigDFT. I have tried to "configure" it with fortran mpif90 compiled through mpich-3.0.4 and I have compiled all mathematical libraries with the following paths:

Quote:

BLAS_LIBS= /home/Packages/BLAS/blas_LINUX.a
LAPACK_LIBS= /home/Packages/lapack-3.5.0/liblapack.a
BLACS_LIBS= /home/Packages/BLACS/LIB/blacsCinit_MPI-LINUX-0.a \
/home/Packages/BLACS/LIB/blacsF77init_MPI-LINUX-0.a \
/home/Packages/BLACS/LIB/blacs_MPI-LINUX-0.a
But, I always receive the following error:
Quote:

configure: error: "No blas library. Use --with-blas-path or check your Blas installation."
I'd be thankful if someone kindly help me solve this problem.

weibullguy 05-12-2014 12:04 PM

I'd start here --> http://bigdft.org/Wiki/index.php?title=Installation. However, it does seem the configure script is telling you how to solve the problem already.

sryzdn 05-12-2014 01:46 PM

Quote:

Originally Posted by weibullguy (Post 5169443)
I'd start here --> http://bigdft.org/Wiki/index.php?title=Installation. However, it does seem the configure script is telling you how to solve the problem already.

I have read all of it and I have already addressed the Blas library to the configure command and yet no success.

knudfl 05-12-2014 02:44 PM

BigDFT will accept "libblas.a" ( or libblas.so ? ),
so I guess you can make a symlink : $ ln -s blas_LINUX.a libblas.a


? Why don't you just install the default *blas-dev* / *lapack-dev* etc.
prerequisites with your package manager ? ?

-

sryzdn 05-12-2014 08:48 PM

Quote:

Originally Posted by knudfl (Post 5169518)
BigDFT will accept "libblas.a" ( or libblas.so ? ),
so I guess you can make a symlink : $ ln -s blas_LINUX.a libblas.a
-

I sure did test that too. Didn't work.

Quote:

? Why don't you just install the default *blas-dev* / *lapack-dev* etc.
prerequisites with your package manager ? ?
I have other packages installed that work with them and they are so interconnected. That's why to keep things organized I install all of them seperately.

btmiller 05-12-2014 11:13 PM

You can always look at config.log to see the source code of the test program that is causing configure to abort and the compiler command that the configure script is using to try to build it. That may give you some additional clues about what is missing (sometimes the error messages from autoconf/automake can be a bit misleading).

sryzdn 05-13-2014 12:28 AM

1 Attachment(s)
Quote:

Originally Posted by btmiller (Post 5169732)
You can always look at config.log to see the source code of the test program that is causing configure to abort and the compiler command that the configure script is using to try to build it. That may give you some additional clues about what is missing (sometimes the error messages from autoconf/automake can be a bit misleading).

Ok, I configured it as follows:

Quote:

./configure --with-blas-path="-L/home/sryzdn/Packages/BLAS" FC=/usr/local/bin/mpif90
yet, the config.log complains about not finding "lblas"?! I have enclosed the config.log. Could you please help me solve this problem?

knudfl 05-13-2014 12:54 AM

# 7 .

How about this :
`configure' will look for the "blas" that was used to build liblapack.a

Are you sure that blas_LINUX.a is the blas that liblapack.a was build with ?

-

sryzdn 05-13-2014 01:45 AM

Quote:

Originally Posted by knudfl (Post 5169760)
# 7 .

How about this :
`configure' will look for the "blas" that was used to build liblapack.a
-

It gives out same error.

Quote:

Are you sure that blas_LINUX.a is the blas that liblapack.a was build with ?
when I compiled lapack, I mentioned the following line in lapack "make.inc"

Quote:

BLASLIB = /home/sryzdn/Packages/BLAS/blas_LINUX.a
So, I think, yes, lapack was made with blas_LINUX.a.

ejspeiro 05-13-2014 11:37 AM

When I install the BLAS, I usually make sure the resulting .a file is called libblas.a due to the well-known linking convention.

Is this building process expecting a libblas.a?

\m/

sryzdn 05-13-2014 11:52 AM

Eduardo,

As I have mentioned in my posts above the .a file is "Blas_linux.a" in the path: "/home/sryzdn/Packages/BLAS"
Looking at what bigdft site says, I don't know why "configure" does not recognize the path of the libraries I mention?!

knudfl 05-13-2014 11:57 AM

# 10 .

Seems libblas.so was used, in this example ..
Code:

$ ldd bigdft                                 
        liblapack.so.3 => /usr/lib/atlas/liblapack.so.3 (0xb71db000) 
        libblas.so.1.1 => /usr/lib/libblas.so.1.1 (0xb7145000)       
        librt.so.1 => /lib/i686/librt.so.1 (0xb713c000)               
        libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0xb7043000)   
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6fe4000)             
        libquadmath.so.0 => /usr/lib/libquadmath.so.0 (0xb6f6c000)   
        libc.so.6 => /lib/i686/libc.so.6 (0xb6dbf000)                 
        libf77blas.so.3 => /usr/lib/atlas/libf77blas.so.3 (0xb6da0000)
        libcblas.so.3 => /usr/lib/atlas/libcblas.so.3 (0xb6d7f000)   
        libatlas.so.3 => /usr/lib/atlas/libatlas.so.3 (0xb6a5d000)


weibullguy 05-13-2014 02:14 PM

I am able to configure against the ACML and Netlib BLAS on my machine. With a known, broken ATLAS BLAS library, I can't because BigDFT is unable to use dcopy (same error as your config.log). I would look more closely at your BLAS library. Perhaps try to build BigDFT against a different BLAS library and see if you have any success.

sryzdn 05-13-2014 08:53 PM

Would you please send me the command by which you have configured BigDft?

weibullguy 05-14-2014 01:47 PM

I was simply using
Code:

FC="mpif90" F77="mpif77" CC="mpicc" ./configure
But my installation of BLAS libraries differs from yours. I have 64-bit ACML, Netlib, Goto2, and ATLAS BLAS libraries installed in /usr/local/lib64/blas/{acml,netlib,goto,atlas}; 32-bit libraries in /usr/local/lib/blas/{acml,netlib,goto,atlas}. I use a script to select the BLAS implementation I want to use (think Gentoo's eselect) which creates symlinks in /usr/local/lib64 (/usr/local/lib). In addition, I create pkgconfig files for each implementation and my script also creates symlinks to the correct *.pc file.

Since I use the pkgconfig files, I don't need to pass the --with-blas-path to the BigDFT configure script. However, if I pass
Code:

--with-blas-path="/usr/local/lib64/netlib"
, the BigDFT configure script properly links against the Netlib BLAS library even if I have another implementation selected "system-wide." I would still suspect your BLAS library as the problem. Since you mention make.inc in an earlier post, I'm guessing you are using Netlib (Reference) BLAS.

Again, I would recommend trying to configure BigDFT against BLAS/LAPACK installed from your package manager to see if it works. If successful, this is more evidence your local BLAS library is borked. If not, it gives us more information to troubleshoot with.


All times are GMT -5. The time now is 04:37 AM.