SpeedIT FLOW is a RANS single-phase fluid flow solver that runs fully on GPU. It supports OpenFOAM format and is about 3x faster than OpenFOAM running on 2xCPU.
2. A GPU Success Story in 5 steps*
* Compare with Accelerated ANSYS Fluent presentation by Robert Strzodka (NVIDIA).
3. Step 1: Identify the application
OpenFOAM Computational Fluid Dynamics
Why OpenFOAM*:
Free to use and open source, more and
more popular in CFD community.
Large user base across engineering
industries, e.g. car, oil&gas, material,
aviation, etc
OPENFOAM® is a registered trademark of ESI Group.
This offering is not approved or endorsed by ESI Group, the
producer of the OpenFOAM software and owner of the
OPENFOAM® and OpenCFD® trademarks.
4. Step 2: Identify the bottlenecks
GPU
◼Partial acceleration (see Fig.) is not effective.
◼ofgpu (from Symscape), Culises (Fluidyna), NVIDIA (nvAMG) offer
the mild acceleration for non-linear problems.
◼Maximal acceleration vs. Intel Xeon : ca. 1.8x (nvAMG).
Problem: Amdahl’s Law should not be ignored.
Solution: Implement the whole solver on GPU.
Assemble
Linear System of
Equations
Solve Linear System
of Equations
Converged
?
ca. 40% of
Runtime
ca. 60% of
Runtime
Fig. Navier Stokes Equation
calculation scheme.
5. Step 3: Parallelize the Algorithm
◼Implement non-linear solvers fully on GPU:
◼PISO and SIMPLE flow solvers*
◼AMG preconditioner (CUSP).
◼kOmegaSST turbulence model.
◼Various boundary conditions.
* Acceleration of Iterative Navier-Stokes solvers on GPUs, Int J Comp Fluid Dynamics 07/2013; 27(4-5):201-209
GPU
Assemble
Linear System of
Equations
Solve Linear System
of Equations
Converged?
6. Step 4: Create Production-ready
Library
◼Team of GPU specialists, physicists (Vratis, Wroclaw universities).
◼Understand the algorithm, parallelize with caution, adapt to GPU hardware
limitations.
◼Invest in validation and testing with industrial partners.
◼Have fun working with industry leaders!
7. Step 5: Enjoy the acceleration
Motorbike
(OpenFOAM tutorial)
6.5M cells.
external, aero, turbulent
flow.
simpleFoam, double
precision
Meshing on CPU
Solving on GPU
x.3.18 acceleration
8. Step 5: Enjoy the acceleration
Aero*
(based on Motorbike)
3M cells
external, aero, turbulent
flow.
simpleFoam, double
precision
Meshing on CPU, solving
on GPU
x.2.76 acceleration
* Geometry obtained from 4-id network.
9. Step 5: Enjoy the acceleration
Solar Car*
(based on Motorbike)
3.7M cells
external, aero, turbulent
flow.
simpleFoam, double
precision
Meshing on CPU
Solving on GPU
x.2.85 acceleration
* Geometry obtained from 4-id network.
11. SpeedIT FLOW: OpenFOAM accelerator
Use your GPU as an external accelerator
for your OpenFOAM cases and use CPU as
usual.
4 Aero Simulations on CPU: 4 x 5493
sec (12 CPU cores occupied)
4 Aero Simulations on GPU: 4 x 2100
sec. (1 CPU core occupied)
… and your CPU is still not busy! You
can use it for meshing, visualization,
another simulations (Fig: 3xGPU + 1x11
CPU cores is 3.2x faster!).
13. SpeedIT FLOW 1.0
◼Integration:
Dynamically linked library with public C-interface, Easy to use API.
◼Reader/Writer of OpenFOAM* cases.
◼GPU accelerated solvers: gico, gsimple, gpiso
◼Turbulence model: kOmegaSST.
◼Solves problem with geometries up to 7 million cells on a single card (with
12GB GPU RAM).
◼Supports AMD** and NVIDIA cards.
* Tested with OpenFOAM ver. 2.0.1
** SpeedIT FLOWCL to be released.
14. SpeedIT FLOW: usage
◼Run from command line
simpleFoamToSpeedITflow -case ./myCaseInOF #OpenFOAM -> SpeedIT FLOW format conversion
gpiso ./myCaseInOF & #solves the case on GPU. Use CPU for other tasks.
paraFoam -case ./myCaseInOF # visualize the result.
◼Use API
15. Don’t wait. Just SpeedIT.
Vratis
Muchoborska 18
50-424 Wroclaw, Poland
Questions?
Contact us at: info@vratis.com