| Jan Vorbrüggen 2008-02-25, 8:18 am |
| > In my personal opinion, programming language is not an issue. What we need
> is good parallelism (efficient parallel algorithm). Parallel computing is
> not to parallelize do-loops. If there is a good parallelism, no matter in
> what kind of programming language, it works efficiently. A good parallelism
> can be programmed in message-passing machine and memory-sharing machine. In
> my opinion, developing parallel algorithms is more important than learning
> programming languages.
Agreed on the general sentiment and the priority of thoroughly
understanding the potential parallelism in your algorithm(s). However,
there is such a thing as overparallelizing. I have yet to see a compiler
that will take, say, an occam2 program full of PARs and convert some of
the inner ones into SEQs, _based_on_ the characteristics of the machine
for which it is compiling. Or a Fortran compiler that will take a FORALL
and convert it either to a DO loop or a distributed set of loops, again
based on the compilation target.
As long as I have to "destroy excess parallelism" myself, as the
programmer, "just" writing a maximally parallel program - which would be
easier (for me) that writing a maximally sequential program - won't cut it.
Jan
|