[Pw_forum] parallel installation comments

Scott Brozell srb at osc.edu
Wed May 3 20:07:16 CEST 2017


Hi,

Installation of quantum espresso on large commodity clusters, e.g,
https://www.osc.edu/resources/technical_support/supercomputers/oakley/technical_specifications
using intel compilers and mvapich mpi has been straightforward in
the past; for example, configure; make all; worked in 5.2.1.
However, in 5.4.0, 6.0, and 6.1 the simple procedure above produced
serial executables.

Attached is a patch file for x_ac_qe_mpi.m4 in 6.1 which corrects
two problems.  In the four points below, these changes are described,
a comment on MKL is made, and a typo is reported.

1.  x_ac_qe_mpi.m4 parallel is used before initialization.
In the released install/configure, which is based on x_ac_qe_mpi.m4,
an error occurs because parallel is used before it is initialized:

./install/configure: line 11602: test: : integer expression expected

This change to x_ac_qe_mpi.m4 fixes that:
#parallel=0
->
parallel=0

2.  x_ac_qe_mpi.m4 mpi_libs can be non empty.
On our computer systems when an MPI is loaded, mvapich or otherwise,
the environment variable MPI_LIBS is defined.  This causes mpi_libs
in install/configure to be defined to a non empty string.  But
other espresso requirements for building parallel executables
may not be met; in particular, -D__MPI may not be.

This addition at line 28 to x_ac_qe_mpi.m4 fixes that:
else
        if test "$use_parallel" -ne 0
        then
                have_mpi=1
                parallel=1
                try_dflags="$try_dflags -D__MPI"
        fi

3.  -mkl for intel compilers is a better way.
configure's automatic detection of MKL failed on our systems maybe
because we have available multiple compilers, MPIs, and MKLs.
Intel compiler versions 11 or later provide the -mkl option.
This is a much better way since it avoids decrypting MKLs large 
number of files to produce the appropriate -L and -l options.
Here is how we invoked configure:

./configure BLAS_LIBS='-mkl=cluster' SCALAPACK_LIBS='-mkl=cluster'

4.  User Guide typo on p5; user_guide.tex patch file is attached.

Be short: no need to send 128 copies of the same error message just because you this is
->
Be short: no need to send 128 copies of the same error message just because this is

thanks,
scott

Scott Brozell, Ph.D.
Scientific Applications Group
Ohio Supercomputer Center
Columbus, OH 43212

-------------- next part --------------
*** ./qe-6.1sav/install/m4/x_ac_qe_mpi.m4	2017-03-03 01:47:02.000000000 -0500
--- ./qe-6.1/install/m4/x_ac_qe_mpi.m4	2017-05-03 13:17:55.726949378 -0400
***************
*** 3,9 ****
  AC_DEFUN([X_AC_QE_MPI], [
  
  have_mpi=0
! #parallel=0
  
  # some architectures require to link mpi libraries explicitly
  F77=$mpif90 # use parallel compiler
--- 3,9 ----
  AC_DEFUN([X_AC_QE_MPI], [
  
  have_mpi=0
! parallel=0
  
  # some architectures require to link mpi libraries explicitly
  F77=$mpif90 # use parallel compiler
***************
*** 25,30 ****
--- 25,37 ----
                                         have_mpi=1 parallel=1 mpi_libs="$LIBS" try_dflags="$try_dflags -D__MPI")
                  fi
          fi
+ else
+         if test "$use_parallel" -ne 0
+         then
+                 have_mpi=1
+                 parallel=1
+                 try_dflags="$try_dflags -D__MPI"
+         fi
  fi
  
  # Configuring output message
-------------- next part --------------
*** user_guide.tex.original	2017-03-03 01:46:52.000000000 -0500
--- user_guide.tex	2017-05-03 13:59:21.860869065 -0400
***************
*** 251,257 ****
    it will confuse the ordering of messages into threads that most mailers
    can do. In particular, do not use "reply" to a Digest!!!
  \item Be short: no need to send 128 copies of the same error message just
!   because you this is what came out of your 128-processor run. No need to
    send the entire compilation log for a single error appearing at the end.
  \item Do not post large attachments: point a linker to a place where the
    attachment(s) can be downloaded from, such as e.g. DropBox, Google Docs, 
--- 251,257 ----
    it will confuse the ordering of messages into threads that most mailers
    can do. In particular, do not use "reply" to a Digest!!!
  \item Be short: no need to send 128 copies of the same error message just
!   because this is what came out of your 128-processor run. No need to
    send the entire compilation log for a single error appearing at the end.
  \item Do not post large attachments: point a linker to a place where the
    attachment(s) can be downloaded from, such as e.g. DropBox, Google Docs, 


More information about the users mailing list