Special thanks to David Schneider for his work on organizing and managing the Perfect effort. In order to ensure relevance of the codes in the suite, the authors plan to retain control of the source and algorithms contained therein, and request that suggestions for changes and updates be directed to the authors only. The test data are read and processed in parallel, and the output is written to disk. Simple checksum and timing tables are printed to standard output. The same flow is executed on all processors.
Individual modules communicate via message passing to implement parallel algorithms.
Nearly all message passing is hidden via transpose operations that change the parallel data distribution as appropriate for each algorithm. A significant part of the seismic processing flow requires data to be read in transposed fashion across all processors. Assumes a homogeneous array of processors with similar capabilities. Load balance is rudimentary, with an attempt to distribute equal-sized 'workstation' chunks of work. Typically, the data is treated as a collection of 2D arrays, with each processor owning a 'slab' of data.