A Comparison of Implicitly Parallel Multithreaded and Data-Parallel Implementations of an Ocean Model


Two parallel implementations of a state-of-the-art ocean model are described and analyzed: one is written in the implicitly parallel language Id for the Monsoon multithreaded dataflow architecture, and the other in data-parallel CM Fortran for the CM-5. The multithreaded programming model is inherently more expressive than the data-parallel model but is not especially adapted to regular data structures common to many scientific codes. One goal of this study is to understand what, if any, are the performance penalties of multithreaded execution when implementing a program that is well suited for data-parallel execution. To avoid technology and machine configuration issues, the two implementations are compared in terms of overhead cycles per required floating point operation. When flows in complex geometries typical of ocean basins are simulated, the data-parallel model only remains efficient if redundant computations are performed over land. The generality of the Id programming model, however, allows one to easily and transparently implement a parallel code that computes only in the ocean. When ocean basins with complex and irregular geometry are simulated the normalized performance on Monsoon is comparable with that of the CM-5. For more regular geometries that map well to the computational domain, the data-parallel approach proves to be a better match. We conclude by examining the extent to which clusters of mainstream symmetric multiprocessor (SMP) systems offer a scientific computing environment which can capitalize on and combine the strengths of the two paradigms. © 1998 Academic Press

DOI: 10.1006/jpdc.1997.1390

Extracted Key Phrases

23 Figures and Tables

Cite this paper

@article{Shaw1998ACO, title={A Comparison of Implicitly Parallel Multithreaded and Data-Parallel Implementations of an Ocean Model}, author={Andrew Shaw and Arvind and Kyoo-Chan Cho and Christopher Hill and R. Paul Johnson and John Marshall}, journal={J. Parallel Distrib. Comput.}, year={1998}, volume={48}, pages={1-51} }