Enhancing the Efficiency of Massively Parallel Programs in Computational Science and Engineering Applications

 

Massively Parallel Computing is gaining ground in high-performance computing. CUDA (an extension to C) is most widely used parallel programming framework for general purpose Graphic processing Units (GPUs). However, the task of writing optimized CUDA programs is complex even for experts. We are proposing to develop an automatic restructuring to optimize CUDA programs for computational science and engineering applications with following features: 

The major outcomes of this project are: 1) an automatic restructuring tool for optimizing the performance of CUDA programs focusing on dense and sparse linear algebra solvers, (2) a parallel oil reservoir history matching based on forward sensitivity and adjoint sensitivity methods, and (3) a research lab in Massively Parallel Computing and a graduate course in Computational Science and Engineering. 

A restructuring tool to ease the process of writing efficient CUDA programs will be developed. The tool will be used to parallelize the Reservoir Simulation system for Well History Matching.  The objective is to build the expertise and the know-how that will lead to efficiently writing parallel code for scientific simulators to serve the graduate research program and the Oil and Gas industry in the kingdom of Saudi Arabia.