The Journal of Supercomputing

, Volume 73, Issue 2, pp 676–686 | Cite as

Gillespie’s Stochastic Simulation Algorithm on MIC coprocessors

  • Andrea TangherloniEmail author
  • Marco S. Nobile
  • Paolo Cazzaniga
  • Daniela Besozzi
  • Giancarlo Mauri


To investigate the behavior of biochemical systems, many runs of Gillespie’s Stochastic Simulation Algorithm (SSA) are generally needed, causing excessive computational costs on Central Processing Units (CPUs). Since all SSA runs are independent, the Intel Xeon Phi coprocessors based on the Many Integrated Core (MIC) architecture can be exploited to distribute the workload. We considered two execution modalities on MIC: one consisted in running exactly the same CPU code of SSA, while the other exploited MIC’s vector instructions to reuse the CPU code with only few modifications. MIC performance was compared with Graphics Processing Units (GPUs), specifically implemented in CUDA to optimize the use of memory hierarchy. Our results show that GPU largely outperforms MIC and CPU, but required a complete redesign of SSA. MIC allows a relevant speedup, especially when vector instructions are used, with the additional advantage of requiring minimal modifications to CPU code.


High-Performance Computing MIC GPU Parallel computing Stochastic Simulation Algorithm Stochastic modeling 



We acknowledge the CINECA award under the ISCRA initiative, for the availability of high-performance computing resources and support.


  1. 1.
    Aldridge BB, Burke JM, Lauffenburger DA, Sorger PK (2006) Physicochemical modelling of cell signalling pathways. Nat Cell Biol 8(11):1195–1203CrossRefGoogle Scholar
  2. 2.
    Bernaschi M, Bisson M, Salvadore F (2014) Multi-Kepler GPU vs. multi-Intel MIC for spin systems simulations. Comput Phys Commun 185(10):2495–2503CrossRefGoogle Scholar
  3. 3.
    Besozzi D, Cazzaniga P, Pescini D, Mauri G, Colombo S, Martegani E (2012) The role of feedback control mechanisms on the establishment of oscillatory regimes in the Ras/cAMP/PKA pathway in S. cerevisiae. EURASIP J Bioinform Syst Biol 2012(10)Google Scholar
  4. 4.
    Cazzaniga P, Ferrara F, Nobile MS, Besozzi D, Mauri G (2015) Parallelizing biochemical stochastic simulations: a comparison of GPUs and Intel Xeon Phi processors. In: Malyshkin V (ed) Proceedings of 13th international conference on parallel computing technologies (PaCT 2015), LNCS, vol 9251, pp 363–374Google Scholar
  5. 5.
    Fang J, Varbanescu AL, Imbernon B, Cecilia JM, Perez-Sanchez H (2014) Parallel computation of non-bonded interactions in drug discovery: Nvidia GPUs vs. Intel Xeon Phi. In: Proceedings of second international work-conference on bioinformatics and biomedical engineering (IWBBIO’14)Google Scholar
  6. 6.
    Fang J, Varbanescu AL, Sips H, Zhang L, Che Y, Xu C (2013) Benchmarking Intel Xeon Phi to guide kernel design. Tech. Rep. PDS-2013-005, Delft University of Technology, The NetherlandsGoogle Scholar
  7. 7.
    Gillespie DT (1977) Exact stochastic simulation of coupled chemical reactions. J Phys Chem 81(25):2340–2361CrossRefGoogle Scholar
  8. 8.
    Gillespie DT (1992) A rigorous derivation of the chemical master equation. Phys A 188(1):404–425CrossRefGoogle Scholar
  9. 9.
    Halyo V, LeGresley P, Lujan P, Karpusenko V, Vladimirov A (2014) First evaluation of the CPU, GPGPU and MIC architectures for real time particle tracking based on Hough transform at the LHC. J Instrum 9 (04)Google Scholar
  10. 10.
    Kent E, Hoops S, Mendes P (2012) Condor-COPASI: high-throughput computing for biochemical networks. BMC Syst Biol 6:91Google Scholar
  11. 11.
    Kraus J, Pivanti M, Schifano SF, Tripiccione R, Zanella M (2013) Benchmarking GPUs with a parallel Lattice-Boltzmann code. In: 25th international symposium on computer architecture and high performance computing. IEEE, pp 160–167Google Scholar
  12. 12.
    L’Ecuyer P, Simard R, Chen EJ, Kelton WD (2002) An object-oriented random-number package with many long streams and substreams. Oper Res 50(6):1073–1075CrossRefGoogle Scholar
  13. 13.
    Lyakh DI (2015) An efficient tensor transpose algorithm for multicore CPU, Intel Xeon Phi, and NVidia Tesla GPU. Comput Phys Commun 189:84–91CrossRefGoogle Scholar
  14. 14.
    Macchiarulo L (2008) A massively parallel implementation of Gillespie algorithm on FPGAs. In: International conference of the IEEE on Engineering in Medicine and Biology Society, pp 1343–1346Google Scholar
  15. 15.
    Nickolls J, Dally WJ (2010) The GPU computing era. IEEE Micro 30(2):56–69CrossRefGoogle Scholar
  16. 16.
    Nobile MS, Besozzi D, Cazzaniga P, Mauri G, Pescini D (2012) A GPU-based multi-swarm PSO method for parameter estimation in stochastic biological systems exploiting discrete-time target series. In: Giacobini M, Vanneschi L, Bush W (eds) Evolutionary computation, machine learning and data mining in bioinformatics. Proceedings of 10th European conference, EvoBIO 2012, LNCS, vol 7246, pp 74–85Google Scholar
  17. 17.
    Nobile MS, Besozzi D, Cazzaniga P, Mauri G, Pescini D (2013) cupSODA: a CUDA-powered simulator of mass-action kinetics. In: Malyshkin V (ed) Proceedings of 12th international conference on parallel computing technologies, LNCS, vol 7979, pp 344–357Google Scholar
  18. 18.
    Nobile MS, Cazzaniga P, Besozzi D, Mauri G (2014) GPU-accelerated simulations of mass-action kinetics models with cupSODA. J Supercomput 69(1):17–24CrossRefGoogle Scholar
  19. 19.
    Nobile MS, Cazzaniga P, Besozzi D, Pescini D, Mauri G (2013) Reverse engineering of kinetic reaction networks by means of Cartesian Genetic Programming and Particle Swarm Optimization. In: IEEE congress of evolutionary computation, pp 1594–1601Google Scholar
  20. 20.
    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:e91963Google Scholar
  21. 21.
    Saltelli A, Ratto M, Andres T, Campolongo F, Cariboni J, Gatelli D, Saisana M, Tarantola S (2008) Global sensitivity analysis: the primer. Wiley, New YorkzbMATHGoogle Scholar
  22. 22.
    Shimoda T, Suzuki S, Ohue M, Ishida T, Akiyama Y (2015) Protein–protein docking on hardware accelerators: comparison of GPU and MIC architectures. BMC Syst Biol 9(Suppl 1):S6Google Scholar
  23. 23.
    Tian T, Burrage K (2005) Parallel implementation of stochastic simulation of large-scale cellular processes. In: 8th international conference on high-performance computing in Asia-Pacific region, pp 621–626Google Scholar
  24. 24.
    Wilkinson D (2009) Stochastic modelling for quantitative description of heterogeneous biological systems. Nat Rev Genet 10(2):122–133Google Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  • Andrea Tangherloni
    • 1
    Email author
  • Marco S. Nobile
    • 1
    • 3
  • Paolo Cazzaniga
    • 2
    • 3
  • Daniela Besozzi
    • 1
    • 3
  • 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 of Systems BiologyMilanItaly

Personalised recommendations