Modern reservoir simulation of complex physical processes for highly detailed models needs a lot of computational power. Constrained Pressure Residual (CPR) – based preconditioner for linear solver are the best in terms of performance and robustness for reservoir simulation. From another side the most advanced processors are based on multi-core architectures, which allow for efficient parallel processing with extremely low cost of memory-processor communication. The work was focused on adaptation of CPR algorithms for multi-core architectures with help of OpenMP technology, as well as parallelization the rest of simulation code. This work was done based on Stanford's General Purpose Research Simulator (GPRS). The two-stage CPR preconditioner where the first stage involves formulating and solving a global pressure system, and the second stage requires application of a simple preconditioner, but on the full Jacobian, was completely parallelized. One of the most challenging issues was parallelization of ILU(0) which implies second stage of preconditioning. One of approaches of parallel ILU(0) based on domain decomposition was formulated and tested using challenging compositional simulation problems with highly detailed models. The results demonstrate good scalability of this parallel ILU(0) approach for SPE 10 compositional model.