Fault tolerant adaptive parallel and distributed simulation through functional replication