The Chaos [55,30] and PARTI [64] work from the University of Maryland includes some of the same conceptual framework that COP does. The goal is to support irregular distributions of data in applications, unlike the standard block and cyclic distributions applied to regular data. Instead, an indirection array is used to tell each processor where to find the data that it needs. Partitioning algorithms are used to place the data, and (on the loop index space) to place the computations. Periodically, if distributions change, the Chaos library can recompute the irregular distribution. It supports communications optimization by grouping together all I/O needed between nodes at the beginning and end of each iteration in an automatic fashion. This use of run-time communications configuration is reminiscent of COP, and is in fact directly usable with COP; the ``inspector'' that determines communications could generate COP code, and the application could pass the data to a runtime-linked stream router to generate communications schedules.