In this section we will discuss some patterns of communication that arise in when a language like HPF is translated to a SPMD program. First we will cover the regular communication patterns that arise from simple array assignments, nearest-neighbour problems, and array intrinsics. Then the irregular communication patterns implied by data-parallel statements with non-linear subscript expressions will be introduced. Finally we cover some essentially task-parallel codes that can be translated most effectively in terms of ``one-sided communication''.