As we have seen, the communication patterns implied by languages like HPF can be complex. Often it is impractical for a compiler to generate all the low-level message passing instructions needed to execute these communications. Instead the compiler may choose to emit code with calls to higher-level libraries for manipulating distributed array data. By analogy with the run-time support libraries used for memory management (and so on) in sequential languages, the data parallel compiler's library for handling distributed arrays is often called its run-time library.
In this section we will discuss some libraries that have been used, or could be used, in this role.