This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: Automatic parallelization in 4.3?
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Brian Taylor <spam dot brian dot taylor at gmail dot com>
- Cc: fortran at gcc dot gnu dot org
- Date: Tue, 24 Oct 2006 00:11:51 +0200
- Subject: Re: Automatic parallelization in 4.3?
- References: <463f0b810610231444m21fc244et71aa12c3f10755ea@mail.gmail.com>
Hello,
> I noticed that the GCC 4.3 projects page mentions plans for automatic
> parallelization of loops using the framework developed for OpenMP (see
> http://gcc.gnu.org/wiki/AutomaticParallelization ). I was wondering
> if there are any specific plans to support the Fortran 95 forall
> construct. These types of loops can be manually parallelized using
> the OpenMP "workshare" directive.
>
> Since all procedures within a forall construct must be pure (i.e. have
> no side effects), it seems like they should be easier to analyze and
> auto-parallelize than normal do loops. For similar reasons, the
> "where" statement might be another candidate for auto-parallelization.
>
> I found one post by Zdenek Dvorak regarding auto-parallelization, but
> it doesn't mention Fortran AFAICT. See
> http://gcc.gnu.org/ml/gcc-patches/2006-09/msg01243.html
>
> Any comments? I can post a request for enhancement on bugzilla if it
> would be useful.
the autoparallelization we currently develop is language-independent
(it runs together with other loop optimizations quite late in the
compilation process), so I cannot do anything strictly fortran specific.
It should be possible to pass some information from fortran frontend
(like the fact that the procedures in forall constructs are pure) to the
optimizers, which might make it possible to parallelize the
corresponding loops (and it could also help other optimizations).
Zdenek