Automatic parallelization in 4.3?
Diego Novillo
dnovillo@redhat.com
Tue Oct 24 18:42:00 GMT 2006
Janne Blomqvist wrote on 10/24/06 07:11:
> FWIW, I had a similar experience a few years ago when I tried the
> autoparallelization on XL Fortran/AIX. It was *a lot* slower than just
> using MPI over shared memory (ideological purity be damned).
>
> Still waiting for the magic parallelization fairy, I suppose..
>
This optimization will never be enabled by default. Automatic
parallelization belongs to a family of transformations that generally
results in lowered performance.
The fundamental problem with autoparallelism is the need to preserve the
sequential semantics of the code and the coarse granularity required to
obtain performance. Unlike ILP or data parallel transformations like
vectorization, the glue code needed to spawn tasks and synchronization
is significantly more expensive.
This does not mean that autoparallelism doesn't have its uses. When it
works, it can give you fairly decent speedups. But the input code needs
to have some special control and data flow properties that are not all
that common in real world code.
To get the real benefit from multiprocessor machines, it is a lot more
profitable to start thinking in terms of concurrent algorithms.
Compiler switches on dusty-deck sequential code will only get you so far.
More information about the Fortran
mailing list