7 Going parallel with Fortran coarrays

 

This chapter covers

  • Processing weather buoy data in parallel
  • Decomposing a problem between parallel processors
  • Using coarrays to exchange data between processors
  • The first parallel version of the tsunami simulator

Parallel programming became more commonly used in the early 1990s when the need for larger and faster solutions in physical sciences and engineering exceeded what could be done with individual existing computers. Scientists and engineers began connecting computers in intricate, dense networks and exchanging packets of data between them. What used to be one impossibly large computational problem became feasible because each computer could work on a small subset of the problem, and only communicate the data needed by other computers to proceed with their calculations. This gave rise to the message-passing style of parallel programming, later implemented as the Message Passing Interface (MPI) library. To date, MPI remains the de facto standard for parallel programming in Fortran, C, and C++ applications.

7.1 Why write parallel programs?

7.2 Processing real-world weather buoy data

7.2.1 About the data

7.2.2 Getting the data and code

7.2.3 Objectives

7.2.4 Serial implementation of the program

7.3 Parallel processing with images and coarrays

7.3.1 Fortran images

7.3.2 Getting information about the images

7.3.3 Telling images what to do

7.3.4 Gathering all data to a single image

7.4 Coarrays and synchronization, explained

7.4.1 Declaring coarrays

7.4.2 Allocating dynamic coarrays

7.4.3 Sending and receiving data

7.4.4 Controlling the order of image execution