This chapter defines the Adlib communication library. Currently all communication functions in Adlib take the form of collective transformations on distributed arrays. These transformations are implemented in terms communication schedules. Each kind of transformation has an associated class of schedules. Specific instances of these schedules, involving particular data arrays and particular parameters, are created as objects from the classes concerned. Executing a schedule initiates the communications required to implement the transformation. A single schedule may be executed many times, repeating the same communication pattern.
Future versions of Adlib may support other communication paradigms. A convenient extension would allow primitives for one-sided communication. These would permit direct read or write access to remote patches of distributed arrays.