About me

Friday, April 22, 2016

Compile SIESTA

I have to say compile the siesta is not a good experience for me. But when I go through it, I felt it's worth because it push me to understand the process to "make" a program.
Anyway, the error happened when linking the linear algebra libraries (BLAS BLACS LAPACK SCALAPACK). In my opinion, the time I felt I was on the right track to solve the problem is when I compile these packages from official website rather than install them from Ubuntu software center.

========= For Serial version =========
cd /to/siesta/folder/
cd Obj/
../Src/obj_setup.sh
../Src/configure
make siesta

If you encounter this problem:
 m_ts_aux_rout.o: In function `csolveg':  
 /home/alibaba/packages/siesta-3.0-b/Src/m_ts_aux_rout.F:344: undefined  
 reference to `zgesv_'  
 collect2: ld returned 1 exit status  
 make: *** [transiesta] Error 1  
Go to this page https://www.mail-archive.com/siesta-l@uam.es/msg00532.html


========= For Parallel version =========
First prepare linear algebra packages
BLAS & LAPACK can follow this webpage
http://ab-initio.mit.edu/wiki/index.php/Template:Installing_BLAS_and_LAPACK

ScaLAPACK
Down load the package from http://www.netlib.org/scalapack/
Compile it

If you encounter a problem about "librefblas.a"
Solve it by this website http://askubuntu.com/questions/564584/how-can-i-get-librefblas-a-on-ubuntu-14-04-1-lts-trusty

After compile those package you will get *.a file in each directory.
Go into the siesta Obj folder
Assign the correspondent directories to macros in arch.make file.
https://www.researchgate.net/post/Problem_to_run_Siesta_in_Parallel_Anyone_know_what_is_going_on
https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/294650

../Src/obj_setup.sh
../Src/configure --enable-mpi
make siesta

(Recently I have compile siesta on stampede. A very helpful webpage to link MKL is https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor)

Hope it can be helpful.

Sunday, April 10, 2016

Parallel compilation tips of quantum espresso

1. Compile MPI package
  • When there is error about can't find file ("*so*") when try to run "mpirun" command, try "sudo ldconfig" to update shared library.
   OR Install MPI package from (Ubuntu) software center
  • Search MPICH or OpenMPI in software center
  • When using OpenMPI, install "libopenmpi-dev" to get the wrapper parallel compiler (mpicc mpif90).
2. Compile the QE
  • Run ./configure
  • make all