The first problem a programmer faces when implementing a parallel application code is the data decomposition problem. In the co-array model, the programmer partitions data structures into pieces and assigns each piece to an image. The run-time system places each piece in the appropriate local memory and executes code independently for each image. The programmer uses co-array syntax to move data between local memories and inserts execution control statements to order statement execution among images.