What is the smallest change required to convert Fortran into a robust and efficient parallel language? Our answer is a simple syntactic extension. It looks and feels like Fortran and requires Fortran programmers to learn only a few new rules.
–John Reid, Coarrays in the next Fortran Standard
You need to grasp two concepts to get started with parallel Fortran programming: images and coarrays. A Fortran image refers to a parallel process, be it a thread or a core. Each image exists with its own copy of the program and its local memory. Images execute the program independently from one another, until instructed otherwise. You can tell the images to wait for each other; that is, synchronize them. You can also order the images to send or receive data between one another. Coarrays are the main mechanics for doing this, and I’ll spend most of the time explaining how they work.