Prospero Element Library

Introduction to the Prospero Memory Trace Replay Core

Prospero is a simple processor model which reads memory operations from a trace file and then sends/recieves these into a memInterface-based cache system (e.g. memHierarchy) for simulation. The design of Prospero allows the user to configure the maximum number of pending memory transactions which can be in flight in the core. A trace of memory operations much be recorded using a PIN-based tracing tool such as the one which ships with the Prospero component source, although any tools which map to the same format will allow Prospero to work correctly. Users should note that the PIN-based tracing of an application is independent of SST so can be performed on X86/X86-64-based systems where SST is not built or installed (such as departmental clusters).

Element Library Details

Components which are included in the Prospero element library:

Sample Configuration

Example configurations for Prospero can be found in the element’s XML directory here. The sorting8cores.py example shows how a Prospero trace replay core is attached to a memory hierarchy. Note that there is one Prospero component defined for each simulated code (and each needs its own trace file). This is unlike the Ariel component which has a single component created with many virtual sub-cores. In the example sorting input deck a unique trace is supplied per core and is identified via an integer in the trace file name.