A 2589 line topology optimization code written for the graphics card

We investigate topology optimization based on the solid isotropic material with penalization approach on compute unified device architecture enabled graphics cards in three dimensions. Linear elasticity is solved entirely on the GPU by a matrix-free conjugate gradient method using finite elements. Due to the unique requirements of the single instruction, multiple data stream processors, special attention is given to the procedural generation of matrix–vector products entirely on the graphics card. The GPU code is found to be extremely efficient, being faster than a 48 core shared memory CPU system. CPU and GPU implementations show different performance bottlenecks. The sources are available at http://www.mathematik.uni-trier.de/~schmidt/gputop.

[1]  Guillaume Caumon,et al.  Concurrent Number Cruncher: An Efficient Sparse Linear Solver on the GPU , 2007, HPCC.

[2]  M. Zhou,et al.  The COC algorithm, Part II: Topological, geometrical and generalized shape optimization , 1991 .

[3]  S. Ananiev On Equivalence Between Optimality Criteria and Projected Gradient Methods with Application to Topology Optimization Problem , 2005, math/0609218.

[4]  Martin P. Bendsøe,et al.  Optimization of Structural Topology, Shape, And Material , 1995 .

[5]  M. Hestenes,et al.  Methods of conjugate gradients for solving linear systems , 1952 .

[6]  Eddie Wadbro,et al.  Megapixel Topology Optimization on a Graphics Processing Unit , 2009, SIAM Rev..

[7]  Greg Humphreys,et al.  A multigrid solver for boundary value problems using programmable graphics hardware , 2003, HWWS '03.

[8]  M. Bendsøe,et al.  Topology Optimization: "Theory, Methods, And Applications" , 2011 .

[9]  Volker Schulz,et al.  Interior point multigrid methods for topology optimization , 2000 .

[10]  Dietrich Braess,et al.  Finite Elemente - Theorie, schnelle Löser und Anwendungen in der Elastizitätstheorie , 1992 .

[11]  Ole Sigmund,et al.  A 99 line topology optimization code written in Matlab , 2001 .

[12]  Paulius Micikevicius,et al.  3D finite difference computation on GPUs using CUDA , 2009, GPGPU-2.

[13]  Jostein R. Natvig,et al.  Solving the Euler Equations on Graphics Processing Units , 2006, International Conference on Computational Science.

[14]  Robert Strzodka,et al.  Co-processor acceleration of an unmodified parallel solid mechanics code with FEASTGPU , 2009, Int. J. Comput. Sci. Eng..

[15]  Gordon Erlebacher,et al.  Porting a high-order finite-element earthquake modeling application to NVIDIA graphics cards using CUDA , 2009, J. Parallel Distributed Comput..

[16]  Graham Pullan,et al.  Acceleration of a 3D Euler solver using commodity graphics hardware , 2008 .

[17]  Stephen J. Wright,et al.  Numerical Optimization (Springer Series in Operations Research and Financial Engineering) , 2000 .

[18]  M. Bendsøe Optimal shape design as a material distribution problem , 1989 .

[19]  Stephen J. Wright,et al.  Numerical Optimization , 2018, Fundamental Statistical Inference.

[20]  Eric Darve,et al.  Large calculation of the flow over a hypersonic vehicle using a GPU , 2008, J. Comput. Phys..

[21]  Roger L. Davis,et al.  Rapid Aerodynamic Performance Prediction on a Cluster of Graphics Processing Units , 2009 .