Application of Parallel Programming to Utchem Simulator on Massively Parallel Computers and a Cluster of Workstations




Ucpinar, Taskin

Journal Title

Journal ISSN

Volume Title



Parallel processing is an approach for speeding up the time required to solve large-scale engineering problems. The basic idea is to solve a large-scale engineering problem in a reasonable amount of time by dividing a given problem into smaller segments and allowing several processors to work on the individual parts simultaneously. This work describes the application of distributed-memory parallel programming techniques to a compositional simulator called UTCHEM. The University of Texas Chemical Flooding Reservoir Simulator (UTCHEM) is a general-purpose highly vectorized chemical flooding simulator that models the transport of chemical species in three-dimensional, multiphase flow through permeable media. Parallel version of UTCHEM addresses solving large-scale problems by reducing the amount of time that is required to obtain the solution as well as providing a flexible and a portable programming environment. The original parallel code was modified for running on a CRAY T3D, a distributed memory, multiprocessor computer by using CRAY-PVM as the interprocessor communication library. Later, the code was remodified to improve its portability and to add the capabilities of C-Linda distributed data structures model. As the final stage of the code development, the code was ported to IBM SPl and to a cluster of workstations using public-domain PVM. Several reservoir simulations were performed in order to measure the performance of the code on parallel computers. In this work, we present the performance results of the most time-consuming subroutines in the simulator using Jacobi Conjugate-Gradient as linear solver as well as the performance results of the overall code. The application of distributed memory parallel programming on UTCHEM has proven to be an achievable method for increasing the speed of the simulator and enhancing the computational capabilities of the code for large-scale reservoir simulations. Also, the data communication routines were modified in such a way that the portability of the original code across different computer architectures was made possible.



LCSH Subject Headings