[AMBER-Developers] SAXS OpenMP compile fails with icpc 16

From: Daniel Roe <daniel.r.roe.gmail.com>
Date: Fri, 25 Sep 2015 08:46:30 -0600

Hi All,

Since SAXS does not yet have a bugzilla entry I figured I would bring
this up here. SAXS fails to compile for me with intel compilers
version 16 using OpenMP. The specific error is here:

icpc -c -fpic -O3 -openmp -DOPENMP -fpic
-I/uufs/chpc.utah.edu/common/home/u0827715/Amber/GIT/amber-intel/include
-o f_calc.o f_calc.cpp
f_calc.cpp(112): error: parallel loops with collapse must be perfectly nested
              for (size_t x = 0; x < dx[type].ngrid[0]; x++)
                          ^

Error: the OpenMP "single" pragma must not be enclosed by the "for" pragma

The code block in question is here (f_calc.cpp lines 111 to 118):

            #pragma omp parallel for shared (result, type, Z) collapse(3)
            for (size_t x = 0; x < dx[type].ngrid[0]; x++)
                for (size_t y = 0; y < dx[type].ngrid[1]; y++)
                    for (size_t z = 0; z < dx[type].ngrid[2]; z++) {
                        size_t index_center = dx_3Dindex_to_1Dindex
(dx[type], x, y, z);
                        double grid = (dx[type].value[index_center] -
1) * dx[type].conc * Z;
                        result.value[index_center] += grid;
                    }

It's not immediately obvious to me what the problem is with 'x';
normally that error means not all statements are in the innermost loop
but that's clearly not the issue here. Removing the "collapse(3)" gets
rid of the error. Any ideas?

-Dan


-Dan

-- 
-------------------------
Daniel R. Roe, PhD
Department of Medicinal Chemistry
University of Utah
30 South 2000 East, Room 307
Salt Lake City, UT 84112-5820
http://home.chpc.utah.edu/~cheatham/
(801) 587-9652
(801) 585-6208 (Fax)
_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Fri Sep 25 2015 - 08:00:02 PDT
Custom Search