DeepSim 2017.9 update – significant speed improvements!

When upgrading to the 2017.9 version of DeepSim, you should notice a very significant increase in simulation speed. Compared to the previous version of DeepSim, speedups up to 3x have been observed! The exact speedup is dependent on the the internals of your Android device and the type of model you are running, but in most cases the speedup should be very noticeable.

If you have already installed DeepSim, the new 2017.9 version will automatically install in the coming days via the usual Play Store updating procedure. If you have not installed DeepSim on your Android phone or tablet yet, now would be a great time to get started. DeepSim can be installed via the Play Store by following the this link.

If you are curious on how the speedup was obtained, we will go over some of the optimizations that led to the speed increases below. Be warned though, the content below can be a bit technical. Readers less familiar with the internals of reservoir simulation software, might want to quickly go over to the introduction to reservoir simulation on the PetroWiki website first.

The most time consuming step for a fully implicit simulator (such as DeepSim) is to solve the huge system of linearized reservoir equations (Darcy equation, well inflow, compaction etc.). To make sure that this process is done as efficiently as possible, the system of linear equations is first preconditioned. In the preconditioning step, a cheap but inexact solution is created, that is then used as a good starting point to obtain the exact solution in the linear solve step. Mathematically inclined readers are that are interested in the details are encouraged to skim through the book of Y. Saad for a more detailed description). In this version of DeepSim we have changed the precondition to a more efficient one, where using similar amounts of computational effort, a better approximate solution is obtained.

Where the gains in the preconditioner are mainly due to using better math algorithms, the actual code has been significantly optimized too. This version of DeepSim makes better use of multiple cpu cores in current devices, by dividing the original simulation problem into multiple sub problems that can be tackled using different multiple cpu cores at the same time.

Each individual cpu core is used more efficiently too. Starting this version of DeepSim, the simulation engine actively uses so called ‘SIMD’ instructions where possible. SIMD stands for Single Instruction Multiple Data. As the name implies, using these instructions allows DeepSim to perform multiple calculations in the same time frame in which previously only a single operation was possible.

Using these performance enhancements, modern devices should be able to handle grids which thousands of grid blocks with relative ease!

Happy simulating!



Leave a Reply