ginSODA: massive parallel integration of stiff ODE systems on GPUs

  • Marco S. NobileEmail author
  • Paolo Cazzaniga
  • Daniela Besozzi
  • Giancarlo Mauri


Ordinary differential equations (ODEs) are a widespread formalism for the mathematical modeling of natural and engineering systems, whose analysis is generally performed by means of numerical integration methods. However, real-world models are often characterized by stiffness, a circumstance that can lead to prohibitive execution times. In such cases, the practical viability of many computational tools—e.g., sensitivity analysis—is hampered by the necessity to carry out a large number of simulations. In this work, we present ginSODA, a general-purpose black-box numerical integrator that distributes the calculations on graphics processing units, and allows to run massive numbers of numerical integrations of ODE systems characterized by stiffness. By leveraging symbolic differentiation, meta-programming techniques, and source code hashing, ginSODA automatically builds highly optimized binaries for the CUDA architecture, preventing code re-compilation and allowing to speed up the computation with respect to the sequential execution. ginSODA also provides a simplified Python interface, which allows to define a system of ODEs and the test to be performed in a few lines of code. According to our results, ginSODA provides up to a \(25 \times \) speedup with respect to the sequential execution.


High-performance computing Ordinary differential equations Modeling and simulation GPU computing CUDA Python ginSODA 


  1. 1.
    Bell N, Hoberock J (2011) Thrust: a productivity-oriented library for CUDA. In: GPU Computing Gems Jade Edition, pp 359–371. ElsevierGoogle Scholar
  2. 2.
    Butcher JC (2008) Numerical methods for ordinary differential equations. Wiley, ChichesterCrossRefzbMATHGoogle Scholar
  3. 3.
    Cash JR (2000) Modified extended backward differentiation formulae for the numerical solution of stiff initial value problems in ODEs and DAEs. J Comput Appl Math 125(1–2):117–130MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Cumbo F, Nobile MS, Damiani C, Colombo R, Mauri G, Cazzaniga P (2017) COSYS: a computational infrastructure for systems biology. In: Bracciali A, Caravagna G, Gilbert D, Tagliaferri R (eds) Computational intelligence methods for bioinformatics and biostatistics. Lecture Notes in Bioinformatics, vol 10477. Springer, Berlin, pp 82–92CrossRefGoogle Scholar
  5. 5.
    Curtiss CF, Hirschfelder JO (1952) Integration of stiff equations. Proc Natl Acad Sci 38(3):235–243MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Field RJ, Noyes RM (1974) Oscillations in chemical systems. IV. Limit cycle behavior in a model of a real chemical reaction. J Chem Phys 60(5):1877–1884CrossRefGoogle Scholar
  7. 7.
    Higham DJ, Trefethen LN (1993) Stiffness of ODEs. BIT Numer Math 33(2):285–303MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Joubert W, Archibald R, Berrill M, Brown WM, Eisenbach M, Grout R, Larkin J, Levesque J, Messer B, Norman M (2015) Accelerated application development: the ORNL Titan experience. Comput Electr Eng 46:123–138CrossRefGoogle Scholar
  9. 9.
    Kitano H (2001) Foundations of systems biology. The MIT Press, CambridgeGoogle Scholar
  10. 10.
    Kitano H (2002) Computational systems biology. Nature 420(6912):206CrossRefGoogle Scholar
  11. 11.
    Klöckner A, Pinto N, Lee Y, Catanzaro B, Ivanov P, Fasih A (2012) PyCUDA and PyOpenCL: a scripting-based approach to GPU run-time code generation. Parallel Comput 38(3):157–174CrossRefGoogle Scholar
  12. 12.
    Nobile MS, Besozzi D, Cazzaniga P, Mauri G (2014) GPU-accelerated simulations of mass-action kinetics models with cupSODA. J Supercomput 69(1):17–24CrossRefGoogle Scholar
  13. 13.
    Nobile MS, Besozzi D, Cazzaniga P, Mauri G, Pescini D (2013) cupSODA: a CUDA-powered simulator of mass-action kinetics. In: Malyshkin V (ed) Parallel computing technologies. Lecture Notes in Computer Science, vol 7979. Springer, Berlin, pp 344–357CrossRefGoogle Scholar
  14. 14.
    Nobile MS, Cazzaniga P, Besozzi D, Pescini D, Mauri G (2014) cuTauLeaping: A GPU-powered tau-leaping stochastic simulator for massive parallel analyses of biological systems. PLoS ONE 9(3):e91963CrossRefGoogle Scholar
  15. 15.
    Petzold L (1983) Automatic selection of methods for solving stiff and nonstiff systems of ordinary differential equations. SIAM J Sci Stat Comput 4:136–148MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Secure Hash Standard (SHS) (2015) Federal Information Processing Standards Publication.
  17. 17.
    Söderlind G, Jay L, Calvo M (2015) Stiffness 1952–2012: sixty years in search of a definition. BIT Numer Math 55(2):531–558MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Strogatz SH (2018) Nonlinear dynamics and chaos: with applications to physics, biology, chemistry, and engineering. CRC Press, Boca RatonzbMATHGoogle Scholar
  19. 19.
    Tangherloni A, Nobile MS, Besozzi D, Mauri G, Cazzaniga P (2017) LASSIE: simulating large-scale models of biochemical systems on GPUs. BMC Bioinform 18(1):246CrossRefGoogle Scholar
  20. 20.
    Zhabotinsky AM (1991) A history of chemical oscillations and waves. Chaos: an interdisciplinary. J Nonlinear Sci 1(4):379–386Google Scholar
  21. 21.
    Zhou Y, Liepe J, Sheng X, Stumpf MPH, Barnes C (2011) GPU accelerated biochemical network simulation. Bioinformatics 27(6):874–876CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  • Marco S. Nobile
    • 1
    • 3
    Email author
  • Paolo Cazzaniga
    • 2
    • 3
  • Daniela Besozzi
    • 1
  • Giancarlo Mauri
    • 1
    • 3
  1. 1.Department of Informatics, Systems and CommunicationUniversity of Milano-BicoccaMilanItaly
  2. 2.Department of Human and Social SciencesUniversity of BergamoBergamoItaly
  3. 3.SYSBIO.IT Centre for Systems BiologyMilanItaly

Personalised recommendations