Where GP run time is long, it is important to periodically save the current state of the run. Should the system crash, the run can be restarted from part way through rather than at the start. Care should be taken to save the entire state, so restarting a run does not introduce any unknown variation. The bulk of the state to be saved is the current population.This can be compressed, e.g., using gzip. While compression can add a few percent to run time, reductions in disk space to less than one bit per primitive in the population have been achieved. Checkpointing also allows you to later continue runs that seemed particularly promising when they reached whatever maximum generation you set initially.