Implementing Cellular Automata Based Models on Parallel Architectures: the CAPP Project