A Comprehensive Comparison of GPU Implementations of Cardiac Electrophysiology Models

  • Abouzar KaboudianEmail author
  • Hector Augusto Velasco-Perez
  • Shahriar Iravanian
  • Yohannes Shiferaw
  • Elizabeth M. Cherry
  • Flavio H. Fenton
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11500)


Cardiac disease is the leading cause of death in developed countries, and arrhythmias, which are disorders in the regular generation and propagation of electrical waves that trigger contraction, form a major class of heart diseases. Computational techniques have proved to be useful in the study and understanding of cardiac arrhythmias. However, the computational cost associated with solving cardiac models makes them especially challenging to solve. Traditionally, hardware available on personal computers has been insufficient for such models; instead, supercomputers have been employed to overcome the computational costs of cardiac simulations. However, in recent years substantial advances in the computational power of graphics processing units (GPUs), combined with their modest prices and widespread availability, have made them an attractive alternative to high-performance computing using supercomputers. With greater use of GPUs, however, new challenges have emerged. GPUs must be programmed using their own languages or extensions of other languages, and, at present, there are a number of languages that support general-purpose GPU codes with substantial differences in programming ease and available levels of optimization. In this work, we present the implementation of cardiac models in several major GPU languages without language-specific optimization and compare their performance for different levels of model complexity and domain sizes.


Cardiac electrophysiology GPU MATLAB OpenACC Python Numba TensorFlow WebGL Abubu.js NVIDIA CUDA 



This work was supported in part by the National Science Foundation under grants CNS-1446312(EMC) and by CMMI-1762553 (FHF and AK). EMC, AK, YS, and FHF, also collaborated while at Kavli Institute for Theoretical Physics (KITP) and thus research was also supported in part by NSF Grant No. PHY-1748958, NIH Grant No. R25GM067110, and the Gordon and Betty Moore Foundation Grant No. 2919.01.


  1. 1.
    Benjamin, E.J., et al.: Heart disease and stroke statistics-2017 update: a report from the American Heart Association. Circulation 135(10), e146–e603 (2017)CrossRefGoogle Scholar
  2. 2.
    Winfree, A.: Electrical turbulence in three-dimensional heart muscle. Science 266(5187), 1003–1006 (1994)CrossRefGoogle Scholar
  3. 3.
    Gray, R.A., et al.: Mechanisms of cardiac fibrillation. Science 270(5239), 1222–1226 (1995)CrossRefGoogle Scholar
  4. 4.
    Gray, R.A., Pertsov, A.M., Jalife, J.: Spatial and temporal organization during cardiac fibrillation. Nature 392(6671), 75 (1998)CrossRefGoogle Scholar
  5. 5.
    Fenton, F.H., Cherry, E.M., Glass, L.: Cardiac arrhythmia. Scholarpedia 3(7), 1665 (2008)CrossRefGoogle Scholar
  6. 6.
    Kaboudia, A., Cherry, E.M., Fenton, F.H.: Real-time interactive simulations of large-scale systems on personal computers and cell phones. Sci. Adv. 5, eaav6019 (2019)CrossRefGoogle Scholar
  7. 7.
    Zahid, S., et al.: Feasibility of using patient-specific models and the “minimum cut” algorithm to predict optimal ablation targets for left atrial flutter. Heart Rhythm 13(8), 1687–1698 (2016)CrossRefGoogle Scholar
  8. 8.
    Dutta, S., et al.: Optimization of an in silico cardiac cell model for proarrhythmia risk assessment. Front. Physiol. 8, 616 (2017)CrossRefGoogle Scholar
  9. 9.
    Cavero, I., Holzgrefe, H.: CiPA: ongoing testing, future qualification procedures, and pending issues. J. Pharmacol. Toxicol. Methods 76, 27–37 (2015)CrossRefGoogle Scholar
  10. 10.
    Fenton, F.H., Cherry, E.M.: Models of cardiac cell. Scholarpedia 3(8), 1868 (2008)CrossRefGoogle Scholar
  11. 11.
    Fenton, F.H., Cherry, E.M., Hastings, H.M., Evans, S.J.: Real-time computer simulations of excitable media: JAVA as a scientific language and as a wrapper for C and FORTRAN programs. Biosystems 64(1–3), 73–96 (2002)CrossRefGoogle Scholar
  12. 12.
    Barkley, D.: EZ-spiral: a code for simulating spiral waves (2002). Accessed 29 Apr 2019
  13. 13.
    FitzHugh, R.: Impulses and physiological states in theoretical models of nerve membrane. Biophys. J. 1(6), 445–466 (1961)CrossRefGoogle Scholar
  14. 14.
    Nagumo, J., Arimoto, S., Yoshizawa, S.: An active pulse transmission line simulating nerve axon. Proc. IRE 50(10), 2061–2070 (1962)CrossRefGoogle Scholar
  15. 15.
    Winfree, A.T.: Varieties of spiral wave behavior: an experimentalist’s approach to the theory of excitable media. Chaos Interdiscip. J. Nonlinear Sci. 1(3), 303–334 (1991)MathSciNetzbMATHCrossRefGoogle Scholar
  16. 16.
    Bueno-Orovio, A., Cherry, E.M., Fenton, F.H.: Minimal model for human ventricular action potentials in tissue. J. Theor. Biol. 253(3), 544–560 (2008)MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Cherry, E.M., Ehrlich, J.R., Nattel, S., Fenton, F.H.: Pulmonary vein reentry–properties and size matter: insights from a computational analysis. Heart Rhythm 4(12), 1553–1562 (2007)CrossRefGoogle Scholar
  18. 18.
    Lombardo, D.M., Fenton, F.H., Narayan, S.M., Rappel, W.-J.: Comparison of detailed and simplified models of human atrial myocytes to recapitulate patient specific properties. PLoS Comput. Biol. 12(8), e1005060 (2016)CrossRefGoogle Scholar
  19. 19.
    Beeler, G.W., Reuter, H.: Reconstruction of the action potential of ventricular myocardial fibres. J. Physiol. 268(1), 177–210 (1977)CrossRefGoogle Scholar
  20. 20.
    Courtemanche, M.: Complex spiral wave dynamics in a spatially distributed ionic model of cardiac electrical activity. Chaos Interdiscip. J. Nonlinear Sci. 6(4), 579–600 (1996)CrossRefGoogle Scholar
  21. 21.
    Courtemanche, M., Winfree, A.T.: Re-entrant rotating waves in a beeler-reuter based model of two-dimensional cardiac electrical activity. Int. J. Bifurc. Chaos 1(02), 431–444 (1991)MathSciNetzbMATHCrossRefGoogle Scholar
  22. 22.
    Hodgkin, A.L., Huxley, A.F.: A quantitative description of membrane current and its application to conduction and excitation in nerve. J. Physiol. 117(4), 500–544 (1952)CrossRefGoogle Scholar
  23. 23.
    Streeter Jr., D.D., Spotnitz, H.M., Patel, D.P., Ross Jr., J., Sonnenblick, E.H.: Fiber orientation in the canine left ventricle during diastole and systole. Circ. Res. 24(3), 339–347 (1969)CrossRefGoogle Scholar
  24. 24.
    Peskin, C.S.: Fiber architecture of the left ventricular wall: an asymptotic analysis. Commun. Pure Appl. Math. 42(1), 79–113 (1989)MathSciNetzbMATHCrossRefGoogle Scholar
  25. 25.
    Ji, Y.C., Fenton, F.H.: Numerical solutions of reaction-diffusion equations: application to neural and cardiac models. Am. J. Phys. 84(8), 626–638 (2016)CrossRefGoogle Scholar
  26. 26.
    Rush, S., Larsen, H.: A practical algorithm for solving dynamic membrane equations. IEEE Trans. Biomed. Eng. 4, 389–392 (1978)CrossRefGoogle Scholar
  27. 27.
    Halpern, D., Wilson, H.B., Turcotte, L.H.: Advanced Mathematics and Mechanics Applications using MATLAB. Chapman and Hall/CRC, Boca Raton (2002)zbMATHCrossRefGoogle Scholar
  28. 28.
    Pozrikidis, C.: Introduction to Finite and Spectral Element Methods Using MATLAB. CRC Press, Boca Raton (2005)zbMATHGoogle Scholar
  29. 29.
    Quarteroni, A., Saleri, F., Gervasio, P.: Scientific Computing with MATLAB and Octave, vol. 2. Springer, Heidelberg (2006). Scholar
  30. 30.
    Strang, G.: Computational Science and Engineering, vol. 791. Wellesley-Cambridge Press, Wellesley (2007)zbMATHGoogle Scholar
  31. 31.
    Aarnes, J.E., Gimse, T., Lie, K.-A.: An introduction to the numerics of flow in porous media using MATLAB. In: Hasle, G., Lie, K.A., Quak, E. (eds.) Geometric Modelling, Numerical Simulation, and Optimization, pp. 265–306. Springer, Heidelberg (2007). Scholar
  32. 32.
    Li, J., Chen, Y.-T.: Computational Partial Differential Equations Using MATLAB. Chapman and Hall/CRC, Boca Raton (2008)Google Scholar
  33. 33.
    Anderson, D., Tannehill, J.C., Pletcher, R.H.: Computational Fluidmechanics and Heat Transfer. CRC Press, Boca Raton (2016)Google Scholar
  34. 34.
    Elsherbeni, A.Z. Demir, V.: The finite-difference time-domain method for electromagnetics with MATLAB simulations. The Institution of Engineering and Technology (2016)Google Scholar
  35. 35.
    Kwon, Y.W., Bang, H.: The Finite Element Method Using MATLAB. CRC Press, Boca Raton (2018)zbMATHGoogle Scholar
  36. 36.
    Martin, N., Gorelick, S.M.: MOD\_FreeSurf2D: a Matlab surface fluid flow model for rivers and streams. Comput. Geosci. 31(7), 929–946 (2005)CrossRefGoogle Scholar
  37. 37.
    Gholami, A., Bonakdari, H., Zaji, A.H., Akhtari, A.A.: Simulation of open channel bend characteristics using computational fluid dynamics and artificial neural networks. Eng. Appl. Comput. Fluid Mech. 9(1), 355–369 (2015)Google Scholar
  38. 38.
    Irving, J., Knight, R.: Numerical modeling of ground-penetrating radar in 2-D using MATLAB. Comput. Geosci. 32(9), 1247–1258 (2006)CrossRefGoogle Scholar
  39. 39.
    Tzanis, A., et al.: MATGPR: a freeware MATLAB package for the analysis of common-offset GPR data. In: Geophysical Research Abstracts, vol. 8 (2006)Google Scholar
  40. 40.
    Xuan, C., Channell, J.E.: UPmag: MATLAB software for viewing and processing u channel or other pass-through paleomagnetic data. Geochem. Geophys. Geosyst. 10(10), 1–12 (2009). CrossRefGoogle Scholar
  41. 41.
    Lesage, P.: Interactive MATLAB software for the analysis of seismic volcanic signals. Comput. Geosci. 35(10), 2137–2144 (2009)CrossRefGoogle Scholar
  42. 42.
    Battaglia, M., Cervelli, P.F., Murray, J.R.: dMODELS: a MATLAB software package for modeling crustal deformation near active faults and volcanic centers. J. Volcanol. Geoth. Res. 254, 1–4 (2013)CrossRefGoogle Scholar
  43. 43.
    Charpentier, I., Sarocchi, D., Sedano, L.A.R.: Particle shape analysis of volcanic clast samples with the MATLAB tool MORPHEO. Comput. Geosci. 51, 172–181 (2013)CrossRefGoogle Scholar
  44. 44.
    Valade, S., Harris, A.J., Cerminara, M.: Plume ascent tracker: interactive MATLAB software for analysis of ascending plumes in image data. Comput. Geosci. 66, 132–144 (2014)CrossRefGoogle Scholar
  45. 45.
    Ofek, E.O.: MATLAB package for astronomy and astrophysics. Astrophysics Source Code Library (2014)Google Scholar
  46. 46.
    Ahmad, I., Raja, M.A.Z., Bilal, M., Ashraf, F.: Bio-inspired computational heuristics to study lane-emden systems arising in astrophysics model. SpringerPlus 5(1), 1866 (2016)CrossRefGoogle Scholar
  47. 47.
    Loredo, T., Scargle, J.: Time series exploration in Python and MATLAB: unevenly sampled data, parametric modeling, and periodograms. In: AAS/High Energy Astrophysics Division, vol. 17 (2019)Google Scholar
  48. 48.
    Kamel, N.A., Selman, A.A.-R.: Automatic detection of sunspots size and activity using MATLAB. Iraqi J. Sci. 60(2), 411–425 (2019)Google Scholar
  49. 49.
    Guo, G.: Electromechanical feed control system in chemical dangerous goods production. Chem. Eng. Trans. 71, 1039–1044 (2018)Google Scholar
  50. 50.
    Esche, E., Bublitz, S., Tolksdorf, G., Repke, J.-U.: Automatic decomposition of nonlinear equation systems for improved initialization and solution of chemical engineering process models. Comput. Aided Chem. Eng. 44, 1387–1392 (2018)CrossRefGoogle Scholar
  51. 51.
    Fitzpatrick, D., Ley, S.V.: Engineering chemistry for the future of chemical synthesis. Tetrahedron 74(25), 3087–3100 (2018)CrossRefGoogle Scholar
  52. 52.
    Eastep, C.V., Harrell, G.K., McPeak, A.N., Versypt, A.N.F.: A MATLAB app to introduce chemical engineering design concepts to engineering freshmen through a pharmaceutical dosing case study. Chem. Eng. Educ. 53(2), 85 (2019)Google Scholar
  53. 53.
    Svoboda, T., Kybic, J., Hlavac, V.: Image Processing, Analysis and Machine Vision-A MATLAB Companion. Thomson Learning, Toronto (2007)Google Scholar
  54. 54.
    Dhawan, A.P.: Medical Image Analysis, vol. 31. Wiley, Hoboken (2011)CrossRefGoogle Scholar
  55. 55.
    Schneider, C.A., Rasband, W.S., Eliceiri, K.W.: NIH image to imagej: 25 years of image analysis. Nat. Methods 9(7), 671 (2012)CrossRefGoogle Scholar
  56. 56.
    Rodríguez-Cristerna, A., Gómez-Flores, W., de Albuquerque-Pereira, W.C.: BUSAT: a MATLAB toolbox for breast ultrasound image analysis. In: Carrasco-Ochoa, J.A., Martínez-Trinidad, J.F., Olvera-López, J.A. (eds.) MCPR 2017. LNCS, vol. 10267, pp. 268–277. Springer, Cham (2017). Scholar
  57. 57.
    Cho, J.I., Wang, X., Xu, Y., Sun, J.: LISA: a MATLAB package for longitudinal image sequence analysis. arXiv preprint arXiv:1902.06131 (2019)
  58. 58.
    Vedaldi, A., Lenc, K.: MatConvNet: convolutional neural networks for MATLAB. In: Proceedings of the 23rd ACM international conference on Multimedia, pp. 689–692. ACM (2015)Google Scholar
  59. 59.
    Novikov, A., Podoprikhin, D., Osokin, A., Vetrov, D.P.: Tensorizing neural networks. In: Advances in Neural Information Processing Systems, pp. 442–450 (2015)Google Scholar
  60. 60.
    Vardhana, M., Arunkumar, N., Lasrado, S., Abdulhay, E., Ramirez-Gonzalez, G.: Convolutional neural network for bio-medical image segmentation with hardware acceleration. Cogn. Syst. Res. 50, 10–14 (2018)CrossRefGoogle Scholar
  61. 61.
    Molitor, S.C., Tong, M., Vora, D.: Matlab-based simulation of whole-cell and single-channel currents. J. Undergrad. Neurosci. Educ. 4(2), A74 (2006)Google Scholar
  62. 62.
    Cardin, J.A., et al.: Driving fast-spiking cells induces gamma rhythm and controls sensory responses. Nature 459(7247), 663 (2009)CrossRefGoogle Scholar
  63. 63.
    Kirkton, R.D., Bursac, N.: Engineering biosynthetic excitable tissues from unexcitable cells for electrophysiological and cell therapy studies. Nat. Commun. 2, 300 (2011)CrossRefGoogle Scholar
  64. 64.
    Kodandaramaiah, S.B., Franzesi, G.T., Chow, B.Y., Boyden, E.S., Forest, C.R.: Automated whole-cell patch-clamp electrophysiology of neurons in vivo. Nat. Methods 9(6), 585 (2012)CrossRefGoogle Scholar
  65. 65.
    Prassl, A.J., et al.: Automatically generated, anatomically accurate meshes for cardiac electrophysiology problems. IEEE Trans. Biomed. Eng. 56(5), 1318–1330 (2009)CrossRefGoogle Scholar
  66. 66.
    O’Hara, T., Virág, L., Varró, A., Rudy, Y.: Simulation of the undiseased human cardiac ventricular action potential: model formulation and experimental validation. PLoS Comput. Biol. 7(5), e1002061 (2011)CrossRefGoogle Scholar
  67. 67.
    Cusimano, N., Bueno-Orovio, A., Turner, I., Burrage, K.: On the order of the fractional laplacian in determining the spatio-temporal evolution of a space-fractional model of cardiac electrophysiology. PLoS ONE 10(12), e0143938 (2015)CrossRefGoogle Scholar
  68. 68.
    Elshrif, M.M., Shi, P., Cherry, E.M.: Representing variability and transmural differences in a model of human heart failure. IEEE J. Biomed. Health Inform. 19(4), 1308–1320 (2015)CrossRefGoogle Scholar
  69. 69.
    Passini, E., et al.: Human in silico drug trials demonstrate higher accuracy than animal models in predicting clinical pro-arrhythmic cardiotoxicity. Front. Physiol. 8, 668 (2017)CrossRefGoogle Scholar
  70. 70.
    Cusimano, N., del Teso, F., Gerardo-Giorda, L., Pagnini, G.: Discretizations of the spectral fractional laplacian on general domains with Dirichlet, Neumann, and Robin boundary conditions. SIAM J. Numer. Anal. 56(3), 1243–1272 (2018)MathSciNetzbMATHCrossRefGoogle Scholar
  71. 71.
    Handa, B.S., et al.: Interventricular differences in action potential duration restitution contribute to dissimilar ventricular rhythms in ex-vivo perfused hearts. Front. Cardiovasc. Med. 6, 34 (2019)CrossRefGoogle Scholar
  72. 72.
    Kraus, J., Schlottke, M., Adinetz, A., Pleiter, D.: Accelerating a C++ CFD code with OpenACC. In: 2014 First Workshop on Accelerator Programming using Directives, pp. 47–54. IEEE (2014)Google Scholar
  73. 73.
    Blair, S., Albing, C., Grund, A., Jocksch, A.: Accelerating an MPI lattice Boltzmann code using OpenACC. In: Proceedings of the Second Workshop on Accelerator Programming Using Directives, p. 3. ACM (2015)Google Scholar
  74. 74.
    Huismann, I., Stiller, J., Fröhlich, J.: Two-level parallelization of a fluid mechanics algorithm exploiting hardware heterogeneity. Comput. Fluids 117, 114–124 (2015)MathSciNetzbMATHCrossRefGoogle Scholar
  75. 75.
    Lou, J., Xia, Y., Luo, L., Luo, H., Edwards, J.R., Mueller, F.: OpenACC directive-based GPU acceleration of an implicit reconstructed discontinuous Galerkin method for compressible flows on 3D unstructured grids. In: 54th AIAA Aerospace Sciences Meeting, p. 1815 (2016)Google Scholar
  76. 76.
    Raj, A., Roy, S., Vydyanathar, N., Sharma, B.: Acceleration of a 3D immersed boundary solver using OpenACC. In: 2018 IEEE 25th International Conference on High Performance Computing Workshops (HiPCW), pp. 65–73. IEEE (2018)Google Scholar
  77. 77.
    Gallovic, F., Valentova, L., Ampuero, J.-P., Gabriel, A.-A.: Bayesian dynamic finite-fault inversion: 1. Method and synthetic test (2019)Google Scholar
  78. 78.
    Kan, G., He, X., Ding, L., Li, J., Liang, K., Hong, Y.: A heterogeneous computing accelerated SCE-UA global optimization method using OpenMP, OpenCL, CUDA, and OpenACC. Water Sci. Technol. 76(7), 1640–1651 (2017)CrossRefGoogle Scholar
  79. 79.
    Liu, C., Yang, H., Sun, R., Luan, Z., Qian, D.: SWTVM: exploring the automated compilation for deep learning on Sunway architecture. arXiv preprint arXiv:1904.07404 (2019)
  80. 80.
    Cavuoti, S., et al.: Astrophysical data mining with GPU. A case study: genetic classification of globular clusters. New Astron. 26, 12–22 (2014)CrossRefGoogle Scholar
  81. 81.
    Rosenberger, S., Haase, G.: Pragma based GPU parallelizations for cardiovascular simulations. In: 2018 International Conference on High Performance Computing and Simulation (HPCS), pp. 1022–1027. IEEE (2018)Google Scholar
  82. 82.
    Campos, J., Oliveira, R.S., dos Santos, R.W., Rocha, B.M.: Lattice boltzmann method for parallel simulations of cardiac electrophysiology using GPUs. J. Comput. Appl. Math. 295, 70–82 (2016)MathSciNetzbMATHCrossRefGoogle Scholar
  83. 83.
    Canal Noguer, P.: Modeling human atrial electrodynamics and arrhythmias through GPU parallel computing: from cell to tissue. B.S. thesis, Universitat Politècnica de Catalunya (2016)Google Scholar
  84. 84.
    History and license. Accessed 28 Apr 2019
  85. 85.
    Fangohr, H.: A comparison of C, MATLAB, and Python as teaching languages in engineering. In: Bubak, M., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds.) ICCS 2004. LNCS, vol. 3039, pp. 1210–1217. Springer, Heidelberg (2004). Scholar
  86. 86.
    Goldwasser, M.H., Letscher, D.: Teaching an object-oriented CS1-: with Python. ACM SIGCSE Bull. 40, 42–46 (2008)CrossRefGoogle Scholar
  87. 87.
    Vallisneri, M., Kanner, J., Williams, R., Weinstein, A., Stephens, B.: The LIGO open science center. J. Phys. Conf. Ser. 610, 012021 (2015)CrossRefGoogle Scholar
  88. 88.
    Rodriguez, C.L., Morscher, M., Pattabiraman, B., Chatterjee, S., Haster, C.-J., Rasio, F.A.: Binary black hole mergers from globular clusters: implications for advanced LIGO. Phys. Rev. Lett. 115(5), 051101 (2015)CrossRefGoogle Scholar
  89. 89.
    Aasi, J., et al.: Advanced LIGO. Class. Quantum Gravity 32(7), 074001 (2015)CrossRefGoogle Scholar
  90. 90.
    Pedregosa, F., et al.: Scikit-learn: machine learning in Python. J. Mach. Learn. Res. 12, 2825–2830 (2011)MathSciNetzbMATHGoogle Scholar
  91. 91.
    Raschka, S.: Python Machine Learning. Packt Publishing Ltd., Birmingham (2015)Google Scholar
  92. 92.
    Goodman, D.F., Brette, R.: Brian: a simulator for spiking neural networks in Python. Front. Neuroinform. 2, 5 (2008)CrossRefGoogle Scholar
  93. 93.
    Yen, D.C., Huang, S.-M., Ku, C.-Y.: The impact and implementation of XML on business-to-business commerce. Comput. Stand. Interfaces 24(4), 347–362 (2002)CrossRefGoogle Scholar
  94. 94.
    Lehmann, G., et al.: Towards dynamic planning and guidance of minimally invasive robotic cardiac bypass surgical procedures. In: Niessen, W.J., Viergever, M.A. (eds.) MICCAI 2001. LNCS, vol. 2208, pp. 368–375. Springer, Heidelberg (2001). Scholar
  95. 95.
    Lehmann, G., Habets, D., Holdsworth, D.W., Peters, T., Drangova, M.: Simulation of intra-operative 3D coronary angiography for enhanced minimally invasive robotic cardiac intervention. In: Dohi, T., Kikinis, R. (eds.) MICCAI 2002. LNCS, vol. 2489, pp. 268–275. Springer, Heidelberg (2002). Scholar
  96. 96.
    Azaouzi, M., Makradi, A., Petit, J., Belouettar, S., Polit, O.: On the numerical investigation of cardiovascular balloon-expandable stent using finite element method. Comput. Mater. Sci. 79, 326–335 (2013)CrossRefGoogle Scholar
  97. 97.
    Herman, W.H., et al.: Early detection and treatment of type 2 diabetes reduce cardiovascular morbidity and mortality: a simulation of the results of the Anglo-Danish-Dutch study of intensive treatment in people with screen-detected diabetes in primary care (addition-Europe). Diabetes Care 38(8), 1449–1455 (2015)CrossRefGoogle Scholar
  98. 98.
    Itani, M.A., et al.: An automated multiscale ensemble simulation approach for vascular blood flow. J. Comput. Sci. 9, 150–155 (2015)CrossRefGoogle Scholar
  99. 99.
    Ramachandra, A.B., Kahn, A.M., Marsden, A.L.: Patient-specific simulations reveal significant differences in mechanical stimuli in venous and arterial coronary grafts. J. Cardiovasc. Transl. Res. 9(4), 279–290 (2016)CrossRefGoogle Scholar
  100. 100.
    Updegrove, A., Wilson, N.M., Merkow, J., Lan, H., Marsden, A.L., Shadden, S.C.: Simvascular: An open source pipeline for cardiovascular simulation. Ann. Biomed. Eng. 45(3), 525–541 (2017)CrossRefGoogle Scholar
  101. 101.
    Kuo, S., Ye, W., Duong, J., Herman, W.H.: Are the favorable cardiovascular outcomes of empagliflozin treatment explained by its effects on multiple cardiometabolic risk factors? A simulation of the results of the EMPA-REG OUTCOME trial. Diabetes Res. Clin. Pract. 141, 181–189 (2018)CrossRefGoogle Scholar
  102. 102.
    Myers, C.R., Sethna, J.P.: Python for education: computational methods for nonlinear systems. Comput. Sci. Eng. 9(3), 75–79 (2007)CrossRefGoogle Scholar
  103. 103.
    Niederer, S.A., et al.: Verification of cardiac tissue electrophysiology simulators using an N-version benchmark. Philos. Trans. R. Soc. A Math. Phys. Eng. Sci. 369(1954), 4331–4351 (2011)MathSciNetCrossRefGoogle Scholar
  104. 104.
    Burton, R.A., et al.: Optical control of excitation waves in cardiac tissue. Nat. Photonics 9(12), 813 (2015)CrossRefGoogle Scholar
  105. 105.
    Hurtado, D.E., Castro, S., Gizzi, A.: Computational modeling of non-linear diffusion in cardiac electrophysiology: a novel porous-medium approach. Comput. Methods Appl. Mech. Eng. 300, 70–83 (2016)MathSciNetzbMATHCrossRefGoogle Scholar
  106. 106.
    Cherubini, C., Filippi, S., Gizzi, A., Ruiz-Baier, R.: A note on stress-driven anisotropic diffusion and its role in active deformable media. J. Theor. Biol. 430, 221–228 (2017)zbMATHCrossRefGoogle Scholar
  107. 107.
    Gizzi, A., et al.: Nonlinear diffusion and thermo-electric coupling in a two-variable model of cardiac action potential. Chaos Interdiscip. J. Nonlinear Sci. 27(9), 093919 (2017)MathSciNetCrossRefGoogle Scholar
  108. 108.
    Mane, R.S., Cheeran, A., Awandekar, V.D., Rani, P.: Cardiac arrhythmia detection by ECG feature extraction. Int. J. Eng. Res. Appl. 3, 327–332 (2013)Google Scholar
  109. 109.
    Conferences and workshops. Accessed 28 Apr 2019
  110. 110.
    Project jupyter. Accessed 29 Apr 2019
  111. 111.
    Numpy. Accessed 29 Apr 2019
  112. 112.
    Numba. Accessed 29 Apr 2019
  113. 113.
    1.1. a 5 minute guide to Numba. Accessed 29 Apr 2019
  114. 114.
    Abadi, M., et al.: TensorFlow: a system for large-scale machine learning. In: 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2016), pp. 265–283 (2016)Google Scholar
  115. 115.
    Girija, S.S.: TensorFlow: large-scale machine learning on heterogeneous distributed systems (2016). Software
  116. 116.
    Google just open sourced TensorFlow, its artificial intelligence engine. Accessed 29 Apr 2019
  117. 117.
    Case studies and mentions. Accessed 29 Apr 2019
  118. 118.
    Cheng, H.-T., et al.: Wide & deep learning for recommender systems. In: Proceedings of the 1st Workshop on Deep Learning for Recommender Systems, pp. 7–10. ACM (2016)Google Scholar
  119. 119.
    Lieman-Sifry, J., Le, M., Lau, F., Sall, S., Golden, D.: FastVentricle: cardiac segmentation with ENet. In: Pop, M., Wright, G.A. (eds.) FIMH 2017. LNCS, vol. 10263, pp. 127–138. Springer, Cham (2017). Scholar
  120. 120.
    Warrick, P., Homsi, M.N.: Cardiac arrhythmia detection from ECG combining convolutional and long short-term memory networks. In: 2017 Computing in Cardiology (CinC), pp. 1–4. IEEE (2017)Google Scholar
  121. 121.
    Biswas, S., Aggarwal, H.K., Poddar, S., Jacob, M.: Model-based free-breathing cardiac MRI reconstruction using deep learned & storm priors: MoDL-storm. In: 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 6533–6537. IEEE (2018)Google Scholar
  122. 122.
    Kamaleswaran, R., Mahajan, R., Akbilgic, O.: A robust deep convolutional neural network for the classification of abnormal cardiac rhythm using single lead electrocardiograms of variable length. Physiol. Meas. 39(3), 035006 (2018)CrossRefGoogle Scholar
  123. 123.
    Iravanian, S.: fib-tf: a TensorFlow-based cardiac electrophysiology simulator. J. Open Source Softw. 3(26), 719 (2018)CrossRefGoogle Scholar
  124. 124.
    Kang, S.-H., Joe, B., Yoon, Y., Cho, G.-Y., Shin, I., Suh, J.-W.: Cardiac auscultation using smartphones: pilot study. JMIR mHealth uHealth 6(2), e49 (2018)CrossRefGoogle Scholar
  125. 125.
    Savalia, S., Emamian, V.: Cardiac arrhythmia classification by multi-layer perceptron and convolution neural networks. Bioengineering 5(2), 35 (2018)CrossRefGoogle Scholar
  126. 126.
    Teplitzky, B.A., McRoberts, M.: Fully-automated ventricular ectopic beat classification for use with mobile cardiac telemetry. In: 2018 IEEE 15th International Conference on Wearable and Implantable Body Sensor Networks (BSN), pp. 58–61. IEEE (2018)Google Scholar
  127. 127.
    Bello, G.A., et al.: Deep-learning cardiac motion analysis for human survival prediction. Nat. Mach. Intell. 1(2), 95 (2019)MathSciNetCrossRefGoogle Scholar
  128. 128.
    WebGL overview. Accessed 29 Apr 2019
  129. 129.
    OpenGL shading language. Accessed 29 Apr 2019
  130. 130.
    WebGL 2.0 API quick reference guide. Accessed 29 Apr 2019
  131. 131.
    Owens, J.D., et al.: A survey of general-purpose computation on graphics hardware. Comput. Graph. Forum 26–1, 80–113 (2007)CrossRefGoogle Scholar
  132. 132.
    Kaboudian, A., Cherry, E.M., Fenton, F.H.: Large-scale interactive numerical experiments of chaos, solitons and fractals in real time via GPU in a web browser. Chaos Solitons Fractals 121, 6–29 (2019)MathSciNetCrossRefGoogle Scholar
  133. 133.
    Jacobsen, D., Thibault, J., Senocak, I.: An MPI-CUDA implementation for massively parallel incompressible flow computations on multi-GPU clusters. In: 48th AIAA Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition, p. 522 (2010)Google Scholar
  134. 134.
    Ladický, L., Jeong, S., Solenthaler, B., Pollefeys, M., Gross, M.: Data-driven fluid simulations using regression forests. ACM Trans. Graph. 34(6), 1–9 (2015)CrossRefGoogle Scholar
  135. 135.
    Jang, H., Park, A., Jung, K.: Neural network implementation using CUDA and OpenMP. In: 2008 Digital Image Computing: Techniques and Applications, pp. 155–161. IEEE (2008)Google Scholar
  136. 136.
    Nageswaran, J.M., Dutt, N., Krichmar, J.L., Nicolau, A., Veidenbaum, A.V.: A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors. Neural Netw. 22(5–6), 791–800 (2009)CrossRefGoogle Scholar
  137. 137.
    Sierra-Canto, K., Madera-Ramirez, F., Uc-Cetina, V.: Parallel training of a back-propagation neural network using CUDA. In: 2010 Ninth International Conference on Machine Learning and Applications, pp. 307–312. IEEE (2010)Google Scholar
  138. 138.
    Ciresan, D.C., Meier, U., Masci, J., Gambardella, L.M., Schmidhuber, J.: Flexible, high performance convolutional neural networks for image classification. In: Twenty-Second International Joint Conference on Artificial Intelligence (2011)Google Scholar
  139. 139.
    Nylons, L.: Fast n-body simulation with CUDA (2007)Google Scholar
  140. 140.
    Belleman, R.G., Bédorf, J., Zwart, S.F.P.: High performance direct gravitational n-body simulations on graphics processing units II: an implementation in cuda. New Astron. 13(2), 103–112 (2008)CrossRefGoogle Scholar
  141. 141.
    Glinskiy, B.M., Kulikov, I.M., Snytnikov, A.V., Romanenko, A.A., Chernykh, I.G., Vshivkov, V.A.: Co-design of parallel numerical methods for plasma physics and astrophysics. Supercomput. Front. Innov. 1(3), 88–98 (2015)Google Scholar
  142. 142.
    Hamada, T., Narumi, T., Yokota, R., Yasuoka, K., Nitadori, K., Taiji, M.: 42 TFlops hierarchical N-body simulations on GPUs with applications in both astrophysics and turbulence. In: Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis, pp. 1–12. IEEE (2009)Google Scholar
  143. 143.
    Obrecht, C., Kuznik, F., Tourancheau, B., Roux, J.-J.: A new approach to the lattice Boltzmann method for graphics processing units. Comput. Math. Appl. 61(12), 3628–3638 (2011)zbMATHCrossRefGoogle Scholar
  144. 144.
    Rinaldi, P.R., Dari, E., Vénere, M.J., Clausse, A.: A lattice-Boltzmann solver for 3D fluid simulation on GPU. Simul. Model. Pract. Theory 25, 163–171 (2012)CrossRefGoogle Scholar
  145. 145.
    Obrecht, C., Kuznik, F., Tourancheau, B., Roux, J.-J.: Scalable lattice Boltzmann solvers for cuda GPU clusters. Parallel Comput. 39(6–7), 259–270 (2013)MathSciNetzbMATHCrossRefGoogle Scholar
  146. 146.
    Anderson, J.A., Lorenz, C.D., Travesset, A.: General purpose molecular dynamics simulations fully implemented on graphics processing units. J. Comput. Phys. 227(10), 5342–5359 (2008)zbMATHCrossRefGoogle Scholar
  147. 147.
    Liu, W., Schmidt, B., Voss, G., Müller-Wittig, W.: Accelerating molecular dynamics simulations using graphics processing units with CUDA. Comput. Phys. Commun. 179(9), 634–641 (2008)CrossRefGoogle Scholar
  148. 148.
    Stone, J.E., Vandivort, K.L., Schulten, K.: GPU-accelerated molecular visualization on petascale supercomputing platforms, pp. 1–8 (2013)Google Scholar
  149. 149.
    Reichl, T., Passenger, J., Acosta, O., Salvado, O.: Ultrasound goes GPU: real-time simulation using CUDA. In: Medical Imaging 2009: Visualization, Image-Guided Procedures, and Modeling, vol. 7261, p. 726116, International Society for Optics and Photonics (2009)Google Scholar
  150. 150.
    Alsmirat, M.A., Jararweh, Y., Al-Ayyoub, M., Shehab, M.A., Gupta, B.B.: Accelerating compute intensive medical imaging segmentation algorithms using hybrid CPU-GPU implementations. Multimedia Tools Appl. 76(3), 3537–3555 (2017)CrossRefGoogle Scholar
  151. 151.
    Dawes, T.J.W., et al.: Machine learning of three-dimensional right ventricular motion enables outcome prediction in pulmonary hypertension: a cardiac MR Imaging Study. Radiology 283(2), 161315 (2017)MathSciNetCrossRefGoogle Scholar
  152. 152.
    Bartocci, E., Cherry, E.M., Glimm, J., Grosu, R., Smolka, S.A., Fenton, F.H.: Toward real-time simulation of cardiac dynamics. In: Proceedings of the 9th International Conference on Computational Methods in Systems Biology, pp. 103–112. ACM (2011)Google Scholar
  153. 153.
    Berg, S., Luther, S., Parlitz, U.: Synchronization based system identification of an extended excitable system. Chaos 21(3), 033104 (2011)zbMATHCrossRefGoogle Scholar
  154. 154.
    Sato, D., Xie, Y., Weiss, J.N., Qu, Z., Garfinkel, A., Sanderson, A.R.: Acceleration of cardiac tissue simulation with graphic processing units. Med. Biol. Eng. Comput. 47(9), 1011–1015 (2009)CrossRefGoogle Scholar
  155. 155.
    Landoni, M., Genoni, M., Riva, M., Bianco, A., Corina, A.: Application of cloud computing in astrophysics: the case of Amazon web services. In: Software and Cyberinfrastructure for Astronomy V, vol. 10707, p. 107070G. International Society for Optics and Photonics (2018)Google Scholar
  156. 156.
    Bartocci, E., et al.: Teaching cardiac electrophysiology modeling to undergraduate students: laboratory exercises and GPU programming for the study of arrhythmias and spiral wave dynamics. Adv. Physiol. Educ. 35(4), 427–437 (2011)CrossRefGoogle Scholar
  157. 157.
    Fallis, A.: CUDA by example, vol. 53 (2013)Google Scholar
  158. 158.
    NVIDIA: NVIDIA CUDA C Programming Guide Version 4.2, p. 173 (2012)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Abouzar Kaboudian
    • 1
    Email author
  • Hector Augusto Velasco-Perez
    • 1
  • Shahriar Iravanian
    • 2
  • Yohannes Shiferaw
    • 3
  • Elizabeth M. Cherry
    • 1
    • 4
  • Flavio H. Fenton
    • 1
  1. 1.Georgia Institute of TechnologyAtlantaUSA
  2. 2.Emory UniversityAtlantaUSA
  3. 3.California State UniversityNorthridgeUSA
  4. 4.Rochester Institute of TechnologyRochesterUSA

Personalised recommendations