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
Bug report: OpenMP in Abinit 6.10.2
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.
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.
Bug report: OpenMP in Abinit 6.10.2
Dr Kane O'Donnell
Postdoctoral Research Fellow
Australian Synchrotron
Postdoctoral Research Fellow
Australian Synchrotron
Re: Bug report: OpenMP in Abinit 6.10.2
More issues:
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.
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.
Dr Kane O'Donnell
Postdoctoral Research Fellow
Australian Synchrotron
Postdoctoral Research Fellow
Australian Synchrotron
Re: Bug report: OpenMP in Abinit 6.10.2
hi,
there are a lot of problems with 6.10 and OpenMP
but try with 6.12.1 and with this config file :
the 6.12.2 will be better with OpenMP...
have fun..
jmb
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
------
Jean-Michel Beuken
Computer Scientist
Jean-Michel Beuken
Computer Scientist