Is Information Test Fail Really Means Fail in Next Usage?

option, parallelism,...

Moderators: fgoudreault, mcote

Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Locked
ibnusyuhadap3
Posts: 5
Joined: Mon Apr 11, 2016 9:19 pm

Is Information Test Fail Really Means Fail in Next Usage?

Post by ibnusyuhadap3 » Mon Sep 17, 2018 8:56 am

Dear moderators and friends,

I was build Abinit with fully features, where MKL+MAGMA+MPI and fully DFT flavour used. First, I build magma with configuration as follow

Code: Select all

#//////////////////////////////////////////////////////////////////////////////
#   -- MAGMA (version 2.4.0) --
#      Univ. of Tennessee, Knoxville
#      Univ. of California, Berkeley
#      Univ. of Colorado, Denver
#      @date June 2018
#//////////////////////////////////////////////////////////////////////////////

# GPU_TARGET contains one or more of Fermi, Kepler, Maxwell, Pascal, Volta
# to specify for which GPUs you want to compile MAGMA:
#     Fermi   - NVIDIA compute capability 2.x cards
#     Kepler  - NVIDIA compute capability 3.x cards
#     Maxwell - NVIDIA compute capability 5.x cards
#     Pascal  - NVIDIA compute capability 6.x cards
#     Volta   - NVIDIA compute capability 7.x cards
# The default is "Kepler Maxwell Pascal".
# Note that NVIDIA no longer supports 1.x cards, as of CUDA 6.5.
# See http://developer.nvidia.com/cuda-gpus
#
GPU_TARGET ?= Pascal #Kepler Maxwell Pascal Volta

# --------------------
# programs

CC        = mpicc
CXX       = mpicxx
NVCC      = nvcc
FORT      = mpif90

ARCH      = ar
ARCHFLAGS = cr
RANLIB    = ranlib


# --------------------
# flags

# Use -fPIC to make shared (.so) and static (.a) library;
# can be commented out if making only static library.
FPIC      = -fPIC

CFLAGS    = -O3 $(FPIC) -fopenmp -DNDEBUG -DADD_ -Wall -Wno-strict-aliasing -Wshadow -DMAGMA_WITH_MKL
FFLAGS    = -O3 $(FPIC)          -DNDEBUG -DADD_ -Wall -Wno-unused-dummy-argument
F90FLAGS  = -O3 $(FPIC)          -DNDEBUG -DADD_ -Wall -Wno-unused-dummy-argument -x f95-cpp-input
NVCCFLAGS = -O3                  -DNDEBUG -DADD_ -Xcompiler "$(FPIC) -Wall -Wno-unused-function -Wno-strict-aliasing"
LDFLAGS   =     $(FPIC) -fopenmp

# C++11 (gcc >= 4.7) is not required, but has benefits like atomic operations
CXXFLAGS := $(CFLAGS) -std=c++11
CFLAGS   += -std=c99


# --------------------
# libraries

# see MKL Link Advisor at http://software.intel.com/sites/products/mkl/
# gcc/gfortran with MKL 10.3, GNU OpenMP threads (use -fopenmp in CFLAGS, LDFLAGS)
LIB       = -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_blacs_openmpi_lp64 -Wl,--end-group -lgomp -lpthread -lstdc++ -lm -lgfortran

# Supposedly, gcc can use Intel threads (libiomp5) instead, but be careful that
# libiomp5 and libgomp are NOT BOTH linked. Above, we use gnu threads as a safer option.
# gcc/gfortran with MKL 10.3, Intel OpenMP threads (remove -fopenmp from LDFLAGS above)
#LIB       = -lmkl_gf_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lstdc++ -lm -lgfortran
LIB      += -lcublas -lcusparse -lcudart -lcudadevrt

# --------------------
# directories

# define library directories preferably in your environment, or here.
# for MKL run, e.g.: source /opt/intel/composerxe/mkl/bin/mklvars.sh intel64
MKLROOT ?= /opt/intel/compilers_and_libraries_2018.3.222/linux/mkl
CUDADIR ?= /usr/local/cuda-9.2
-include make.check-mkl
-include make.check-cuda

LIBDIR    = -L$(CUDADIR)/lib64 \
            -L$(MKLROOT)/lib/intel64_lin

INC       = -I$(CUDADIR)/include \
            -I$(MKLROOT)/include \
            -I$(MKLROOT)/include/intel64/lp64


then, my config file of Abinit is as follow

Code: Select all

enable_optim="yes"
C="mpicc -O3 -fopenmp -std=c99"
CXX="mpicxx -O3 -std=c++11"
FC="mpif90 -O3 -fopenmp"
enable_mpi="yes"
enable_mpi_io="yes"
with_mpi_prefix="/usr"
enable_gpu="yes"
with_gpu_flavor="cuda-double"
with_gpu_prefix="/usr/local/cuda-9.2"
NVCC="nvcc -O3 -Xcompiler -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60"
with_trio_flavor="netcdf"
with_fft_flavor="fftw3-mkl"
with_fft_incs="-I${MKLROOT}/include -I${MKLROOT}/include/fftw -I${MKLROOT}/include/intel64/lp64 -I/usr/local/magma/include"
with_fft_libs="-L${MKLROOT}/lib/intel64_lin -lfftw3xc_gnu -lfftw3xf_gnu -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_blacs_openmpi_lp64 -Wl,--end-group -lgomp -lpthread -lstdc++ -lm -lgfortran -ldl -L/usr/local/magma/lib -lmagma -lmagma_sparse"
with_linalg_flavor="mkl+magma"
with_linalg_incs="-I${MKLROOT}/include -I${MKLROOT}/include/intel64/lp64 -I/usr/local/magma/include"
with_linalg_libs="-L${MKLROOT}/lib/intel64_lin -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lmkl_blacs_openmpi_lp64 -Wl,--end-group -lgomp -lpthread -lstdc++ -lm -lgfortran -ldl -L/usr/local/magma/lib -lmagma -lmagma_sparse"
with_dft_flavor="atompaw+bigdft+libxc+wannier90"
enable_gw_dpc="yes"
enable_openmp="yes"


Compile was success. I really check the error due to segmentation fault, by using command "make check" after compile. The result is also fine. But it is still reported 8 fails. Then I check the Test Suites. I found, it only different parameter of my Test Suites compared by ABinit reference tests. As example for t03.out.fldiff test,

Code: Select all

< .(MPI version, prepared for a x86_64_linux_gnu5.3 computer)
> .(MPI version, prepared for a x86_64_linux_gnu5.4 computer)
17
< .Starting date : Mon  4 Apr 2016.
> .Starting date : Mon 17 Sep 2018.
29
<      intxc =       1    ionmov =       0      iscf =       7    lmnmax =       4
>      intxc =       1    ionmov =       0      iscf =       7    lmnmax =       8
305
<   sigma(1 1)= -3.10729488E-05  sigma(3 2)=  0.00000000E+00
>   sigma(1 1)= -8.78351260E-04  sigma(3 2)=  0.00000000E+00
306
<   sigma(2 2)= -3.10729488E-05  sigma(3 1)=  0.00000000E+00
>   sigma(2 2)= -8.78351260E-04  sigma(3 1)=  0.00000000E+00
307
<   sigma(3 3)= -3.10729488E-05  sigma(2 1)=  0.00000000E+00
>   sigma(3 3)= -8.78351260E-04  sigma(2 1)=  0.00000000E+00
399
<   sigma(1 1)= -3.10729488E-05  sigma(3 2)=  0.00000000E+00
>   sigma(1 1)= -8.78351260E-04  sigma(3 2)=  0.00000000E+00
400
<   sigma(2 2)= -3.10729488E-05  sigma(3 1)=  0.00000000E+00
>   sigma(2 2)= -8.78351260E-04  sigma(3 1)=  0.00000000E+00
401
<   sigma(3 3)= -3.10729488E-05  sigma(2 1)=  0.00000000E+00
>   sigma(3 3)= -8.78351260E-04  sigma(2 1)=  0.00000000E+00
442
<            strten     -3.1072948751E-05 -3.1072948751E-05 -3.1072948751E-05
>            strten     -8.7835126025E-04 -8.7835126025E-04 -8.7835126025E-04
812
< .Delivered   5 WARNINGs and   1 COMMENTs to log file.
> .Delivered   5 WARNINGs and   2 COMMENTs to log file.
813
< +Overall time at end (sec) : cpu=          1.4  wall=          0.9
> +Overall time at end (sec) : cpu=          1.7  wall=          1.7
Summary t03.out : different lines= 8 , max abs_diff= 8.473e-04 (l.442), max rel_diff= 9.317e-01 (l.442)


from the fail information above, we can take conclusion that t03 Abinit reference was using "lmnmax = 4", but in here of my check is "lmnmax = 8". Then I went to t03.out.diff to see more deep. I get information my check was using "fftalg 112" but Abinit reference use "fftalg 321". From here, we can take conclusion again, this fail one of them is due to number of fftalg. I also then check the t03.out to see the really fail source, there is no fail. It is just WARNING and COMMENTS.

The question now, is this fail is really fail? As we now, we can use ngfft. If this not really fail, then it is fine to use Abinit exe for my next work? Please response. Thank you

Locked