Subject: Re: A proposal for FORALL loops

From: [email-masked] (Min-You Wu)
Date: Sun, 12 Apr 92 11:51:40 EDT

In Guy Steele's forall proposal, what I concerned is about
the expressive power and implementation efficiency. 
I believe that the SIMD-style forall gives a clear semantics, however, if
implemented directly, will result in large amount of overhead.
This tightly synchronous forall introduces too many extra synchronizations.
Users may need a flexible control of synchronization, instead of having
two synchronizations, one for rhs and one for lhs, in each statement.

One may suggest a smart compiler that can recognize the dependency between
statements and eliminate unnecessary synchronizations.
It might be extremely difficult to identify all dependencies.
In the case that the compiler cannot determine whether there is a
dependency, it must assume a synchronization for safety.
For the efficiency issue, I concern the cost of executing programs, 
as well as compiling programs.
When there are many unnecessary synchronizations, as mentioned above, 
communication costs may incur high overhead.
Also, identifying unnecessary synchronizations increases compilation cost.

One question: are the conditional branches executed in parallel or sequential?
In the SIMD style, the else part must be executed after the if-then part.
Then how can we take the advantage of MIMD?

Min-You