Skip to main content
Log in

A 2589 line topology optimization code written for the graphics card

  • Published:
Computing and Visualization in Science

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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)

    Article  MathSciNet  Google Scholar 

  2. Bendsøe M.P.: Optimal shape design as a material distribution problem. Struct. Optim. 1, 193–202 (1989)

    Article  Google Scholar 

  3. Bendsøe M.P.: Methods for Optimization of Structural Topology, Shape and Material. Springer, Berlin (1995)

    Google Scholar 

  4. Bendsøe M.P., Sigmund O.: Topology Optimization—Theory, Methods and Applications, 2nd edn. Springer, Berlin (2004)

    MATH  Google Scholar 

  5. Braess D.: Finite Elemente, Theorie, schnelle Löser und Anwendungen in der Elastizitätstheorie, 2nd edn. Springer, Berlin (1997)

    Google Scholar 

  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)

  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)

  8. NVIDIA Coorperation.: NVIDIA CUDA C programming guide 4.0, May 2011

  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)

    Article  MATH  Google Scholar 

  10. Giles, M.B.: Using NVIDIA GPUs for computational finance. http://people.maths.ox.ac.uk/~gilesm/hpc/

  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)

    Article  Google Scholar 

  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)

  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)

  14. Hestenes M.R., Stiefel E.: Methods of conjugate gradients for solving linear systems. J. Res. Natl. Bureau Stand. 49(6), 409–436 (1952)

    MathSciNet  MATH  Google Scholar 

  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)

    Article  Google Scholar 

  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)

  17. Nocedal J., Wright S.J.: Numerical Optimization. Springer Series in Operations Research. Springer, Berlin (1999)

    Google Scholar 

  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)

  19. Sigmund O.: A 99 line topology optimization code written in matlab. Struct. Multidiscip. Optim. 21(2), 120–127 (2001)

    Article  Google Scholar 

  20. Wadbro E., Berggren M.: Megapixel topology optimization on a graphics processing unit. SIAM Rev. 51(4), 707–721 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  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)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Volker Schulz.

Additional information

Communicated by Gabriel Wittum.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Schmidt, S., Schulz, V. A 2589 line topology optimization code written for the graphics card. Comput. Visual Sci. 14, 249–256 (2011). https://doi.org/10.1007/s00791-012-0180-1

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00791-012-0180-1

Keywords