Current trends signal an imminent crisis in the simulation of
future CMPs (Chip Multiprocessors). Future micro-archi-
tectures will offer more and more thread contexts to execute
parallel programs, but the execution speed of each thread
will not improve at the same pace. CMPs with 10's or even
100's of cores are envisioned. Simulating these future CMPs
efficiently without compromising accuracy is a challenge.
Slack simulation is a general parallel simulation paradigm
which provides flexible trade-offs between simulation accu-
racy and speed. Simulation threads do not synchronize after
every target core cycle as in cycle-by-cycle simulation.
Rather a maximum slack (the slack bound) is enforced
between the clocks of all simulated cores. A slack simulation
may become inaccurate because of simulation violations.
Such violations occur when a resource is accessed by two
cores in different order in the simulation and in the target
system. We introduce and demonstrate techniques to detect
violations, to adapt the simulation slack to maintain a target
violation rate, and to checkpoint and rollback a slack simu-