HiFiLES / HiFiLES-solver

High Fidelity Large Eddy Simulation Solver
Other
172 stars 131 forks source link

BLAS="CBLAS" ? when i change the configure_run.sh #102

Open sowhatgavin opened 8 years ago

sowhatgavin commented 8 years ago

Hi,

i'm trying to install "HiFiLES".

when i changed the configure_run.sh , i found that:

BLAS="ATLAS" # ATLAS, STANDARD, ACCLERATE, or NO

i intall "CBLAS" before i install "HiFiLES", so i want to know BLAS=? 3Q

1. if i write BLAS="CBLAS"

i get BLAS support:
MPI support: YES CUDA support: NO TecIO support: NO

I'm not sure if BLAS is supported. I think no.

2. if i write BLAS="ATLAS"

i get error:

checking for /vol6/home/wpsong/lib/CBLAS/lib/libcblas.a... yes checking for /vol6/home/wpsong/lib/CBLAS/lib/libatlas.a... no configure: error: BLAS linking requested but library files not found (libcblas.a, libatlas.a).

I think it is wrong.

3. if i write BLAS="STANDARD"

i get error

CXXLD ../bin/HiFiLES $HOME/lib/CBLAS/lib/libcblas.a(cblas_daxpy.o): In function cblas_daxpy': cblas_daxpy.c:(.text+0x36): undefined reference todaxpy_' $HOMElib/CBLAS/lib/libcblas.a(cblas_dgemm.o): In function cblas_dgemm': cblas_dgemm.c:(.text+0x152): undefined reference todgemm_' cblasdgemm.c:(.text+0x249): undefined reference to `dgemm' make[1]: *\ [../bin/HiFiLES] Error 1


So, please help me if you have met this problem. Thanks.

P.S My English is so so. Sorry.

mlopez14 commented 8 years ago

Is the file libatlas.a located in /vol6/home/wpsong/lib/CBLAS/lib/? If not, there must have been an error during the BLAS installation or this directory does not have all of the files.

Specifying a form of BLAS installation (say STANDARD) while having a different BLAS installation (say ATLAS) will lead to the errors of the type "$HOME/lib/CBLAS/lib/libcblas.a(cblas_daxpy.o): In function cblas_daxpy': cblas_daxpy.c:(.text+0x36): undefined reference todaxpy_'". So you will need to specify the type of installation you do have.

If you have installed some form of BLAS, find the directory in which library files

libatlas.a libcblas.a libf77blas.a libf77refblas.a liblapack.a libptcblas.a libptf77blas.a libptlapack.a libtstatlas.a

are installed. This directory would go in the line BLAS_LIB= in configure_run.sh.

Then find where files like cblas.h and clapack.h are. This directory would go in the line BLAS_INCLUDE= in configure_run.sh.

For example, in my case, BLAS_LIB="/usr/local/atlas/lib" BLAS_INCLUDE="/usr/local/atlas/include"

Just in case, here's a brief tutorial on how to install ATLAS on Ubuntu: https://github.com/HiFiLES/HiFiLES-solver/wiki/Installing-ATLAS-in-Ubuntu

sowhatgavin commented 8 years ago

Thank mlopez14 very much.

Let me introduce my problem now. Thanks for reading.

I need to install HiFiLES-solver with BLAS .

My hardware decides that I only have two choices: 1. ATLAS 2. STANDARD.

But when i try to install ATLAS , i need the root user to change associated settings. But now i don't have root permission.

So i have to choice STANDARD now.

My question is

if STANDARD is CBLAS?

what should i do if I got error when I write BLAS="STANDARD" 、installed CBLAS and setting the right path to libcblas.a ?

Thank you very much ! Thank you very much !

sowhatgavin commented 8 years ago

when i install CBLAS , i only got libcblas.a in ~/lib and cblas.h in ~/include

maybe i need to install lapack first if i try to choice CBLAS?

or when i write BLAS='STANDARD', what BLAS library should be installed fisrt?

Thank you !

mlopez14 commented 8 years ago

You can install ATLAS locally without being root.

The only part that should require sudo access is the make install.

By the time you reach that step, the code is already compiled. You'll need to find where the compiled libraries and the include files are and type the names of those folders in HiFiLES's config_run.sh file.

Post the error messages you get.

In any case, because these questions are related to BLAS and ATLAS, we might not know the definitive answers, so I would encourage you to find forums where these questions are discussed.

sowhatgavin commented 8 years ago

Thank you very much !

when I try to install ATLAS, I meet an error

Parallel make command configured as '$(MAKE) -j 24' CPU Throttling apparently enabled! It appears you have cpu throttling enabled, which makes timings unreliable and an ATLAS install nonsensical. Aborting. See ATLAS/INSTALL.txt for further information xconfig exited with 1

And then, I readed the pdf.

2.2 Turn off CPU throttling when installing ATLAS Most OSes and hardware now turn on CPU throttling for power management even if you are using a desktop machine. CPU throttling makes pretty much all timings completely random, and so any ATLAS install will be junk. Therefore, before installing ATLAS, turn off CPU throttling. ATLAS, turn off CPU throttling. For most PCs, you can switch it off in the BIOS (eg., on my Athlon-64 machine, I can say ”No” to ”Cool and Quiet” under ”Power Management”). Most OSes also provide a way to switch off CPU throttling, but that varies from OS to OS.

So I think that I need to turn off CPU throllling.

But if I don't have the root permission, I don't know how to close it.

In a word, I believe that I have to get the root permission and turn off CPU throlling so that I can install the ATLAS.

Maybe I am wrong, so I need your help to tell me what should I do now.

Thank you again !


If I can't get the root permission, I want to try installing the CBLAS lib instead.

So my another question is what should I write after "BLAS= " if I want to install CBLAS ?


In the last, I'm very appreciated your advice. And I will try to find forums.

If you know some forums maybe helpful, please tell my.

Thank you for your help,I appreciate your helping me

mlopez14 commented 8 years ago

I don't know off the top of my head which BLAS version you should install in this case.

Which kind of cluster are you using?

sowhatgavin commented 8 years ago

Thank you for your answer.

The blas is 3.5.0 . I download it from

http://www.netlib.org/blas/

The cblas also download from it.


I'm not sure how to describe the cluster.

The operating system is 64-bit Linux.

I think it should be called just HPC (High Perfermance Computing) system.


when i try to install HiFiles with ATLAS, I met that

checking for /vol6/home/wpsong/lib/CBLAS/lib/libcblas.a... yes checking for /vol6/home/wpsong/lib/CBLAS/lib/libatlas.a... no configure: error: BLAS linking requested but library files not found (libcblas.a, libatlas.a).

So, I think that when i use ATLAS, I should use libatlas.a and libcblas.a together.

Similarly, if I use STANDARD, I should use libblas.a and libcblas.a together , is it right? I did't find the place to specify the libblas.a path.

when i write "BLAS=STANDARD" in the configure_run.sh and ./configure_run.sh

I got:

checking for /vol6/home/wpsong/lib/CBLAS/lib/libcblas.a... yes

but I did't find that the "configure" check the libblas.a.

the libblas.a is needed, right?


When i met the error like this:

$HOME/lib/CBLAS/lib/libcblas.a(cblas_daxpy.o): In function cblas_daxpy': cblasdaxpy.c:(.text+0x36): undefined reference todaxpy'

I try to find the todaxpy_ and it is founded in the "libblas.a" but not in "libcblas.a".

So I think that the 'libblas.a' is also useful, how to specify ?

Thank you very much !

please forgive my wordy.

Best wishes !

mlopez14 commented 8 years ago

You have installed STANDARD BLAS. The error you encounter is due to a problem in the installation of CBLAS because the error is originating in a CBLAS function. Let us know if you get it working.