Q. What do you mean by Data Distribution?
Data distribution directives tell compiler how program data is to be distributed among memory areas connected with a group of processors. The logic used for data distribution is that if a set of data has independent sub-blocks then computation on them can be performed in parallel. They don't permit programmer to decide directly that which processor will carry out a specific computation however it's expected that if operands of a specific sub-computation are all found on same processor the compiler would assign that portion of computation to processor holding operands upon which no remote memory accesses would be included.