https://github.com/dhschall/gem5-svr-bench
A framework to run various server workloads on gem5
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
A framework to run various server workloads on gem5
Basic Info
- Host: GitHub
- Owner: dhschall
- License: mit
- Language: Python
- Default Branch: main
- Size: 4.33 MB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 9
- Releases: 2
Metadata Files
README.md
gem5 Server Benchmarks
This repo contains various server and data center workloads runnable in gem5 full-sytem mode. Refer to the benchmark README for all benchmarks we currently support.
[!IMPORTANT] This repo is in development phase. Please raise issues or propose PR if you encounter problems. We appreciate any feedback.
Prerequisites
Use the install.sh to install qemu along with other packages needed to build the disk image for gem5.
bash
./scripts/install.sh
Prepare the benchmark disk image
Build base disk image
To create a fresh base image with docker and all gem5 tools installed use the build-<x86/arm>.sh script in the image folder. This step has done only once and the same base disk image can be used for different workloads.
[!TIP] The building process from the base disk image is inherited from gem5-resources. For further details refer to the build README and the gem5-resources documentation.
Use the corresponding script to build the x86 or Arm disk image. Note that the arm building process assumes you run on an arm machineas and use kvm. See the README for details to run without kvm.
```bash
Build the disk image for x86 Ubuntu 22.04
cd image
sudo ./build-x86.sh 22.04
cd ..
Building the disk image for arm Ubuntu 24.04 (22.04 not supported)
cd image
sudo ./build-arm.sh 24.04
cd ..
```
Depending on the type of machine the building process can take a while (x86 ~10min, arm ~30min). Once completed the new base image will be placed in the x86-disk-image-22-04 / arm-disk-image-24-04 directory.
Install the benchmarks on the disks
The base image has only docker installed and all necessary tools. However, the docker images for the benchmarks are not pulled which needs to be done outside of gem5.
Run the install script to automatically install the benchmarks onto the disk image. ```bash
./image/install.sh
``
The script will create a new working directorywkdir` and copy all files needed for the gem5 simulation needed (disk-image, kernel, http-client) into it.
Afterwards the disk is booted with QEMU and the benchmarks installed onto the disk
Booting the disk image in QEMU
To modify the disk image and add content manually create first the working directory with:
make -f image/Makefile build-wkdir
Then boot the image with
make -f image/Makefile run-<x86/arm>
Finally, for debugging purposes, you can use another terminal login via ssh using port 8888.
ssh gem5@localhost -p 8888
Gem5 simulation
Boot benchmark and take snapshot
Before we can start simulating the actual benchmark (1) Linux has to be booted, (2) the docker image has to be started and (3) the benchmarks JIT engine -- very common for server applications -- has to be warmed up. The KVM accelerated core is used to perform all three steps after which a checkpoint is taken.
Note KVM can only be used if the host ISA is the same as the simulated system.
Automated setup
To generate all checkpoints, consider the scripts/setup-all.sh script:
```bash
Edit the GEM5 variable at the top to point to a valid GEM5 binary
vim ./scripts/setup-all.sh
Execute the script
bash ./scripts/setup-all.sh ```
This will take 5-10 minutes. The output can be inspected in the following ways:
- See the process state with pueue status (running / failed ...)
- View the gem5 log (gem5.log) or the Linux output (board.terminal) in the results/<arch>/setup/* output directories
Simulation
After the checkpoints were taken, the simulation can be executed via the scripts/run-all.sh script:
```bash
Edit the GEM5 variable at the top to point to a valid GEM5 binary
Adjust the other variables to select benchmarks and the architecture
vim ./scripts/run-all.sh
Start the simulation, giving it a label to identify the experiment later
bash ./scripts/run-all.sh
Similar to the setup process, the output can be observed in the results/<arch>/<SCENARIO_NAME>/* folders
Owner
- Name: David Schall
- Login: dhschall
- Kind: user
- Location: Edinburgh
- Company: University of Edinburgh
- Website: https://dhschall.github.io/
- Repositories: 2
- Profile: https://github.com/dhschall
GitHub Events
Total
- Create event: 40
- Release event: 2
- Issues event: 7
- Watch event: 3
- Delete event: 36
- Member event: 1
- Issue comment event: 15
- Push event: 96
- Public event: 1
- Pull request review event: 7
- Pull request review comment event: 8
- Pull request event: 82
Last Year
- Create event: 40
- Release event: 2
- Issues event: 7
- Watch event: 3
- Delete event: 36
- Member event: 1
- Issue comment event: 15
- Push event: 96
- Public event: 1
- Pull request review event: 7
- Pull request review comment event: 8
- Pull request event: 82
Issues and Pull Requests
Last synced: 5 months ago
All Time
- Total issues: 7
- Total pull requests: 75
- Average time to close issues: 2 months
- Average time to close pull requests: 10 days
- Total issue authors: 2
- Total pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.35
- Merged pull requests: 52
- Bot issues: 0
- Bot pull requests: 50
Past Year
- Issues: 7
- Pull requests: 75
- Average time to close issues: 2 months
- Average time to close pull requests: 10 days
- Issue authors: 2
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.35
- Merged pull requests: 52
- Bot issues: 0
- Bot pull requests: 50
Top Authors
Issue Authors
- dhschall (5)
- shadowcpy (2)
Pull Request Authors
- dependabot[bot] (50)
- dhschall (19)
- shadowcpy (6)