Programming cellular automata algorithms on parallel computers