GPGPU acceleration in OpenFOAM

Similar documents
GPGPU accelerated Computational Fluid Dynamics

Accelerating CFD using OpenFOAM with GPUs

Design and Optimization of OpenFOAM-based CFD Applications for Hybrid and Heterogeneous HPC Platforms

AeroFluidX: A Next Generation GPU-Based CFD Solver for Engineering Applications

Introduction to GPU Programming Languages

GPUs for Scientific Computing

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o

Introduction to GPU hardware and to CUDA

GPU Acceleration of the SENSEI CFD Code Suite

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

Hardware-Aware Analysis and. Presentation Date: Sep 15 th 2009 Chrissie C. Cui

Accelerating Simulation & Analysis with Hybrid GPU Parallelization and Cloud Computing

HPC with Multicore and GPUs

Case Study on Productivity and Performance of GPGPUs

Introduction to GPGPU. Tiziano Diamanti

Real-time Visual Tracker by Stream Processing

YALES2 porting on the Xeon- Phi Early results

Home Exam 3: Distributed Video Encoding using Dolphin PCI Express Networks. October 20 th 2015

High Performance. CAEA elearning Series. Jonathan G. Dudley, Ph.D. 06/09/ CAE Associates

SUBJECT: SOLIDWORKS HARDWARE RECOMMENDATIONS UPDATE

Mixed Precision Iterative Refinement Methods Energy Efficiency on Hybrid Hardware Platforms

HPC enabling of OpenFOAM R for CFD applications

ST810 Advanced Computing

ACCELERATING COMMERCIAL LINEAR DYNAMIC AND NONLINEAR IMPLICIT FEA SOFTWARE THROUGH HIGH- PERFORMANCE COMPUTING

Graphic Processing Units: a possible answer to High Performance Computing?

HETEROGENEOUS HPC, ARCHITECTURE OPTIMIZATION, AND NVLINK

64-Bit versus 32-Bit CPUs in Scientific Computing

Turbomachinery CFD on many-core platforms experiences and strategies

High Performance Computing in CST STUDIO SUITE

GPU File System Encryption Kartik Kulkarni and Eugene Linkov

Large-Scale Reservoir Simulation and Big Data Visualization

Evaluation of CUDA Fortran for the CFD code Strukti

A GPU COMPUTING PLATFORM (SAGA) AND A CFD CODE ON GPU FOR AEROSPACE APPLICATIONS

High Performance Matrix Inversion with Several GPUs

Lecture 11: Multi-Core and GPU. Multithreading. Integration of multiple processor cores on a single chip.

GPU for Scientific Computing. -Ali Saleh

The Methodology of Application Development for Hybrid Architectures

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

Parallel Computing with MATLAB

Performance Evaluation of NAS Parallel Benchmarks on Intel Xeon Phi

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

HPC Deployment of OpenFOAM in an Industrial Setting

Assessing the Performance of OpenMP Programs on the Intel Xeon Phi

Parallel Computing. Introduction

ArcGIS Pro: Virtualizing in Citrix XenApp and XenDesktop. Emily Apsey Performance Engineer

Next Generation GPU Architecture Code-named Fermi

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

Three Paths to Faster Simulations Using ANSYS Mechanical 16.0 and Intel Architecture

Parallel Programming Survey

Efficient Parallel Graph Exploration on Multi-Core CPU and GPU

CUDA programming on NVIDIA GPUs

Computer Graphics Hardware An Overview

Experiences on using GPU accelerators for data analysis in ROOT/RooFit

Retargeting PLAPACK to Clusters with Hardware Accelerators

Towards Large-Scale Molecular Dynamics Simulations on Graphics Processors

PyFR: Bringing Next Generation Computational Fluid Dynamics to GPU Platforms

OpenFOAM at FM LTH. Erdzan Hodzic. FM Seminars: 16-march Division of Fluid Mechanics, Department of Energy Sciences, Lund University

Hardware Acceleration for CST MICROWAVE STUDIO

GPU Parallel Computing Architecture and CUDA Programming Model

OpenFOAM Workshop. Yağmur Gülkanat Res.Assist.

RWTH GPU Cluster. Sandra Wienke November Rechen- und Kommunikationszentrum (RZ) Fotos: Christian Iwainsky

HPC Cluster Decisions and ANSYS Configuration Best Practices. Diana Collier Lead Systems Support Specialist Houston UGM May 2014

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

Introduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

Chapter 2 Parallel Architecture, Software And Performance

STORAGE HIGH SPEED INTERCONNECTS HIGH PERFORMANCE COMPUTING VISUALISATION GPU COMPUTING

Sourcery Overview & Virtual Machine Installation

Overview of HPC Resources at Vanderbilt

A Simultaneous Solution for General Linear Equations on a Ring or Hierarchical Cluster

Introduction to Numerical General Purpose GPU Computing with NVIDIA CUDA. Part 1: Hardware design and programming model

Concurrent Solutions to Linear Systems using Hybrid CPU/GPU Nodes

How To Run A Steady Case On A Creeper

Enhancing Cloud-based Servers by GPU/CPU Virtualization Management

Le langage OCaml et la programmation des GPU

Part I Courses Syllabus

GeoImaging Accelerator Pansharp Test Results

OpenACC Parallelization and Optimization of NAS Parallel Benchmarks

ultra fast SOM using CUDA

Multicore Parallel Computing with OpenMP

Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

Unleashing the Performance Potential of GPUs for Atmospheric Dynamic Solvers

Cluster Scalability of ANSYS FLUENT 12 for a Large Aerodynamics Case on the Darwin Supercomputer

GPU Architecture. Michael Doggett ATI

E6895 Advanced Big Data Analytics Lecture 14:! NVIDIA GPU Examples and GPU on ios devices

GPU Renderfarm with Integrated Asset Management & Production System (AMPS)

Auto-Tuning TRSM with an Asynchronous Task Assignment Model on Multicore, GPU and Coprocessor Systems

QCD as a Video Game?

The influence of mesh characteristics on OpenFOAM simulations of the DrivAer model

Performance Characteristics of Large SMP Machines

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

CFD Implementation with In-Socket FPGA Accelerators

Maximize Performance and Scalability of RADIOSS* Structural Analysis Software on Intel Xeon Processor E7 v2 Family-Based Platforms

SGI HPC Systems Help Fuel Manufacturing Rebirth

Cell-SWat: Modeling and Scheduling Wavefront Computations on the Cell Broadband Engine

Transcription:

Carl-Friedrich Gauß Faculty GPGPU acceleration in OpenFOAM Northern germany OpenFoam User meeting Braunschweig Institute of Technology Thorsten Grahs Institute of Scientific Computing/move-csc 2nd October 2013 Slide 1/19

Overview 1 HPC on GPGPUs 2 GPU-plugins f. OpenFOAM 3 Comparison CPU-GPU Slide 2/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Why GPGPUs are perfect for HPC? CPU vs. GPU Chip-Design CPU is optimized for serial tasks (single thread) GPU is optimized for massive parallel data handling (multiple threads) GPU does not care if pixel data has to be handled (tessellation, transformation, rendering)...... or scientific calculation has to be performed. Slide 3/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Single instruction multiple threads Massive parallel data throughput High demand on computational power (real time rendering) Programing model inspired by vector computers (SIMD) Goal: Work off as many threads in parallel as possible Through-put orientated approach Accomplished by: Many Arithmetic Logical Units High clock rate of the data bus Highly suitable for massive parallel computing Slide 4/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

NVIDIA Quadro 6000 NVIDIA Quadro 6000 Affordable computing cluster in your workstation CUDA cores: 448 GFlops (SP): 1030.4 GFlops (DP): 515.2 Frame buffer: 6 GB GDDR5 Memory bandwidth: 144 GB/s Cost: 3.500 e( 4,800 $) Slide 5/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

GPGPU accelerated CFD GPGPU-plugins for OpenFOAM Make use of one of this libraries Open Source ofgpu v1.0 Linear solver library (Symscape) CUFFlink (CUda For Foam Link) Dan Combest speed-it classic (Vratis free version) Commercial (not tested) Culises (FluidDyna) Speed-IT 2.3 (Vratis) Slide 6/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Proceeding Compile the plugin Check in the library (controldict) functions { cudagpu { type cudagpu; functionobjectlibs ( " gpu " ); cudadevice 0; } } Declare solver (fvsolutions) p { solver PCGgpu; preconditioner smoothed_aggregation; tolerance 1e-06; reltol 0.01; } Slide 7/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Cuda side Open Libraries mostly make use of CUSP library for sparse linear algebra and graph computations on CUDA Linear Solver on GPU CG, BiCG, BiCGstab, GMRES Sparse Matrix Formats CSR, DIA, ELL, HYP Thrust parallel algorithms library which resembles the C++ Standard Template Library (STL). Commerial libraries based on own solver implementation in CUDA Slide 8/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

... so far Very nice (easy use) but where s the beef??? What is the acceleration one can get? With how many CPUS/GPGPUS (Hardware) Does this pay off? Slide 9/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Validation Coming to numbers one mostly see something like this: Test case lid-driven cavity with very small residuals i.e (1e-15) in order to keep the matrix solver busy. Slide 10/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

but who needs a lid-driven cavity... Speed-up for lid-driven cavity (icofoam solver) Hardware 512000 1 Mill cells remark CPU only 1.00 1.00 ofgpu1.0 3.03 3.35 Single Precision cufflink fpe fpe OF 1.6ext. SpeedITclassic 2.74 3.24 SP (tubs) 1.32 1.54 Student project TUBS 8 CPUs 2.56 2.05 How does these plugins perform on real test cases? Slide 11/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

KRISO container ship example Test Cases (1.8 M cells) a) Solver: simplefoam (steady state) relative Tolerance reltol = 0.1 absolute Tolerance atol=e-7/e-8 b) Solver: simplefoam (steady state) relative Tolerance reltol = 0.0 absolute Tolerance atol=e-7/e-8 c) Solver: interfoam (transient) relative Tolerance reltol = 0.1 absolute Tolerance atol=1e-8 Slide 12/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Speedup KCS example Speed-up for KCS-test case Hardware a) b) c) remark CPU only 1.00 1.00 1.00 ofgpu1.0 3.35 7.95 1.85 SinglePrecision cufflink 1.21 3.84 1.07 OF 1.6ext. speeditclassic fpe fpe 0.66 CG for pressure SP (tubs) 1.26 3.52 1.03 8 CPUs only 3.75 4.00 2.88 8 CPUs + cufflink 1.98 2.05 1.21 Slide 13/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Commercial library Culises B. Landmann, Accelerating the Numerical Simulation of Heavy-Vehicle Aerodynamics Using GPUs with Culises, ISC 2013, Leipzig, June 2013 Slide 14/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Ahmdals Law...? July 2013 Our recent findings indicate that the SpeedIT alone cannot accelerate OpenFOAM (and probably other CFD codes) to the satisfactory extent. If you follow our recent reports you will see SpeedIT is attractive for desktop computers but performs worse when compared to server class CPUs, such as Intel Xeon. The reason for such mild acceleration is the Amdahl s Law which states that the acceleration is bounded by the percentage of the code that cannot be parallalized.??? Ahmdal s law stems from 1967... Slide 15/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

What happened GPUs are made for number crunching Sometimes there is too few to crunch Inner solver iterations for KCS: Velocity 3 pressure 3 (k, ω) 1 To few inner solver iterations in this example Time to copy matrix from CPU to GPU is dominant Most validation test cases are tuned to very small tolerances This gains the impressive speed-up Realistic test cases needs usually less iterations & more relaxed tolerance settings Slide 16/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Overhead influence (A. Monakov, V. Platono: Accelerating OpenFOAM with a Parallel GPU, 8th OpenFOAM Workshop 2013) Slide 17/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Consequences For real speedup I see two possible ways: Bring the whole algorithm (i.e. Simple/PISO) to the GPGPU Not only the matrix Student research Project at the Institute Scientific Computing Matthias Huy, TU Braunschweig Problems: Object-oriented manner of OpenFOAM A whole bunch of basic classes has to be brought to the GPU Program your own solver to the GPU... Slide 18/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013

Comparison CPU-FV vs. LBM-GPU CPU-Finite Volume code Commercial solver running on 80 cores, Two-phase flow Hardware: 80 Core cluster Simulation time: 2 weeks GPU-LBM code Lattice-Bolzmann code on a workstation Two-phase flow Hardware: 1 NVIDIA Quadro 6000 GPGPUs Simulation time : 8 hours Comparison not really fair, but... Speed up 40 Slide 19/19 Thorsten Grahs GPU plugins for OpenFOAM 2nd October 2013