in the last few decades , computer simulation has become an important tool to investigate various phenomena in cardiac biology , including studies of single ion channel properties , action potentials of the myocyte [ 3 , 5 ] , dynamics of action potential propagation in tissue , subcellular calcium dynamics , etc . in spite of the advancement of computational technology , the simulation of action potential waves in three - dimensional ( 3d ) cardiac tissue with a realistic geometry is still considered as a  large - scale simulation .  general - purpose computing on gpus ( gpgpu ) is a recently emerging technology [ 1 , 4 , 8 ] , which uses gpus , instead of cpus , to compute large simulations in parallel . . each gpu may contain 128240  stream processors  whereas today s cpus contain 2 , 4 , or 8 cores . in this paper , we demonstrate that the gpu is about 30~40 times faster than the cpu , enabling it to perform whole heart electrophysiology simulations within practical time . in this study , we chose the simulation of the propagation of the action potential in cardiac tissue , which is modeled as the propagation of a wave in an excitable medium . therefore , this technique can be applied to a number of phenomena in physics , chemistry , and biology . the first was a 2d homogeneous sheet , and the second was an anatomic rabbit ventricular model with fiber rotation , that is , an anisotropy that varies from point to point in the heart . the gpu simulation was performed with a single nvidia geforce 8800 gt 1 gb graphic random - access memory ( ram ) and an nvidia geforce 9800 gx2 1 gb graphic ram . these graphic cards were installed into a system with a dual - core 2.0  ghz amd opteron processor and 4 gb error correction code ( ecc ) ram . the cpu simulation was performed with an 8-node high performance - computing ( hpc ) cluster . each node has two dual - core 2.0  ghz amd opteron processors ( i.e. , 4 cores in each node ) and 4 gb ecc ram . all 2d simulations , and all 3d simulations with one gpu , were performed with the nvidia geforce 8800 gt . 3d simulations with two or four gpus were performed with the nvidia geforce 9800 gx2 . because these gpus support only single precision , all floating - point calculations were done using single precision across both gpu and cpu simulations . when the gpu kernel code is executed , it is similar to a cpu based parallel implementation accomplished through a series of threads , with each thread running independently in parallel . similar to a cpu implementation , it was necessary to synchronize all threads after each ordinary differential equation ( ode ) or partial differential equation ( pde ) kernel execution . we can then thread these intra - gpu as they control the processing within a single gpu . in addition to having to manage threads intra - gpu , it was also necessary to have inter - gpu threads to control each gpu . for instance , the nvidia geforce 9800 gx2 graphics card has two gpus on one card . in order to utilize each gpu as with a cpu cluster with distributed memory , it is also necessary to manage the distributed gpu memory . however , unlike a cpu where data can be moved from one cpu to another , gpus can and must communicate with the cpu memory , that is , data is transferred from one gpu to the other gpu via the main ram ; gpu1ramgpu2 . the cardiac tissue was modeled using the following partial differential equation:\documentclass[12pt]{minimal } 
 \usepackage{amsmath } 
 \usepackage{wasysym } 
 \usepackage{amsfonts } 
 \usepackage{amssymb } 
 \usepackage{amsbsy } 
 \usepackage{mathrsfs } 
 \usepackage{upgreek } 
 \setlength{\oddsidemargin}{-69pt } 
 \begin{document}$$ { \frac{\partial v}{\partial t } } = - { \frac{i}{{c_{m } } } } + \nabla \cdot d\nabla v , $ $ \end{document}where v is the transmembrane voltage , i is the total ionic current , cm is the transmembrane capacitance , and d is the diffusion tensor . we solved this reaction - diffusion equation with the forward euler method , using the technique of operator splitting . the time step was adaptively varied between 0.01 and 0.1  ms and the space step was 0.015  cm . details of the modeling of cardiac tissue are described in our previous study . for each time step , the ode part was solved once and the pde part was solved four times for the 2d simulation and six times for the 3d simulation ( fig . 1sample gpu code to solve the reaction - diffusion equation in 2d tissue . at each time step , the ode part is called once and the pde part is called four times . the ode kernel code and the pde kernel code are in the appendix sample gpu code to solve the reaction - diffusion equation in 2d tissue . at each time step , the ode part is called once and the pde part is called four times . the ode kernel code and the pde kernel code are in the appendix to test the gpu code , we induced spiral waves in 2d and 3d tissue using  cross - field stimulation , that is , two successive perpendicular rectilinear wave fronts . in each case 2).fig .  2action potential propagation in 2d tissue and in the anatomic heart model . the spiral wave was induced by cross - field stimulation . c spiral wave breakup in 2d tissue . g electrocardiogram from the anatomic heart simulation f action potential propagation in 2d tissue and in the anatomic heart model . the spiral wave was induced by cross - field stimulation . c spiral wave breakup in 2d tissue . g electrocardiogram from the anatomic heart simulation f for the 2d tissue simulations , the benchmark protocol involved pacing the tissue from the corner for 3  s of simulated time at a pacing cycle length of 150  ms . tissue size was varied from 100    100 ( 1.5  cm    1.5  cm ) to 800    800 ( 12  cm    12  cm ) . for the 3d tissue simulations , the benchmark protocol consisted of pacing the whole heart from the apex for 3  s of simulated time , at a pacing cycle length of 150  ms . finally , we investigated where the computational we split the program into three parts , the ode calculation , the pde calculation , and the data transfer . in order to measure the data transfer time , the ode calculation and the pde calculation were skipped , and the total time elapsed was then assigned to data transfer . then , skipping the ode calculation , we could measure the time for the pde calculation plus the data transfer . the time for the pde calculation was then estimated by subtracting the data transfer time from the ( pde  +  data transfer ) time . the time for the ode calculation was obtained by subtracting the ( pde  +  data transfer ) time from the time for the whole simulation . when tissue is homogeneous , parallel computation is very efficient . to compute 1  s of simulated time in 100    100 tissue , a single gpu took 8.2  s , whereas the cpu took 201  s. for larger tissue ( 800    800 ) the gpu took 283  s , while the cpu took 13,113  s. this is because as the tissue size becomes larger , the boundary / non - boundary ratio becomes smaller and the parallel computation becomes more efficient . in these cases , 3comparison between gpu and cpu . a time to compute 3  s of simulation time in 2d tissue . righty - axis is acceleration ( i.e. , computation time with cpu / computation time with gpu ) . b time to simulate the whole heart for 1  s of the simulation time . c computation ratio of the ode , the pde , and the data transfer for each simulation comparison between gpu and cpu . a time to compute 3  s of simulation time in 2d tissue . righty - axis is acceleration ( i.e. , computation time with cpu / computation time with gpu ) . b time to simulate the whole heart for 1  s of the simulation time . c computation ratio of the ode , the pde , and the data transfer for each simulation to simulate the anatomic rabbit ventricular model   for 1  s , the hpc cluster with 32 cpus ( 8 nodes ) took 45  min . on the other hand , one gpu took about 72  min and two and four gpus took about 43 and 27  min respectively for the same simulation ( fig . on the other hand , the bottleneck of the computation with gpus is mainly in the pde part ( fig . we demonstrate that gpus are substantially faster than cpus in the simulation of action potential propagation in cardiac tissue . a single gpu simulation of the whole heart is only 1.6 times slower than the simulation in an hpc cluster , and two or four gpus are even faster than the hpc cluster , making the gpu a new tool for cardiac simulations . however , like parallel cpu implementations , management of threads and memory must be well thought out if maximum performance is to be achieved .