Simulated Systems Models

At the moment we provide two systems setups ready to use. A simple and a complex model. The complex system is base on Intel Skylake parameters and was adopted from here

In the following the two systems and the main parameters. For all details refer to the configs in gem5utils/systems/.

Simple System

 Parameters
Core: TimingSimpleCPU
L1-I/D: 32KB
LLC: 128KB
Memory: 2GB

Complex Skylake System

The complex model is the Intel Skylake CPU and its parameters are taken from the reference setup in here.

 Parameters
Core: Intel Skylake
L1-I/D: 32KB
L2: 1MB
LLC: 8MB
Memory: 2GB, DDR4, 2400, 16x4.

Two Machine Model

For a truly isolated server-client communication we also provide a two machine setup. In order to use it build our initial working directory with make -f simulation/Makefile build-two-machine setup. The only difference is that it will use a different template to create the run_sim.py config file

 Parameters
Detailed Node: Skylake system model

Driving Node: TimingSimpleCPU, 8MB LLC, 2GB SimpleMemory

In the two machine setup the client is started on the driving node and the function on the detailed node. To communicate both nodes are connected via gem5 EthernetLink model. To make it work two different workflows need to be defined one for the client and one for the server respectively.

Client workflowServer workflow
1. Booting linux
2. Spinning up the container
3. Pin the container to core 1
4. Enable network interface and assign ip
1. Booting linux
2. Wait until server ip is reachable
3. Run the invoker to warm the function container.
5. Reset the gem5 stats
6. Invoker the function
7. Dump stats and exit

Note: We enable the network interface not before the function is started. This allows the synchronization between server and client.