Page 1 of 1

Bug report: OpenMP in Abinit 6.10.2

Posted: Thu Feb 09, 2012 11:12 am
by kaneod
Hi all,

There are a few issues with OpenMP use in Abinit 6.10.2 (I haven't checked 6.12.1 yet - hard to keep up with the releases!). It was difficult to figure out what was going on until I switched to ifort (12.1) which has better OpenMP error reporting. The issues I've found so far are:

1. In sphere_fft.F90, the two regions of code starting at lines 102 and 232 have OMP directives enclosing commented-out code - the OMP directives need a further comment character in order to deactivate them otherwise they make the compiler think there is an empty parallel region.

2. In back.F90 (52_fft_mpi_noabirule), there are examples of invalid variable lists on OMP directives - the current generation of compilers (at least GCC 4.6, Intel 12.1) don't accept subobjects like my_type%some_variable in OMP directives as far as I can tell.

I tried to fill out a bug report form as per the "how to help the Abinit Developers" page but the link is broken...

Regards,

Kane

Re: Bug report: OpenMP in Abinit 6.10.2

Posted: Thu Feb 09, 2012 12:05 pm
by kaneod
More issues:

Code: Select all

spectral.F90(466): error #6404: This name does not have a type, and must have an explicit type.   [PRTVOL]
!$OMP PARALLEL SHARED(sf_chi0,chi0,kkweight,my_wl,my_wr,npwe,nomega,local_std_out,prtvol) &
----------------------------------------------------------------------------------^
spectral.F90(466): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [PRTVOL]
!$OMP PARALLEL SHARED(sf_chi0,chi0,kkweight,my_wl,my_wr,npwe,nomega,local_std_out,prtvol) &
----------------------------------------------------------------------------------^
spectral.F90(602): error #6404: This name does not have a type, and must have an explicit type.   [PRTVOL]
!$OMP                 my_wl,my_wr,npwe,nomega,local_std_out,prtvol) &
------------------------------------------------------------^
spectral.F90(602): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [PRTVOL]
!$OMP                 my_wl,my_wr,npwe,nomega,local_std_out,prtvol) &
------------------------------------------------------------^


Since the prtvol variable is apparently not used at all (supposedly commented out) I got around this by removing the prtvol variables from the OMP directives and adding more comment characters to the segments of code "added by MS" starting at lines 466 and 602.

Re: Bug report: OpenMP in Abinit 6.10.2

Posted: Fri Feb 10, 2012 8:44 pm
by jbeuken
hi,

there are a lot of problems with 6.10 and OpenMP
but try with 6.12.1 and with this config file :

Code: Select all

FC = ifort
CC = icc
CXX = icpc
enable_gw_dpc = yes
enable_mpi = no
with_dft_flavor = atompaw+bigdft+libxc+wannier90
with_fft_flavor = fftw3
with_fft_libs = -L/opt/intel/composerxe/mkl/lib/intel64 -Wl,--start-group  -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group
with_linalg_flavor = mkl
with_linalg_libs = -L/opt/intel/composerxe/mkl/lib/intel64 -Wl,--start-group  -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group
FC_LDFLAGS_EXTRA = -openmp
FCFLAGS_EXTRA = -openmp
enable_smp = yes


the 6.12.2 will be better with OpenMP...

have fun..

jmb