Bug report: OpenMP in Abinit 6.10.2

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
kaneod
Posts: 42
Joined: Wed Mar 10, 2010 11:47 am

Bug report: OpenMP in Abinit 6.10.2

Post by kaneod » Thu Feb 09, 2012 11:12 am

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
Dr Kane O'Donnell
Postdoctoral Research Fellow
Australian Synchrotron

kaneod
Posts: 42
Joined: Wed Mar 10, 2010 11:47 am

Re: Bug report: OpenMP in Abinit 6.10.2

Post by kaneod » Thu Feb 09, 2012 12:05 pm

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.
Dr Kane O'Donnell
Postdoctoral Research Fellow
Australian Synchrotron

User avatar
jbeuken
Posts: 365
Joined: Tue Aug 18, 2009 9:24 pm
Contact:

Re: Bug report: OpenMP in Abinit 6.10.2

Post by jbeuken » Fri Feb 10, 2012 8:44 pm

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
------
Jean-Michel Beuken
Computer Scientist

Locked