Parallel programming
[outline]
When trying to model the real world we frequently hit up against the limits of computing. In this part we'll look at solutions for various issues associated with running models or analysies on a single computer.
Firstly, we'll look at some of the potential problems you may come across, most notably running out of memory and/or processing time.
Parallel basics (powerpoint)
Further info:
Sadly Flynn's Taxonomy isn't named after the TRON character, but rather Michael Flynn.
Papers:
Evans, A.J. (2012) 'Uncertainty and Error'. In Heppenstall, A.J., Crooks, A.T., See, L.M., and Batty, M. (2011) 'Agent-Based Models of Geographical Systems'. Springer.
Malleson, N., See, L.M., Evans, A.J. and Heppenstall, A.J. (2010) Implementing comprehensive offender behaviour in a realistic agent-based model of burglary Simulation, 0(0): 1-22
Parry, H., Evans, A.J., and Morgan, D. (2006) Aphid population dynamics in agricultural landscapes: an agent-based simulation model Ecological Modelling, Special Issue on Pattern and Processes of Dynamic Landscapes, 199 (4), 451-463.
Parry, H. and Evans, A.J. (2008) A comparative analysis of parallel processing and super-individual methods for improving the computational performance of a large individual-based model Ecological Modelling, 214 (2-4), 141-152
Next, we'll look at how to make programs that run across multiple processors.
Further info:
Python threading
The GIL; more info
Python multiprocessing
Python concurrent.futures
celery
rabbitmq
redis
mpi4py
Parallel Python (powerpoint)
Finally, we'll look at some different computer architectures for tying together multiple machines.