Optimizing cellular automata execution by distributed discrete event simulation techniques