English  Sprachen Icon  |  Gebärdensprache  |  Leichte Sprache  |  Kontakt


GPU compute power for automated finite element computations - on the road towards interactive simulations

By Florian Rathgeber (10.02.2011)

Numerical simulations are an essential part of science and engineering today, but mostly allow no control and provide no feedback of the computational process while it is running. Allowing the user to steer the computation while making it run faster on state-of-the-art parallel hardware is the challenge to address.

A world without numerical simulations is inconceivable for many scientists and engineers of today. Simulations have permeated the professional life of many people in these fields and are not only well established next to classical experiments but increasingly seek to replace them. Their success is largely due to the power of the mathematical methods they are based on, foremost the Finite Element Method (FEM), and the rapidly increasing speed of computational hardware they are run on.

Numerical simulations are applied in a variety of different fields in science and engineering, i.e. aerospace and automotive industry could not exist in the way they do today without numerical simulations. Before the first clay model of a new car design is built and before the first scale model of an airplane wing is tested in a wind tunnel experiment, supercomputers have spent countless hours crunching numbers and solving linear systems of equations. Also the weather report in the evening news is inconceivable without sophisticated weather models and numerical simulations.

The FEM is a numerical technique for finding approximate solutions of partial differential equations (PDEs) that model an engineering or a physical problem. The domain of interest is discretized in a finite number of elements, hence the name, most commonly triangles in two dimension and tetrahedra in three dimensions. Each node in the resulting mesh represents a degree of freedom in a linear system, that is subsequently solved to obtain a numerical approximation of the quantity of interest.

Today simulations still largely follow the common workflow of setting up a problem, waiting for it to be solved and only then be able to visualize the result, which is a major inconvenience. Running complex simulations on commodity hardware can be very time-consuming. One often discovers that the input data or the problem setup needs to be modified or restated when analyzing the result, which equals updating the problem setup - if it is clear at all what needs to be changed - and starting all over again. In a sense, not only the answer is sought from the simulation, but many times also what question to ask. 

Abb.: Interactive simulation of a 2D channel flow around a cylinder (the left window shows the computational steering application for interactive change of parameters, the right window the live visualization).[Bildunterschrift / Subline]: Abb.: Interactive simulation of a 2D channel flow around a cylinder (the left window shows the computational steering application for interactive change of parameters, the right window the live visualization).

This thesis investigates two attempts to mitigate this inconvenience. Firstly, a prototype of computational steering in the FEniCS framework is developed and evaluated. This implementation provides the simulation user with a visualization of results as soon as they are computed, and control of the running simulation by interactively modifying a limited set of parameters. Due to hardware constraints, the complexity and size of the problem is rather limited for interactive scenarios. Secondly, the possibilities of accelerating finite element assembly and solving the linear system of equation on contemporary commodity graphics hardware are investigated.

The motivation is the wish to run on the fastest and most appropriate hardware available to solve the problem at hand. Graphics Processing Units (GPUs) currently offer the highest computational capacity (in terms of floating point operations per second) and the fastest memory transfer rates per invested dollar. A couple of years ago, GPUs evolved from specialized fixed-function hardware for rendering a two dimensional image from a three dimensional digital scene, to a fully programmable massively parallel floating point co-processor. Today, GPUs outpace Central Processing Units (CPUs) by orders of magnitude, being capable of executing up to 3200 computations at the same time in parallel, for a total of 2.72 trillion floating point operations each second. Not without reason are they marketed as "personal supercomputers'', at a price per unit of less than 400 US$.

The FEniCS project is an open source software project founded in 2003 with the goal of automating Compuational Mathematical Modeling (CMM). It has set a milestone in the automated solution of differential equations with the FEM. This involves automation of (i) discretization, (ii) discrete solution, (iii) error control, (iv) modeling, and (v) optimization. FEniCS was designed towards the three major goals: generality, efficiency, and simplicity. Dynamic generation of highly optimized problem specific code is used to combine generality and efficiency, which are generally regarded as opposing goals. FEniCS provides an abstract, high-level mathematical notation for the problem formulation, and a powerful interface in both Python and C++ to solve the problem and its underlying equations.

Based on the FEniCS framework, an implementation of the finite element method running on GPUs shows a significant speedup over the serial CPU implementation, while keeping the same level of flexibility and degree of automation. Bringing together computational steering and a high performing GPU implementation of the FEM promises close to real-time interactive simulations on a commodity workstation for a larger and more interesting class of problems.

Florian Rathgeber
Florian Rathgeber
* 1985, Fürth
  • Since 10/2010
  • PhD, Department of Computing, Imperial College, London, UK. “Multilayer abstractions for partial differential equations”, Software Performance Optimization (SPO) Group
  • 04/2009 – 09/2010
  • Double degree Master’s program CSE, Friedrich-Alexander-University, Erlangen, Germany (Computational Engineering, until 09/2009), and Royal Institute of Technology, Stockholm, Sweden (Scientific Computing, from 09/2009)
  • Honors program Bavarian Graduate School of Computational Engineering within the Elite Network of Bavaria
  • 10/2005 – 05/2009
  • B.Sc. Computational Engineering, Friedrich-Alexander-University, Erlangen, Germany
  • 09/2008 – 02/2009
  • Exchange semester, Tongji University, Shanghai, China. Bachelor’s Thesis at the “College of Electronics and Information Engineering”
  • 06/2005
  • Abitur (High School degree), Gymnasium Hoechstadt, Hoechstadt, Germany

Berufliche Erfahrungen
  • 07/2005 – 03/2008
  • Research assistant, Fraunhofer IIS (Institute for Integrated Circuits), Erlangen, Germany
  • 07/2007 – 08/2007
  • Intern, Elektrobit Automotive, Erlangen, Germany
  • 05/2007 – 07/2007
  • Research assistant, System Simulation group, University Erlangen, Germany
  • 12/1999 – 09/2004
  • Software developer, IPKS Prozess-Software-Entwicklung GmbH (industrial automation), Erlangen, Germany

Stipendien und Akademische Förderungen
  • Since 10/2010
  • EPSRC Project Studentship
  • Since 09/2008
  • Online fellowship granted by “e-fellows.net”
  • 09/2009 – 06/2010
  • Scholarship granted by the DAAD (German academic exchange service) for the studies at Royal Institute of Technology
  • 01/2008 – 09/2010
  • Fellow of the “Leonardo-Kolleg” for gifted students of the University Erlangen-Nuremberg
  • 10/2007 – 09/2010
  • Scholarship granted by the “Max Weber-Programm” of the Elite Network of Bavaria
  • 11/2006 – 09/2010
  • Fellow of the advancement program for gifted students at the Technische Fakultät (Faculty of Engineering)
  • 10/2008 – 01/2009
  • Scholarship granted by the DAAD (German academic exchange service) for the exchange at Tongji
  • 11/2008
  • “Creative Award” at the 2008 Nescafe National Chinese Students Photo Competition