ginSODA: massive parallel integration of stiff ODE systems on GPUs

Marco Nobile (Corresponding author), Paolo Cazzaniga, Daniela Besozzi, Giancarlo Mauri

Research output: Contribution to journalArticleAcademicpeer-review

1 Citation (Scopus)

Abstract

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× speedup with respect to the sequential execution.
Original languageEnglish
Pages (from-to)7844-7856
Number of pages13
JournalJournal of Supercomputing
Volume75
Issue number12
DOIs
Publication statusPublished - 1 Dec 2019

Keywords

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

Fingerprint

Dive into the research topics of 'ginSODA: massive parallel integration of stiff ODE systems on GPUs'. Together they form a unique fingerprint.

Cite this