It has been a banner week for Ubuntu installations.
The installation of Abinit 5.6.5 with OpenMPI 1.3.1 (previously reported at www.somewhereville.com/?p=384) wasn't bad, but several games had to be played (at the time) to make everything compile and run correctly. I'm pleased to report that Abinit 6.8.1 and OpenMPI 1.4.1 seem to play better together, this simplified considerably over the previous installation guide by the use of the apt-get version of OpenMPI 1.4.1. A bit of option calling in the configure step is needed (and the errors for not doing it are included below).
0. For the Antsy Copy+Paste Crowd
Commands below.
sudo apt-get install autoconf bison build-essential cmake csh doxygen flex fort77 freeglut3-dev g++ g++-multilib gcc gcc-multilib gettext gfortran gnuplot ia32-libs lib32asound2 lib32gcc1 lib32gcc1-dbg lib32gfortran3 lib32gomp1 lib32mudflap0 lib32ncurses5 lib32nss-mdns lib32z1 libavdevice52 libblas3gf libbz2-dev libc6-dev-i386 libc6-i386 libfreeimage-dev libglew1.5-dev liblapack3gf libnetcdf-dev libopenal1 libopenexr-dev libopenmpi-dev libpng12-dev libqt4-dev libssl-dev libstdc++6-4.3-dbg libstdc++6-4.3-dev libstdc++6-4.3-doc libxext-dev libxi-dev libxml-simple-perl libxmu-dev libxt-dev mercurial netcdf-bin nfs-common nfs-kernel-server openmpi-bin patch portmap python2.6-dev rpm ssh tcsh xorg-dev zlib1g-dev libblas-doc libblas-dev liblapack-doc liblapack-dev sudo aptitude update sudo aptitude upgrade sudo shutdown -r now pico .profile INSERT: LD_LIBRARY_PATH="/usr/lib64/openmpi/lib/" source .profile gunzip abinit-6.8.1.tar.gz tar xvf abinit-6.8.1.tar cd abinit-6.8.1/ ./configure --enable-mpi --with-mpi-level=2 FC=mpif90 --with-linalg-libs="-llapack -lblas" make mj4 sudo make install
For the "why?" crowd, a bit more about the steps is provided below.
1. apt-get Installs
As has been standard procedure for all of my posts like this, I blindly install a "core set" of things I've needed for various other build processes and am largely uninterested in identifying specific things needed by each program I build (hard drives are cheap). This list below includes plenty you likely don't need for Abinit installations. Feel free to send me a shortened list if you diagnose it.
The list below includes the OpenMPI installation and all of the build tools needed by Abinit. I finish the installation with an aptitude update/upgrade (which one can skip). If you're using a 32-bit version of Ubuntu, you'll get plenty of errors about not being able to find various lib32 files. Simply delete the "lib32___" stuff.
user@machine:~/abinit-6.8.1$ sudo apt-get install autoconf bison build-essential cmake csh doxygen flex fort77 freeglut3-dev g++ g++-multilib gcc gcc-multilib gettext gfortran gnuplot ia32-libs lib32asound2 lib32gcc1 lib32gcc1-dbg lib32gfortran3 lib32gomp1 lib32mudflap0 lib32ncurses5 lib32nss-mdns lib32z1 libavdevice52 libblas3gf libbz2-dev libc6-dev-i386 libc6-i386 libfreeimage-dev libglew1.5-dev liblapack3gf libnetcdf-dev libopenal1 libopenexr-dev libopenmpi-dev libpng12-dev libqt4-dev libssl-dev libstdc++6-4.3-dbg libstdc++6-4.3-dev libstdc++6-4.3-doc libxext-dev libxi-dev libxml-simple-perl libxmu-dev libxt-dev mercurial netcdf-bin nfs-common nfs-kernel-server openmpi-bin patch portmap python2.6-dev rpm ssh tcsh xorg-dev zlib1g-dev libblas-doc libblas-dev liblapack-doc liblapack-dev user@machine:~$ sudo aptitude update user@machine:~$ sudo aptitude upgrade user@machine:~$ sudo shutdown -r now
2. LD_LIBRARY_PATH Addition To .profile
If you're using a 32-bit Ubuntu install, change the "lib64" to simply "lib".
user@machine:~$ pico .profile
Copy and paste the following into your .profile.
LD_LIBRARY_PATH="/usr/lib64/openmpi/lib/"
Crtl-X and Yes.
user@machine:~$ source .profile
3. Installing Abinit 6.8.1
And the fun begins.
user@machine:~$ gunzip abinit-6.8.1.tar.gz user@machine:~$ tar xvf abinit-6.8.1.tar user@machine:~$ cd abinit-6.8.1/
NOTE: I performed several problematic trials before a successful parallel installation. If you saw the following from previous attempts…
configure: creating ./config.status config.status: error: cannot find input file: `config.dump.in'
… don't diagnose, just delete the current directory and re-extract a fresh copy of the abinit source.
My first simple ./configure run produced the following output:
DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure ... Summary of important options: * C compiler : gnu version 4.4 * Fortran compiler: gnu version 4.4 * architecture : unknown unknown (64 bits) * debugging : basic * optimizations : standard * MPI enabled : no * MPI-IO enabled : no * GPU enabled : no (none) * TRIO flavor = netcdf+etsf_io-fallback * TIMER flavor = abinit (libs: ignored) * LINALG flavor = netlib-fallback (libs: internal) * FFT flavor = none (libs: ignored) * MATH flavor = none (libs: ignored) * DFT flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback Configuration complete. You may now type "make" to build ABINIT. (or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")
Note the lack of MPI-enabling. Changing the options in configure to announce-enable MPI and specify the compiler location…
DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi --with-mpi-prefix="/usr/bin" Summary of important options: * C compiler : gnu version 4.4 * Fortran compiler: gnu version 4.4 * architecture : unknown unknown (64 bits) * debugging : basic * optimizations : standard * MPI enabled : yes * MPI-IO enabled : yes * GPU enabled : no (none) * TRIO flavor = netcdf+etsf_io-fallback * TIMER flavor = abinit (libs: ignored) * LINALG flavor = netlib-fallback (libs: internal) * FFT flavor = none (libs: ignored) * MATH flavor = none (libs: ignored) * DFT flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback Configuration complete. You may now type "make" to build ABINIT. (or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")
… did show MPI enabled.
The thrill of ./configure victory was short-lived. My first attempt to make ended as follows:
DO NOT USE: user@machine:~/abinit-6.8.1$ make mj4 ... Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type m_xmpi.F90:1875.25: integer(XMPI_OFFSET_KIND),intent(inout) :: offset 1 Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type m_xmpi.F90:2002.25: integer(XMPI_OFFSET_KIND),intent(out) :: my_offpad 1 Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type m_xmpi.F90:2244.25: integer(XMPI_OFFSET_KIND),intent(in) :: offset 1 Error: Symbol 'xmpi_offset_kind' at (1) has no IMPLICIT type Fatal Error: Error count reached limit of 25. make[5]: *** [m_xmpi.o] Error 1 make[5]: Leaving directory `/home/user/abinit-6.8.1/src/12_hide_mpi' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/home/user/abinit-6.8.1/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/user/abinit-6.8.1' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/user/abinit-6.8.1' make[1]: *** [multi] Error 2 make[1]: Leaving directory `/home/user/abinit-6.8.1' make: *** [mj4] Error 2
As usual, I put the error here because you're likely searching against the same errors in your build attempts. Your first solution might be to try to force specify the fortran compiler (especially if you're familiar with the integer(XMPI_OFFSET_KIND) errors, which appeared to me at first blush to be something specific to the GNU fortran compiler choice). As the code's in f90, calling f77 won't do you much good…
DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi="yes" FC=f77 ... checking whether f77 accepts -g... yes checking whether we are using the GNU Fortran 77 compiler... yes checking whether f77 accepts -g... yes configure: setting up Fortran 90 checking for Fortran flag to compile .f90 files... unknown configure: error: Fortran could not compile .f90 files make[3]: *** [configure-stamp] Error 1 make[3]: Leaving directory `/home/user/abinit-6.8.1/plugins/netcdf' make[2]: *** [package-ready] Error 2 make[2]: Leaving directory `/home/user/abinit-6.8.1/plugins/netcdf' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/user/abinit-6.8.1/plugins' make: *** [multi] Error 2
Specifying gfortran might be your next solution,
DO NOT USE: user@machine:~/abinit-6.8.1$ ./configure --enable-mpi="yes" FC=gfortran --with-mpi-prefix=1 ... configure: Initializing MPI support configure: looking for MPI in 1 configure: error: use --with-mpi-prefix or set FC, not both
And you may reach your moment of clarity. Why are you calling the non-mpi fortran compiler? Right! The BLAS and LAPACK are late additions (may or may not improve run speed).
user@machine:~/abinit-6.8.1$ ./configure --enable-mpi --with-mpi-level=2 FC=mpif90 --with-linalg-libs="-llapack -lblas" ... ============================================================================== === Overall startup === ============================================================================== checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make sets $(MAKE)... (cached) yes checking whether ln -s works... yes checking for a sed that does not truncate output... /bin/sed checking for gawk... (cached) gawk checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E configure: not loading options (no config file available) ============================================================================== === Build-system information === ============================================================================== configure: ABINIT version 6.8.1 configure: M4 010416 - Autoconf 026800 - Automake 011100 - Libtool 020204 configure: reporting user interface changes: ============================================================================== === Option consistency checking === ============================================================================== configure: checking consistency of library-related options configure: |---> all OK configure: configure: checking consistency of plug-in options configure: |---> all OK configure: configure: checking consistency of experimental options configure: |---> all OK configure: configure: |---> all OK configure: configure: parsing command-line options ============================================================================== === Connector startup === ============================================================================== configure: Initializing MPI support checking for mpirun... mpirun configure: WARNING: MPI runner mpirun may be incompatible with MPI compilers configure: compiler checks deferred configure: GPU support disabled from command-line ============================================================================== === Utilities === ============================================================================== checking for sh... /bin/sh checking for mv... /bin/mv checking for perl... /usr/bin/perl checking for rm... /bin/rm checking for dvips... dvips checking for dvipdf... dvipdf checking for latex... no checking for markdown... no checking for patch... patch checking for ps2pdf... ps2pdf checking for tar... tar checking for wget... wget checking for curl... no configure: using internal version of MarkDown ============================================================================== === C support === ============================================================================== checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking which type of compiler we have... gnu 4.4 checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether byte ordering is bigendian... no ============================================================================== === C++ support === ============================================================================== checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking which type of C++ compiler we have... gnu 4.4 ============================================================================== === Fortran support === ============================================================================== checking for mpif90... /usr/bin/mpif90 checking whether we are using the GNU Fortran compiler... yes checking whether mpif90 accepts -g... yes checking which type of Fortran compiler we have... gnu 4.4 checking fortran 90 modules extension... mod checking for Fortran flag to compile .F90 files... none configure: determining Fortran module case checking whether Fortran modules are upper-case... no checking how to get verbose linking output from mpif90... -v checking for Fortran libraries of mpif90... -L/usr/lib/openmpi/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3/https://www.somewhereville.com/https://www.somewhereville.com/lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3/https://www.somewhereville.com/.. -L/usr/lib/x86_64-linux-gnu -lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil -lgfortranbegin -lgfortran -lm -lpthread checking for dummy main to link with Fortran libraries... none checking for Fortran name-mangling scheme... lower case, underscore, no extra underscore ============================================================================== === Python support === ============================================================================== checking for python... python checking for Python CPPFLAGS... -I/usr/include/python2.6 checking for bzr... no checking for Python NumPy headers... not found checking numarray/arrayobject.h usability... no checking numarray/arrayobject.h presence... no checking for numarray/arrayobject.h... no ============================================================================== === Libraries and linking === ============================================================================== checking for ar... ar checking for ranlib... ranlib ============================================================================== === Hints === ============================================================================== checking for cpp... cpp checking for a true C preprocessor... cpp checking which cpp hints to apply... default/default/default checking which cc hints to apply... gnu/default/default checking which xpp hints to apply... none/none/none checking which cxx hints to apply... gnu/default/default checking which fpp hints to apply... default/default/default checking which fc hints to apply... gnu/default/default checking which ar hints to apply... none/none/none checking which Fortran preprocessor to use... checking which Fortran preprocessor flags to apply... checking whether to wrap Fortran compiler calls... no ============================================================================== === Debugging === ============================================================================== checking debugging status... enabled (profile mode: basic) configure: setting C debug flags to '-g' configure: setting C++ debug flags to '-g' configure: setting Fortran debug flags to '-g' checking whether to activate debug mode in source files... no checking which cc debug flags to apply... gnu/default/default checking which cxx debug flags to apply... none/none/none checking which fc debug flags to apply... gnu/default/default checking whether to activate design-by-contract debugging... no ============================================================================== === Optimizations === ============================================================================== checking optimization status... enabled (profile mode: standard) checking which cc optimizations to apply... gnu/default/default checking which cxx optimizations to apply... gnu/default/default checking which fc optimizations to apply... gnu/default/default checking whether to apply per-directory optimizations... yes ============================================================================== === 64-bit support === ============================================================================== checking for a 64-bit architecture... yes checking whether to use 64-bit flags... no checking for user-defined 64-bit flags... ============================================================================== === Build flags === ============================================================================== configure: static builds may be performed ============================================================================== === Advanced compiler features === ============================================================================== checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking stdarg.h usability... yes checking stdarg.h presence... yes checking for stdarg.h... yes checking stdio.h usability... yes checking stdio.h presence... yes checking for stdio.h... yes checking malloc.h usability... yes checking malloc.h presence... yes checking for malloc.h... yes checking math.h usability... yes checking math.h presence... yes checking for math.h... yes checking termios.h usability... yes checking termios.h presence... yes checking for termios.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking mcheck.h usability... yes checking mcheck.h presence... yes checking for mcheck.h... yes checking for abort... yes checking size of char... 1 checking size of short... 2 checking size of int... 4 checking size of long... 8 checking size of long long... 8 checking size of unsigned int... 4 checking size of unsigned long... 8 checking size of unsigned long long... 8 checking size of float... 4 checking size of double... 8 checking size of long double... 16 checking size of size_t... 8 checking size of ptrdiff_t... 8 checking for an ANSI C-conforming const... yes checking for size_t... yes checking whether the Fortran compiler supports allocatable arrays in datatypes... yes checking whether the Fortran compiler provides the iso_c_binding module... yes checking whether the Fortran compiler accepts exit()... yes checking whether the Fortran compiler accepts flush()... yes checking whether the Fortran compiler accepts flush_()... no checking whether the Fortran compiler accepts gamma()... yes checking whether the Fortran compiler accepts getenv()... yes checking whether the Fortran compiler accepts getpid()... no checking whether the Fortran compiler accepts the null() intrinsic... yes checking whether the Fortran compiler accepts quadruple integers... yes checking whether the Fortran compiler accepts long lines... yes checking whether the Fortran compiler supports stream IO... yes checking whether the Fortran compiler accepts etime()... no checking whether to use C clock for timings... no ============================================================================== === Connectors / Fallbacks === ============================================================================== checking whether the C compiler supports MPI... no checking whether the C++ compiler supports MPI... no checking whether the Fortran Compiler supports MPI... yes checking whether MPI is usable... no configure: WARNING: MPI support is broken! configure: enabling MPI I/O support checking whether to build MPI code... yes checking whether to build MPI I/O code... yes checking whether to build MPI time tracing code... no checking which level of MPI is supported by the Fortran compiler... 2 configure: forcing MPI-2 standard support checking whether the MPI library supports MPI_CREATE_TYPE_STRUCT... yes checking whether to activate GPU support... no checking for the requested transferable I/O support... netcdf+etsf_io checking netcdf.h usability... yes checking netcdf.h presence... yes checking for netcdf.h... yes checking for library containing nc_open... -lnetcdf checking for library containing nf_open... -lnetcdff checking for Fortran module includes... -I/usr/include checking whether NetCDF Fortran wrappers work... yes checking whether NetCDF supports MPI I/O... no checking for ETSF_IO libraries to try... -letsf_io_utils -letsf_io checking for Fortran module includes... -I/usr/include (cached) checking whether ETSF_IO libraries work... no configure: WARNING: falling back to internal etsf_io version checking for the actual transferable I/O support... netcdf+etsf_io-fallback checking for the requested timer support... abinit checking for the actual timer support... abinit checking for the requested linear algebra support... netlib checking for BLAS support in specified libraries... no checking for LAPACK support in specified libraries... no checking for BLACS support in specified libraries... no checking for ScaLAPACK support in specified libraries... no checking whether we have a serial linear algebra support... no configure: WARNING: falling back to internal linear algebra libraries checking whether we have a parallel linear algebra support... no checking for the actual linear algebra support... netlib-fallback checking for the requested math support... none checking for the actual math support... none checking for the requested FFT support... none checking for the actual FFT support... none checking for the requested DFT support... atompaw+bigdft+libxc+wannier90 checking xc.h usability... no checking xc.h presence... no checking for xc.h... no checking xc_funcs.h usability... no checking xc_funcs.h presence... no checking for xc_funcs.h... no checking for library containing xc_func_init... no checking for Fortran module includes... -I/usr/include (cached) configure: WARNING: falling back to internal libxc version configure: WARNING: AtomPAW recommends missing LibXC support configure: WARNING: BigDFT requires missing linear algebra support configure: WARNING: falling back to internal atompaw version configure: WARNING: BigDFT requires missing LibXC support configure: WARNING: BigDFT requires missing linear algebra support configure: WARNING: falling back to internal bigdft version configure: WARNING: wannier90 requires missing linear algebra support configure: WARNING: falling back to internal wannier90 version checking for the actual DFT support... libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback configure: using former plugins as a temporary workaround configure: fallbacks to enable => atompaw bigdft etsf_io libxc linalg wannier90 checking whether to build atompaw... yes checking whether to build bigdft... yes checking whether to build etsf_io... yes checking whether to build fox... no checking whether to build libxc... yes checking whether to build linalg... yes checking whether to build netcdf... no checking whether to build wannier90... yes configure: using tarball repository /home/quantum/.abinit/tarballs checking for a source tarball of LINALG... yes checking for md5sum... md5sum configure: tarball MD5 check succeeded configure: applying LINALG tricks (vendor: gnu, version: 4.4) checking whether to enable the LINALG fallback... yes checking whether to build the LINALG fallback... yes checking whether to enable the FOX fallback... no checking whether to build the FOX fallback... no checking whether to enable the NETCDF fallback... no checking whether to build the NETCDF fallback... no checking for a source tarball of ETSF_IO... yes configure: tarball MD5 check succeeded configure: applying ETSF_IO tricks (vendor: gnu, version: 4.4) checking whether to enable the ETSF_IO fallback... yes checking whether to build the ETSF_IO fallback... yes checking for a source tarball of LIBXC... yes configure: tarball MD5 check succeeded configure: applying LIBXC tricks checking whether to enable the LIBXC fallback... yes checking whether to build the LIBXC fallback... yes checking for a source tarball of ATOMPAW... yes configure: tarball MD5 check succeeded configure: applying AtomPAW tricks (vendor: gnu, version: 4.4) checking whether to enable the ATOMPAW fallback... yes checking whether to build the ATOMPAW fallback... yes checking for a source tarball of BIGDFT... yes configure: tarball MD5 check succeeded configure: applying BigDFT tricks (vendor: gnu, version: 4.4) checking whether to enable the BIGDFT fallback... yes checking whether to build the BIGDFT fallback... yes checking for a source tarball of WANNIER90... yes configure: tarball MD5 check succeeded configure: applying Wannier90 tricks (vendor: gnu, version: 4.4) checking whether to enable the WANNIER90 fallback... yes checking whether to build the WANNIER90 fallback... yes ============================================================================== === Nightly builds === ============================================================================== checking whether to build test timeout code... no checking timeout for automatic tests... none ============================================================================== === Experimental developments === ============================================================================== checking whether to enable bindings... no checking whether to enable BSE unpacking... no checking whether to enable CLib... no checking whether to build exports... no checking whether to accelerate 'make check'... no checking whether to enable GW cut-off... no checking whether to enable GW double-precision calculations... no checking whether to enable optimal GW... no checking whether to enable GW wrapper... no checking whether to activate maintainer checks... no checking whether to use macroave... yes checking whether to reduce 'make check' for packaging... no checking whether to read input from stdin... yes checking whether to activate Symmetric Multi-Processing... no checking whether to activate ZDOTC and ZDOTU workaround... no ============================================================================== === Subsystems === ============================================================================== configure: the Abinit GUI will never be built ============================================================================== === Output === ============================================================================== configure: creating ./config.status config.status: creating config.dump config.status: creating config.mk config.status: creating config.pc config.status: creating config.sh config.status: creating config/wrappers/wrap-fc config.status: creating src/incs/Makefile config.status: creating src/mods/Makefile config.status: creating src/16_hideleave/m_build_info.F90 config.status: creating tests/tests.env config.status: creating tests/tests-install.env config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/01_gsl_ext/Makefile config.status: creating src/01_interfaces_ext/Makefile config.status: creating src/01_macroavnew_ext/Makefile config.status: creating src/01_qespresso_ext/Makefile config.status: creating src/02_clib/Makefile config.status: creating src/10_defs/Makefile config.status: creating src/12_hide_mpi/Makefile config.status: creating src/14_hidewrite/Makefile config.status: creating src/15_gpu_toolbox/Makefile config.status: creating src/16_hideleave/Makefile config.status: creating src/18_memory_mpi/Makefile config.status: creating src/18_timing/Makefile config.status: creating src/27_toolbox_oop/Makefile config.status: creating src/28_numeric_noabirule/Makefile config.status: creating src/32_contract/Makefile config.status: creating src/32_util/Makefile config.status: creating src/42_geometry/Makefile config.status: creating src/42_nlstrain/Makefile config.status: creating src/42_parser/Makefile config.status: creating src/43_ptgroups/Makefile config.status: creating src/44_geomoptim/Makefile config.status: creating src/45_psp_parser/Makefile config.status: creating src/47_xml/Makefile config.status: creating src/49_gw_toolbox_oop/Makefile config.status: creating src/50_abitypes_defs/Makefile config.status: creating src/51_manage_cuda/Makefile config.status: creating src/51_manage_mpi/Makefile config.status: creating src/52_fft_mpi_noabirule/Makefile config.status: creating src/53_abiutil/Makefile config.status: creating src/53_ffts/Makefile config.status: creating src/53_spacepar/Makefile config.status: creating src/56_mixing/Makefile config.status: creating src/56_recipspace/Makefile config.status: creating src/56_xc/Makefile config.status: creating src/57_iovars/Makefile config.status: creating src/59_io_mpi/Makefile config.status: creating src/61_ionetcdf/Makefile config.status: creating src/62_cg_noabirule/Makefile config.status: creating src/62_iowfdenpot/Makefile config.status: creating src/62_occeig/Makefile config.status: creating src/62_poisson/Makefile config.status: creating src/62_wvl_wfs/Makefile config.status: creating src/63_bader/Makefile config.status: creating src/64_atompaw/Makefile config.status: creating src/65_nonlocal/Makefile config.status: creating src/65_psp/Makefile config.status: creating src/66_paw/Makefile config.status: creating src/66_wfs/Makefile config.status: creating src/67_common/Makefile config.status: creating src/68_dmft/Makefile config.status: creating src/68_recursion/Makefile config.status: creating src/68_rsprc/Makefile config.status: creating src/69_wfdesc/Makefile config.status: creating src/70_gw/Makefile config.status: creating src/71_bse/Makefile config.status: creating src/72_response/Makefile config.status: creating src/77_ddb/Makefile config.status: creating src/77_lwf/Makefile config.status: creating src/77_suscep/Makefile config.status: creating src/79_seqpar_mpi/Makefile config.status: creating src/83_cut3d/Makefile config.status: creating src/93_rdm/Makefile config.status: creating src/95_drive/Makefile config.status: creating src/98_main/Makefile config.status: creating src/libs/Makefile config.status: creating tests/Nightly/Makefile config.status: creating plugins/Makefile config.status: creating plugins/atompaw/Makefile config.status: creating plugins/bigdft/Makefile config.status: creating plugins/etsf_io/Makefile config.status: creating plugins/fox/Makefile config.status: creating plugins/libxc/Makefile config.status: creating plugins/linalg/Makefile config.status: creating plugins/netcdf/Makefile config.status: creating plugins/wannier90/Makefile config.status: creating bindings/Makefile config.status: creating bindings/parser/Makefile config.status: creating doc/Makefile config.status: creating tests/Makefile config.status: creating config.h config.status: executing depfiles commands config.status: executing dump-optim commands config.status: executing script-perms commands config.status: executing long-lines commands ============================================================================== === Final remarks === ============================================================================== Summary of important options: * C compiler : gnu version 4.4 * Fortran compiler: gnu version 4.4 * architecture : unknown unknown (64 bits) * debugging : basic * optimizations : standard * MPI enabled : yes * MPI-IO enabled : yes * GPU enabled : no (none) * TRIO flavor = netcdf+etsf_io-fallback * TIMER flavor = abinit (libs: ignored) * LINALG flavor = netlib-fallback (libs: internal) * FFT flavor = none (libs: ignored) * MATH flavor = none (libs: ignored) * DFT flavor = libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback Configuration complete. You may now type "make" to build ABINIT. (or, on a SMP machine, "make mj4", or "make multi multi_nprocs=")
With that complete, we "make" our parallel Abinit install.
user@machine:~/abinit-6.8.1$ make mj4 user@machine:~/abinit-6.8.1$ sudo make install
The above runs successfully (for me) and places abinit in /usr/local/bin (which is already in your path).
To run tests, simply do the following:
user@machine:~/abinit-6.8.1$ cd tests/ user@machine:~/abinit-6.8.1/tests$ ls user@machine:~/abinit-6.8.1/tests$ make tests_min user@machine:~/abinit-6.8.1/tests$ user@machine:~/abinit-6.8.1/tests$ exit user@adamant49:~/Programs$ exit
The above may not be an "optimized" installation, but works perfectly well (look for a possible tweak to the above that may effort some optimization).
Finally, running Abinit in parallel with OpenMPI is quite simple.
mpirun -np 4 /usr/local/bin/abinit < RUN.files >& RUN.log &
No -machinefile is needed, as we're running in SMP mode, and no mpd daemon needs to be started.