On Sat, Jul 17, 2010 at 07:50:30AM -0400, Jeff Squyres wrote:
> On Jul 17, 2010, at 4:22 AM, Anton Shterenlikht wrote:
> > Is loop vectorisation/unrolling safe for MPI logic?
> > I presume it is, but are there situations where
> > loop vectorisation could e.g. violate the order
> > of execution of MPI calls?
> I *assume* that the intel compiler will not unroll loops
> that contain MPI function calls. That's obviously an
> assumption, but I would think that unless you put some
> pragmas in there that tell the compiler that it's safe
> to unroll, the compiler will be somewhat conservative
> about what it automatically unrolls.
% mpif90 ./p-grains1.f90
./p-grains1.f90(123): (col. 1) remark: LOOP WAS VECTORIZED.
./p-grains1.f90(250): (col. 35) remark: LOOP WAS VECTORIZED.
Looking at the source code:
250 write(*,*)count(sub_domain .ne. 0)
where sub_domain is an array.
So, it seems the compiler vectorised only implicit whole
Jeff, many thanks again
Room 2.6, Queen's Building
Mech Eng Dept
University Walk, Bristol BS8 1TR, UK
Tel: +44 (0)117 331 5944
Fax: +44 (0)117 929 4423