Computing and Visualization in Science

, Volume 14, Issue 6, pp 249–256 | Cite as

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


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ananiev S.: On equivalence between optimality criteria and projected gradient methods with application to topology optimization problem. Multibody Syst. Dyn. 13(1), 25–38 (2003)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Bendsøe M.P.: Optimal shape design as a material distribution problem. Struct. Optim. 1, 193–202 (1989)CrossRefGoogle Scholar
  3. 3.
    Bendsøe M.P.: Methods for Optimization of Structural Topology, Shape and Material. Springer, Berlin (1995)Google Scholar
  4. 4.
    Bendsøe M.P., Sigmund O.: Topology Optimization—Theory, Methods and Applications, 2nd edn. Springer, Berlin (2004)MATHGoogle Scholar
  5. 5.
    Braess D.: Finite Elemente, Theorie, schnelle Löser und Anwendungen in der Elastizitätstheorie, 2nd edn. Springer, Berlin (1997)Google Scholar
  6. 6.
    Brandvik, T., Pullan, G.: Acceleration of a 3d Euler solver using commodity graphics hardware. In: Proceedings of the 46th AIAA Aerospace Sciences Meeting, vol. AIAA 2008-607. AIAA (2008)Google Scholar
  7. 7.
    Buatois, L., Caumon, G., Lévy, B.: Concurrent number cruncher: an efficient sparse linear solver on the GPU. In: Lecture Notes in Computer Science, vol. 4782, pp. 358–371 (2007)Google Scholar
  8. 8.
    NVIDIA Coorperation.: NVIDIA CUDA C programming guide 4.0, May 2011Google Scholar
  9. 9.
    Elsen E., LeGresley P., Darve E.: Large calculation of the flow over a hypersonic vehicle using a GPU. J. Comput. Phys. 227, 10148–10161 (2008)MATHCrossRefGoogle Scholar
  10. 10.
    Giles, M.B.: Using NVIDIA GPUs for computational finance.
  11. 11.
    Göddeke D., Wobker H., Strzodka R., Mohd-Yusof J., McCormick P., Turek S.: Co-processor acceleration of an unmodified parallel solid mechanics code with FEASTGPU. Int. J. Comput. Sci. Eng. 4(4), 254–269 (2009)CrossRefGoogle Scholar
  12. 12.
    Goodnight, N., Woolley, C., Lewin, G., Luebke, D., Humphreys, G.: A multigrid solver for boundary value problems using programmable graphics hardware. In: HWWS ’03: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, pp. 102–111, Aire-la-Ville, Switzerland, Switzerland, Eurographics Association (2003)Google Scholar
  13. 13.
    Hagen, T.R., Lie, K.A., Natvig, J.R.: Solving the Euler equations on graphics processing units. In: Lecture Notes in Computer Science, vol. 3994, pp. 220–227 (2006)Google Scholar
  14. 14.
    Hestenes M.R., Stiefel E.: Methods of conjugate gradients for solving linear systems. J. Res. Natl. Bureau Stand. 49(6), 409–436 (1952)MathSciNetMATHGoogle Scholar
  15. 15.
    Komatitsch D., Michéa D., Erlebacher G.: Porting a high-order finite-element earthquake modeling application to NVIDIA graphics cards using CUDA. J. Parallel Distrib. Comput. 69(5), 451–460 (2009)CrossRefGoogle Scholar
  16. 16.
    Micikevicius, P.: 3D finite-difference computation on GPUs using CUDA. In: GPGPU-2 Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units, pp. 79–84 (2009)Google Scholar
  17. 17.
    Nocedal J., Wright S.J.: Numerical Optimization. Springer Series in Operations Research. Springer, Berlin (1999)Google Scholar
  18. 18.
    Phillips, E.H., Zhang, Y., Davis, R.L., Owens, J.D.: Rapid aerodynamic performance prediction on a cluster of graphics processing units. In: Proceedings of the 47th AIAA Aerospace Sciences Meeting, vol. AIAA 2009-565. AIAA (2009)Google Scholar
  19. 19.
    Sigmund O.: A 99 line topology optimization code written in matlab. Struct. Multidiscip. Optim. 21(2), 120–127 (2001)CrossRefGoogle Scholar
  20. 20.
    Wadbro E., Berggren M.: Megapixel topology optimization on a graphics processing unit. SIAM Rev. 51(4), 707–721 (2009)MathSciNetMATHCrossRefGoogle Scholar
  21. 21.
    Zhou M., Rozvany G.I.N.: The COC algorithm, part II: topological, geometry and generalized shape optimization. Comput. Methods Appl. Mech. Eng. 89, 197–224 (1991)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  1. 1.Imperial College LondonLondonUK
  2. 2.University of TrierTrierGermany

Personalised recommendations