Abstract

Summary The quest for efficient and scalable parallel reservoir simulators has been evolving with the advancement of high-performance computing architectures. Among the various challenges of efficiency and scalability, load imbalance is a major obstacle that has not been fully addressed and solved. The causes of load imbalance in parallel reservoir simulation are both static and dynamic. Robust graph-partitioning algorithms are capable of handling static load imbalance by decomposing the underlying reservoir geometry to distribute a roughly equal load to each processor. However, these loads that are determined by a static load balancer seldom remain unchanged as the simulation proceeds in time. This so-called dynamic imbalance can be exacerbated further in parallel compositional simulations. The flash calculations for equations of state (EOSs) in complex compositional simulations not only can consume more than half of the total execution time but also are difficult to balance merely by a static load balancer. The computational cost of flash calculations in each gridblock heavily depends on the dynamic data such as pressure, temperature, and hydrocarbon composition. Thus, any static assignment of gridblocks may lead to dynamic load imbalance in unpredictable manners. A dynamic load balancer can often provide solutions for this difficulty. However, traditional techniques are inflexible and tedious to implement in legacy reservoir simulators. In this paper, we present a new approach to address dynamic load imbalance in parallel compositional simulation. It overdecomposes the reservoir model to assign each processor a bundle of subdomains. Processors treat these bundles of subdomains as virtual processes or user-level migratable threads that can be dynamically migrated across processors in the run-time system. This technique is shown to be capable of achieving better overlap between computation and communication for cache efficiency. We use this approach in a legacy reservoir simulator and demonstrate a reduction in the execution time of parallel compositional simulations while requiring minimal changes to the source code. Finally, it is shown that domain overdecomposition, together with a load balancer, can improve speedup from 29.27 to 62.38 on 64 physical processors for a realistic simulation problem.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.