This temporary is filled with the current values of the array immediately before the computation. The computation then involves temporary arrays which are already localized. This optimization allows a group of values to be localized and communicated prior to the computation. The following code provides a sample of code that would use the copy section communications optimization. The compiler creates schedules for communications.
Schedules are part of the overhead involved with communications.
Indirection arrays generally require expensive scheduling. By careful programming, one can reduce the number of schedules generated. If the code is written as in the second example, pghpf generates one schedule and reuses this schedule for second communication. Since the value of v is not changed between statements and its second use is in the loop, pghpf may be able to use a single schedule for the different communications, thus reducing the overhead required for producing the communications schedule. Another technique that allows the compiler to optimize this type of communications is indirection array alignment.