Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 9, Issue 4, Pages 195-209

Comparison of Message-Passing and Shared Memory Implementations of the GMRES Method on MIMD Computers

Joanna Płażek,1 Krzysztof Banaś,1 and Jacek Kitowski2,3

1Section of Applied Mathematics FAPCM, Cracow University of Technology, Warszawska 24, 31-155 Cracow, Poland
2Institute of Computer Science, University of Mining and Metallurgy, al. Mickiewicza 30, 30-059, Kraków, Poland
3Academic Computer Center CYFRONET, ul. Nawojki 11, 30-950 Kraków, Poland

Received 22 April 2002; Accepted 22 April 2002

Copyright © 2001 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


In this paper we compare different parallel implementations of the same algorithm for solving nonlinear simulation problems on unstructured meshes. In the first implementation, making use of the message-passing programming model and the PVM system, the domain decomposition of unstructured mesh is implemented, while the second implementation takes advantage of the inherent parallelism of the algorithm by adopting the shared-memory programming model. Both implementations are applied to the preconditioned GMRES method that solves iteratively the system of linear equations. A combined approach, the hybrid programming model suitable for multicomputers with SMP nodes, is introduced. For performance measurements we use compressible fluid flow simulation in which sequences of finite element solutions form time approximations to the Euler equations. The tests are performed on HP SPP1600, HP S2000 and SGI Origin2000 multiprocessors and report wall-clock execution time and speedup for different number of processing nodes and for different meshes. Experimentally, the explicit programming model proves to be more efficient than the implicit model by 20—70%, depends on the mesh and the machine.