项目作者: CSL-KU

项目描述 :
BRU: Bandwidth Regulation Unit for Real-Time Multicore Processors
高级语言: Python
项目地址: git://github.com/CSL-KU/bru-firesim.git
创建时间: 2020-01-07T22:08:34Z
项目社区:https://github.com/CSL-KU/bru-firesim

开源协议:Other

下载


BRU: Bandwidth Regulation Unit for Real-Time Multicore Processors

This repository contains the necessary files to reproduce the experiment results in the BRU paper.

Environment Setup

The simulation environment runs on FireSim. To set up the environment, follow the FireSim documentation version 1.6.0 through the Initial Setup/Installation section. When cloning FireSim, use the URL of this repository instead.

Then, run the following commands to complete the installation:

  1. sudo pip3 install numpy matplotlib
  2. cd bru-firesim/sw/firesim-software/workloads/farzad/overlay/root/riscv-hpmcounters
  3. make
  4. cd bru-firesim/sw/firesim-software/workloads/farzad/overlay/root/isolbench/bench
  5. make

Running Experiments

Make sure to source sourceme-f1-manager.sh before running any commands.

Effect of Regulation Period in Protecting Real-time Tasks

This will run the simulation and store the result on the manager:

  1. cd bru-firesim/sw/firesim-software
  2. ./marshal -v build workloads/bw-periodic-disparity-6.json
  3. ./marshal install workloads/bw-periodic-disparity-6.json
  4. firesim launchrunfarm -c config_runtime6.ini && firesim infrasetup -c config_runtime6.ini && firesim runworkload -c config_runtime6.ini && firesim terminaterunfarm -q -c config_runtime6.ini

Look for the result directory printed on the screen:

  1. ...
  2. FireSim Simulation Exited Successfully. See results in:
  3. /home/centos/firesim/deploy/results-workload/[time-tag]-bw-periodic-disparity-6/
  4. ...

To parse the results and create Figure 9:

  1. cd bru-firesim/bru-expr/periodic
  2. ./run-cdf.sh [path-to-the-result-directory] bw-periodic-disparity-6

This will create the figure in cdf.pdf.

Effect of Group Bandwidth Regulation

Figure 12

To run the simulation:

  1. cd bru-firesim/sw/firesim-software
  2. ./marshal -v build workloads/lt-bww-2.json
  3. ./marshal install workloads/lt-bww-2.json
  4. firesim launchrunfarm -c config_runtime2.ini && firesim infrasetup -c config_runtime2.ini && firesim runworkload -c config_runtime2.ini && firesim terminaterunfarm -q -c config_runtime2.ini

To parse the result and create Figure 12:

  1. cd bru-firesim/bru-expr/lt-bww
  2. ./run-lt-bww.sh [path-to-the-result-directory]

This will create the figure in lt-bww.pdf.

Figure 13

To run the simulation:

  1. cd bru-firesim/sw/firesim-software
  2. ./marshal -v build workloads/vision-lt-3.json
  3. ./marshal install workloads/vision-lt-3.json
  4. firesim launchrunfarm -c config_runtime3.ini && firesim infrasetup -c config_runtime3.ini && firesim runworkload -c config_runtime3.ini && firesim terminaterunfarm -q -c config_runtime3.ini

To parse the result and create Figure 13:

  1. cd bru-firesim/bru-expr/vision-lt
  2. ./run-vision-lt.sh [path-to-the-result-directory]

This will create the figure in vision-lt.pdf.

Where is the BRU source code?

The BRU source code is located here.

Publication

Farzad Farshchi, Qijing Huang, and Heechul Yun, “BRU: Bandwidth Regulation Unit for Real-Time Multicore Processors,” IEEE Intl. Conference on Real-Time and Embedded Technology and Applications Symposium (RTAS), April 2020. [paper] [slides]