Cellular automata (CAs) are good examples of systems in which large numbers of autonomous entities exhibit emergent behaviour. Using the occam-pi and JCSP communicating process systems, we show how to construct `lazy' and `just-in-time' models of cellular automata, which permit very efficient parallel simulation of sparse CA populations on shared-memory and distributed systems.