This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Automatic parallelization in 4.3?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]