... | ... | @@ -6,8 +6,8 @@ |
|
|
|
|
|
|
|
|
## Description
|
|
|
As part of this project we created a python CLI named [pqos_wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper) which uses `pqos` C library to perform cache allocation and monitoring. The CLI produces a JSON like output which is then easily parsed by `BenchExec` to check status of execution and related errors.
|
|
|
The CLI was then integrated with `BenchExec` to allow cache allocation and monitoring for parallel benchmarks.
|
|
|
As part of this project we created a python CLI named [pqos_wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper) which uses [pqos](https://github.com/intel/intel-cmt-cat/tree/master/) C library to perform cache allocation and monitoring. The CLI produces a JSON like output which is then easily parsed by [BenchExec](https://github.com/sosy-lab/benchexec/) to check status of execution and related errors.
|
|
|
The CLI was then integrated with [BenchExec](https://github.com/sosy-lab/benchexec/) to allow cache allocation and monitoring for parallel benchmarks.
|
|
|
Sample output for the CLI:
|
|
|
```
|
|
|
{
|
... | ... | @@ -52,6 +52,7 @@ In addition to cache allocation, cache/memory bandwidth monitoring feature was i |
|
|
- Remote Memory Bandwidth (MBR)
|
|
|
- retired instructions / cycles (IPC)
|
|
|
|
|
|
Here `LLC` refers to Last Level Cache that is shared by all cores, usually LLC is the L3 cache in the system
|
|
|
## Experiments
|
|
|
We setup various [experiments](https://gitlab.com/sosy-lab/software/pqos-wrapper/blob/master/docs/experiments.md) to check effect of cache availability and sharing on parallel benchmarks. Following scenarios were created by modifying the behaviour of `pqos_wrapper`:
|
|
|
- [full-cache-sharing](https://gitlab.com/sosy-lab/software/pqos-wrapper/tree/full-cache-sharing): In this experiment we allocated full cache ways to each benchmark, thus replicating the default cache configuration in a system where each core has a completely shared access for the LLC.
|
... | ... | @@ -62,7 +63,6 @@ The complete details about the experiment results and experiments can be found h |
|
|
|
|
|
## Code Contributions
|
|
|
The [Pqos Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper) repository was created as part of the GSoC project and the complete source code for this repository has been commited in the work period of GSoC 2019.
|
|
|
In addtion to `Pqos Wrapper`, code was contributed in `BenchExec` to integrate functions of the `pqos_wrapper` CLI. The links to the major code contributions are as follows:
|
|
|
- [Adding pqos module for Cache Allocation](https://github.com/sosy-lab/benchexec/pull/434)
|
|
|
- [Integrating monitoring feature in BenchExec](https://github.com/sosy-lab/benchexec/commit/b2eed37c745e8f38ad5bd8cc590f7c9edecf70d4)
|
|
|
- [Adding monitoring data in output xml](https://github.com/sosy-lab/benchexec/commit/cd56c0fe0733d8e7ce1a12998b5548bb64f2f196) |
|
|
In addtion to `Pqos Wrapper`, code was contributed in `BenchExec` to integrate functions of the `pqos_wrapper` CLI.
|
|
|
The link for the code contributions is as follows:
|
|
|
[Code Commits](https://github.com/sosy-lab/benchexec/pull/446) |