Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] abinit 5.8.4 /bigdft and CUDA

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] abinit 5.8.4 /bigdft and CUDA


Chronological Thread 
  • From: Jyh-Shyong <c00jsh00@nchc.org.tw>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] abinit 5.8.4 /bigdft and CUDA
  • Date: Tue, 22 Sep 2009 22:13:58 +0800

Hi Luigi,

After many attempts, I still failed to build parallel version of bigdft-1.3 with cuda support.
In order to have cuda support, I have to include compiler option -assume 2underscores,
however, this option fails to pass the mpi environment checking in configure procedure.

Configure options:
export FC="/opt/mvapich2/intel/bin/mpif90 -assume 2underscores"
export FCFLAGS=""
export LDFLAGS=" "
export LIBS=""
export CC=icc
export CPPFLAGS=""
export CXX=icpc

./configure -prefix=/package/chem/bigdft --enable-cuda-gpu --with-cuda-path=/opt/cuda --with-lib-cutil
s=/opt/cuda/lib --with-ext-linalg="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -ldl -lsysfs"
--with-ext-linalg-path=-L/opt/intel/mkl/lib



Basics:
Fortran90 compiler: /opt/mvapich2/intel/bin/mpif90 -assume 2underscores
Fortran90 compiler name: intel
Fortran90 flags: -O2
Linker flags: -L/opt/intel/mkl/lib -L$(top_builddir)/libXC/src
Linked libraries: -lxc -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -ldl -lsysfs

Build:
Library ABINIT: yes
Library PSolver: yes
Library BigDFT: yes
Main binaries (cluster...):yes
Minima hopping binary: no

Options:
With MPI: Warning
| Include dir.: | Linker flags: | Linked libraries: | MPI2 support: With optimised conv.: yes
With Cuda GPU conv.: yes
| NVidia Cuda Compiler: /opt/cuda/bin/nvcc
| Cuda flags: -O3 --compiler-options -fno-strict-aliasing
| GCC41HACK (gcc path): | ext. cutil library: /opt/cuda/lib
| cutil path: /opt/cuda/lib
With libXC: yes
| internal built: yes
| include dir.: -I$(top_builddir)/libXC/src

Installation paths:
Source code location: .
Prefix: /package/chem/bigdft
Exec prefix: ${prefix}
Binaries: ${exec_prefix}/bin
Static libraries: ${exec_prefix}/lib
Fortran modules: ${prefix}/include/intel

Warnings:
MPI: disabled by tests


In file config.log:
....
configure:4965: checking for MPI capabilities
configure:4980: /opt/mvapich2/intel/bin/mpif90 -assume 2underscores -o conftest -O2 conftest.f90 >&5
/tmp/ifortSVHO4q.o: In function `MAIN__':
conftest.f90:(.text+0x37): undefined reference to `mpi_init__'
configure:4986: $? = 1
configure: failed program was:
| program main
| include "mpif.h"
|
| call MPI_INIT
| end
configure:5002: result: no
configure:5070: WARNING: MPI is not working and has been disabled.
configure:5072: WARNING: If you don't want to see this warning,
configure:5074: WARNING: set --disable-mpi in the configure line.

Eventually, the compilation built a serial version of bigdft with cuda support.


If -assume 2underscores is not included:

export FC="/opt/mvapich2/intel/bin/mpif90"
export FCFLAGS=""
export LDFLAGS=" "
export LIBS=""
export CC=icc
export CPPFLAGS=""
export CXX=icpc

./configure -prefix=/package/chem/bigdft --enable-cuda-gpu --with-cuda-path=/opt/cuda --with-lib-cutil
s=/opt/cuda/lib --with-ext-linalg="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -ldl -lsysfs"
--with-ext-linalg-path=-L/opt/intel/mkl/lib

....
Basics:
Fortran90 compiler: /opt/mvapich2/intel/bin/mpif90
Fortran90 compiler name: intel
Fortran90 flags: -O2
Linker flags: -L/opt/intel/mkl/lib -L$(top_builddir)/libXC/src
Linked libraries: -lxc -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -ldl -lsysfs

Build:
Library ABINIT: yes
Library PSolver: yes
Library BigDFT: yes
Main binaries (cluster...):yes
Minima hopping binary: no

Options:
With MPI: yes
| Include dir.: | Linker flags: | Linked libraries: | MPI2 support: yes
With optimised conv.: yes
With Cuda GPU conv.: yes
| NVidia Cuda Compiler: /opt/cuda/bin/nvcc
| Cuda flags: -O3 --compiler-options -fno-strict-aliasing
| GCC41HACK (gcc path): | ext. cutil library: /opt/cuda/lib
| cutil path: /opt/cuda/lib
With libXC: yes
| internal built: yes
| include dir.: -I$(top_builddir)/libXC/src

Installation paths:
Source code location: .
Prefix: /package/chem/bigdft
Exec prefix: ${prefix}
Binaries: ${exec_prefix}/bin
Static libraries: ${exec_prefix}/lib
Fortran modules: ${prefix}/include/intel

The compilation failed since subroutines in libGPU.a can not be recognized.

What would be the right combination of configure parameters so the parallel version of bigdft which supports cuda?

Thans for your help

Jyh-Shyong Ho







Archive powered by MHonArc 2.6.16.

Top of Page