  The black oil model is widely used to describe multiphase porous media flow
in the petroleum industry. The fully implicit method features strong stability
and weak constraints on time step-sizes; hence, commonly used in the current
mainstream commercial reservoir simulators. In this paper, a CPR-type
preconditioner with an adaptive "setup phase" is developed to improve parallel
efficiency of petroleum reservoir simulation. Furthermore, we propose a
multi-color Gauss-Seidel (GS) algorithm for algebraic multigrid method based on
the coefficient matrix of strong connections. Numerical experiments show that
the proposed preconditioner can improve the parallel performance for both
OpenMP and CUDA implements. Moreover, the proposed algorithm yields good
parallel speedup as well as same convergence behavior as the corresponding
single-threaded algorithm. In particular, for a three-phase benchmark problem,
the parallel speedup of the OpenMP version is over 6.5 with 16 threads and the
CUDA version reaches more than 9.5.
