Multiprocessor memory reference generation using Cerberus
Jeffrey B. Rothman, Alan Jay Smith · 2003
Presents Cerberus, an efficient system for simulating the execution of shared-memory, multiprocessor programs on a uniprocessor workstation. Using EDS (execution-driven simulation), it generates address traces which can be used to drive cache simulations on-the-fly, eliminating the large disk space requirements needed by trace files. It is fast because it links the program to be traced together with the cache or statistics gathering tool into a single executable, which eliminates the context switching needed by communicating processes. It is flexible because it has a simple interface which allows users to easily add any kind of module to use the generated trace information. It compares favorably to other existing tracers; it runs on a commonly available workstation and it is accurate, allowing cycle-by-cycle interactions between the simulated processors. The resulting slowdown from Cerberus is approximately 31 in uniprocessor mode and 45-50 in multiprocessor mode, relative to the workloads run natively on the same machines. We demonstrate that EDS uses only 5% of the total execution cycles when combined with a cache simulator, and we show that EDS is just as efficient as using trace-driven simulation.