GPGMP & Inchman



Welcome to GPGMP, an implementation of a spatially-resolved stochastic simulation algorithm on general-purpose graphics processing units. You can use GMGMP either in a complete simulation environemtn with a graphical user interface, called Inchman, or you may want to download the source code. Please see this link for the Inchman documentation including tutorials.


Please use the following reference to cite GPGMP in your publication: Vigelius, M., Lane, A. and Meyer, B. (2010). Accelerating Reaction-Diffusion Simulations with General-Purpose Graphics Processing Units. Bioinformatics (2010), First published online: November 8, 2010, doi: 10.1093/bioinformatics/btq622.


Please do not hesitate to contact us if you have any questions, problems, or suggestions. If you feel that you found a bug in our code, we ask you to use the bug-tracking system.


We wish to acknowledge the great support of the Monash e-Research centre, in particular of Dr. Philip Chan and Dr. Wojtek Goscinski.



General introduction to reaction-diffusion equations and GPGMP


GPGMP provides an implementation of a spatially-resolved stochastic simulation algorithm on general-purpose graphics processing units (GPGPUs). This algorithm, designed to solve reaction-diffusion equations on a mesoscopic level, has widespread applications in computational biology, molecular chemistry and social systems research. For our implementation, we use the Gillespie multi-particle method, which is well-suited for GPGPUs. In preliminary tests, we could obtain speed ups of around 1-2 orders of magnitudes as compared to standard implementations on CPUs.

Reaction-Diffusion Networks

Reaction-diffusion networks are systems consisting of one or more interacting entities (e.g. molecules in a solution) which propagate in space through random walks. Macroscopically, these systems obey a reaction-diffusion equation of the form: eqn where x denotes the macroscopic state vector (e.g. the chemical concentration of each species), f describes the interactions and D are the diffusion constants for each species.

In many applications, most notably in a biological and chemical context, the number of participating agents is small and the inherently stochastic nature of the problem requires a microscopic description of the system, in which the position of every species is known at all times. The macroscopic diffusion equation can be regained by appropriate statistic averaging.

A microscopic approach, however, is often cumbersome and computer simulations to obtain realizations of reaction-diffusion networks are quite costly. Furthermore, it is often not necessary to distinguish between individual entities and a mesoscopic approach is sufficient. In a mesoscopic description, the domain of interest is divided into small subvolumes of a convenient granularity, which are assumed to be perfectly mixed. Instead of tracing the position of each individual particle through time, one then collectively keeps track of the number of particles in each subvolume.

Gillespie Multiparticle Algorithm

A wide variety of stochastic simulation algorithms exist to compute single realizations of reaction diffusion networks [see, e.g., Vigelius et al. (2010) for a brief overview]. Gillespie's direct method (Gillespie, 1977) has emerged as a standard method to simulate spatially homogeneous reaction networks. Very efficient adaptations of this algorithm exist, such as the next-reaction method (Gibson et al., 2000) or the logarithmic direct method (Li et al., 2006). Based on the first reaction method is a prominent algorithm to simulate spatially inhomogeneous reaction-diffusion networks, the next-subvolume method (Elf et al., 2003). The popular software packages Smartcell (Ander et al., 2004) and MesoRD (Hattne et al., 2005) can handle the next-reaction and the next-subvolume methods. The fastest implementation of the next-subvolume method so far is the stochastic simulation compiler (Lis et al., 2009).

All algorithms in the previous paragraph compute exact realizations of stochastic reaction-diffusion systems. The disadvantage of these methods is their high computational cost, in particular, if a fine granularity is required and the number of subvolumes is high. Furthermore, they do not lend themselves well for data-parallel implementations. However, if one is willing to sacrifice accuracy for speed, deterministic-stochastic hybrid algorithms provide an efficient alternative. In these methods, the diffusion part is separated from the reaction part and treated deterministically. The Gillespie multiparticle method (GMP) (Rodriguez et al., 2006) is one example of this class of algorithms.


GMP handles the diffusion part of the reaction-diffusion network trough a multiparticle lattice gas automaton (Chopard et al., 1994) and the reaction part via Gillespie's direct method (Gillespie, 1977). The time step is chosen globally according to the diffusion constants of each species and the dimensions of each lattice cell. In each iteration, all reactions are performed independently in each subvolume. At the end, all particles are diffused according to the cellular automaton rule.

Implementation on GPGPUs

With the advent of general-purpose graphics processing units (GPGPUs) there is potential to provide super-computing resources to a broad audience. GPUs are ubiquitous and comparably cheap and designated units can be mounted in work station computers for better performance. GPGPUs provide a multitude of processing units (threads) which are executed in parallel. Moreover, efficient latency hiding and zero-overhead scheduling allow for massively-parallel data processing and can thus be efficiently used for scientific computing applications. GPU threads are very light-weight and work most efficiently when the same instruction is executed by all threads in a warp (single-instruction multiple-data).

We present a data-parallel implementation of GMP on GPGPUs (GPGMP). Since all cells are treated independently during each time step, our approach is straight-forward. Each thread works independently on exactly one subvolume. Global synchronization is only required at the end of the diffusion time step to exchange information about particles moving in between neighbouring cells. We refer the reader to Vigelius et al. (2010) for implementation details.


GPGMP allows researchers to efficiently simulate spatially-inhomogeneous reaction-diffusion networks. Even if no access to designated GPGPU clusters is available, GPGMP can still provide considerable speed gains on built-in GPGPU cards on workstations (see the figure above for a comparison of several algorithms). Furthermore, we provide free access to the Monash Sun Grid GPGMP cluster through our easy-to-use web interface to GPGMP, Inchman.

Getting started with GPGMP and Inchman

We recommend to try out some of the features of GPGMP through Inchman. For more sophisticated models, however, it might be necessary to download the source code and compile your models from scratch. Detailed instructions and further information about GPGMP can be found here.

If you find this software useful, we kindly ask you to reference Vigelius et al. (2010) in your publication.


With time, we will add neat examples of GPGMP applications here. If you have used GPGMP for your research, we would love to hear from you!



GPGMP is basically a collection of C++ classes that can be used to build reaction-diffusion models and simulate them using a GPGPU-accelerated implementation of the Gillespie-Multiparticle algorithm. The downside of this approach is that the user will need to have some familiarity with C++ (although we provide some easy-to-use templates). The main benefit, however, is the great flexibility in creating models. Classes, and even the main simulation algorithm, can easily be extended to accommodate non-standard models.

For more information, please see the GPGMP Developer Site.

Inchman - the online user interface to GPGMP

Inchman provides a convenient and simple way to run existing reaction-diffusion models on an GPGMP implementation without having to download and compile the source code. Users can define their reaction networks in SBML and upload it to Inchman. The geometry specifications and simulation parameters are defined through the web interface. The whole model can then be submitted to our GPU cluster and, upon successful execution, a summary of the results will be mailed to the user.

For more information, please see the Inchman Tutorial.


Ander, M., Beltrao, P., Ventura, B. D., Ferkinghoff-Borg, J., Foglierini, M., Lemerle, C., Tomas-Oliveira, I., and Serrano, L. (2004). Smartcell, a framework to simulate cellular processes that combines stochastic approximation with diffusion and localisation: analysis of simple networks. Systems Biology, 1(1), 129–138.

Chopard, B., Frachebourg, L., and Droz, M. (1994). Multiparticle Lattice Gas Automata for Reaction Diffusion Systems. International Journal of Modern Physics C, 5, 47–63.

Elf, J., Doncic, A., and Ehrenberg, M. (2003). Mesoscopic reaction-diffusion in intracellular signaling. volume 5110, pages 114–124. SPIE.

Erban, R., Chapman, J., and Maini, P. K. (2007). A practical guide to stochastic simulations of reaction-diffusion processes.

Michael A. Gibson and Jehoshua Bruck (2000). "Efficient Exact Stochastic Simulation of Chemical Systems with Many Species and Many Channels." Journal of Physical Chemistry A, 104(9), 1876-1889.

Gillespie, D. T. (1976). A general method for numerically simulating the stochastic time evolution of coupled chemical reactions. Journal of Computational Physics, 22(4), 403–434.

Hattne, J., Fange, D., and Elf, J. (2005). Stochastic reaction-diffusion simulation with MesoRD. Bioinformatics, 21(12), 2923–2924.

Li, H. and Petzold, L. (2006). Logarithmic direct method for discrete stochastic simulation of chemically reacting systems. Technical report, Department of Computer Science, University of California, Santa Barbara.

Lis, M., Artyomov, M. N., Devadas, S., and Chakraborty, A. K. (2009). Efficient stochastic simulation of reaction-diffusion processes via direct compilation. Bioinformatics, 25(17), 2289–2291.

Rodriguez, J. V., Kaandorp, J. A., Dobrzy ́ ski, M., and Blom, J. G. (2006). Spatial stochastic modelling of the phosphoenolpyruvate-dependent phosphotransferase (pts) pathway in escherichia coli. Bioinformatics, 22(15), 1895–1901.

Vigelius, M., Lane, A. and Meyer, B. (2010). Accelerating Reaction-Diffusion Simulations with General-Purpose Graphics Processing Units. Bioinformatics (2010), First published online: November 8, 2010, doi: 10.1093/bioinformatics/btq622