psmp build - error with Intel compiler

Ondrej Marsalek ondrej.... at gmail.com
Thu Jan 6 10:48:49 CET 2011


In cp2k trunk, I get, in addition to the previous problem, this:

mpif90 -openmp -c -D__INTEL -D__FFTSG -D__parallel -D__BLACS
-D__SCALAPACK -D__FFTW3 -D__LIBINT -D__HAS_ISO_C_BINDING
-D__MAX_CONTR=3 -I/opt/fftw-3.2.2-intel/double/include -O3
-heap-arrays 64 -xsse4.2 -free -funroll-loops
-D__COMPILE_ARCH="\"Linux-x86-64-intel\"" -D__COMPILE_DATE="\"Thu Jan
6 10:40:45 CET 2011\"" -D__COMPILE_HOST="\"cassandra\""
-D__COMPILE_LASTCVS="\"D\""
/home/andy/build/cp2k/cp2k/makefiles/../src/fft_tools.F
/home/andy/build/cp2k/cp2k/makefiles/../src/fft_tools.F(2056): error
#6752: Since the OpenMP DEFAULT(NONE) clause applies, the PRIVATE,
SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be
explicitly specified for every variable.   [NP]
    DO ip = 0, np - 1
---------------^

O.


On Wed, Jan 5, 2011 at 19:54, Ondrej Marsalek <ondrej.... at gmail.com> wrote:
> Dear all,
>
> I am trying to build a psmp version of CP2K, the 2_1 branch, checked
> out on 2011-01-03. I use the Intel compiler, version 11.1.073. Other
> factors don't seem to be important, but if they are, I'll provide more
> information. Without OpenMP, the build is just fine (passes all tests)
> with an otherwise identical arch file.
>
> Unfortunately, with OpenMP, I get the following error:
>
>
> mpif90 -openmp -c -D__INTEL -D__FFTSG -D__parallel -D__BLACS
> -D__SCALAPACK -D__FFTW3 -D__LIBINT -D__HAS_ISO_C_BINDING
> -I/home/marsalek/opt/fftw-3.2.2-intel/double/include -heap-arrays 64
> -msse3 -free -O3 -funroll-loops
> -D__COMPILE_ARCH="\"Linux-x86-64-intel\"" -D__COMPILE_DATE="\"Wed Jan
> 5 19:26:17 CET 2011\"" -D__COMPILE_HOST="\"oxygen\""
> -D__COMPILE_LASTCVS="\"D/lib////\""
> /home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F
> /home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F(1181):
> error #7636: This statement or directive is not permitted within the
> body of an OpenMP SINGLE directive
>    FORALL (t = 1:nrows)
> ----^
> /home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F(1183):
> error #7636: This statement or directive is not permitted within the
> body of an OpenMP SINGLE directive
>    END FORALL
> ----^
> compilation aborted for
> /home/marsalek/build/cp2k-2_1/cp2k/makefiles/../src/lib/dbcsr_methods.F
> (code 1)
>
>
> I have found this discussion:
>
> http://software.intel.com/en-us/forums/showthread.php?t=77885
>
> and based on that I have moved the offending FORALL outside the SINGLE
> directive. The build went fine but I have not run the tests yet. Is
> the compiler (version) to blame, or should this be fixed in CP2K?
>
> Thanks,
> Ondrej
>



More information about the CP2K-user mailing list