Statistical simulation techniques for uniprocessor and multiprocessor systems


Report of research results

Developing a computer system nowadays heavily relies on simulation. It is a well-known fact that systems have to be modelled at several levels of abstraction, each with its specific speed/accuracy trade-off. This cluster targets system modelling at the highest abstraction level. One of the problems with simulation is that although these simulations can be done at a high level of abstraction, they still are extremely time consuming. There are several reasons why this is the case. First, the benchmarks that need to be simulated typically consist of several hundreds of billions of dynamically executed instructions. Second, multiple of these benchmarks need to be simulated in order to cover a representative set of applications. Third, the complexity of the

target system reflects itself in the complexity of the simulator making the simulator at least four orders of magnitude slower than native hardware execution. Fourth, during design space exploration all benchmarks need to be simulated multiple times in order to identify the optimal design for a given cost function covering performance, power, area, cost, reliability, etc.



This is a well recognized problem and several approaches have been proposed in recent literature to address it. Examples are reduced input sets (e.g., MinneSPEC), sampling (e.g., SimPoint, SMARTS, etc.), etc. Another approach we are specifically interested in is statistical modelling. The basic of idea of statistical modelling is to collect a number of program characteristics and predict behaviour for a large set of systems based on these. The groups in Uppsala and Ghent have used this approach for modelling different parts of the system. Uppsala has used this approach for modelling the memory system while Ghent has used this approach for modelling CPUs. Combining both approaches would make statistical simulation a very powerful tool for design space exploration purposes.



Ghents Statistical CPU simulation allows for fairly accurate performance prediction accuracies (with errors around 5% to 10%) while simulating only hundreds of thousands of instructions which makes it a very fast simulation technique. The basic of idea of statistical simulation is to collect a number of program characteristics and to generate a synthetic trace from it. The synthetic trace is then simulated on a statistical simulator. One disadvantage of statistical simulation is that some of its characteristics are microarchitecture-dependent. For characterizing the cache behavior, statistical simulation uses cache miss rates. As a result, if we want to use statistical simulation for design space exploration this means that cache miss rates need to be measured for all the cache configurations of interest. If we could come up with a microarchitecture-independent characterization for quantifying cache behaviour, this would increase to usefulness of statistical simulation substantially for design space exploration.



Uppsalas StatCache memory system model captures microarchitecture-independent characteristics from native execution and estimates cache miss rates from it. The measured characteristic is reuse distance, i.e., the number of memory accesses between two accesses to the same memory location. The reuse distance is a microarchitecture-independent metric making it an ideal candidate for being used in conjunction with statistical CPU simulation.



Another orthogonal issue is the complexity of the design of the simulation software. Obviously, a monolithic piece of software is not flexible at all for quickly building simulation tools. Therefore, recent research has focused on modular simulation environments, such as Liberty, Asim and MicroLib. MicroLib is developed at INRIA Paris. If the goals for fast statistical simulation mentioned above could be achieved within a modular simulation framework, this would result in a very powerful fast simulation methodology.



In this proposal we would like to bring three research groups together, namely Uppsala University (E. Hagersten), Ghent University (L. Eeckhout) and INRIA Paris (O. Temam). The group at Uppsala develops the StatCache approach, the group in Ghent develops the statistical simulation methodology and the group at INRIA develops the MicroLib modular simulation software. We can see great collaborative potential in several areas.



We would like to ask funding for organizing two meetings (5 to 6 persons) where we would like to discuss how exactly both approaches can be merged into a powerful methodology. And then we will also discuss potential avenues for future collaboration. Potential avenues are (i) an evaluation of statistical simulation for commercial workloads, (ii) statistical simulation for fast design space exploration, (iii) extending statistical simulation for multiprocessor systems, (iv) modular statistical simulation and (v) a simulation methodology that allows for simulating very large systems consisting of over a hundred processors. One potential goal would be to put together a HiPEAC proposal for the EU STREP Call on Simulating Emergent Properties in Complex Systems (http://www.cordis.lu/ist/fet/co.htm#cs2005)


Research cluster

Requested: € 8000
Granted: € 8000

Requested: € 0
Granted: € 0

Funding will be used to meet with 5 to 6 persons probably twice for discussing the potential avenues of collaborative research between the three research groups.


Requested: 6 month(s)
Granted: 6 month(s), starting on: Tue, January 1, 1980

EECKHOUT Lieven (Ghent University) (--member--)
HAGERSTEN Erik (Uppsala University) (--colleague--)
TEMAM Olivier (INRIA) (--member--)