Commit d349f5ce authored by Ruben Laso Rodríguez's avatar Ruben Laso Rodríguez
Browse files

docs: update README

parent 7670fef6
......@@ -7,7 +7,7 @@ This repo holds the migration tool for NUMA systems developed by Ruben Laso Rodr
This migration tool uses hardware counters to decide whether a thread or a memory page needs a migration and its destination in a NUMA system.
Multiple metrics, like instructions per seconds, floating-point operations and mean memory latency are consulted to evaluate both performance and the likelihood of a thread to be migrated. These metrics are obtained using Linux `perf_event` interface and Intel PEBS (Precise Event-Based Sampling).
Currently, the thread migration strategies are based on tickets or scores, where several characteristics of a thread and its possible destinations are evaluated, and punctuation is assigned.
Currently, the thread migration strategies are based on tickets or scores, where several characteristics of a thread and its possible destinations are evaluated, and scores are assigned.
For the algorithms working with tickets, after every migration is evaluated (tickets are assigned), a weighted random process is done to select the migration to be performed. The higher the number of tickets, the higher the chances of a migration to be selected.
For the algorithms working with scores, the migrations with higher scores are those to be performed.
......@@ -20,13 +20,25 @@ If a particular algorithm is not listed in those papers, it is because the paper
## Requirements
This is the list of requirements:
- Linux platform (should still work with old kernels).
- A C++ compiler supporting C++17 standard.
- A C++ compiler supporting C++20 standard.
- Intel based processors in a NUMA system.
- Currently, this tool uses more than four general-purpose hardware counters per core, so hyperthreading should be disabled to raise the maximum available counter up to eight.
- The content of the file `/proc/sys/kernel/perf_event_paranoid` should be 0 or lower.
## Compile
In the `src/` folder exists a `Makefile`, so you can just run `$ make` in this directory to compile the application. Let me know if you have any trouble with the compilation of the code.
Use `cmake` to build `thanos`. Recommended to build in `Release` mode for optimal performance.
For example:
```
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
```
Further compilation options are shown with:
```
cmake <path to CMakeLists.txt> -LAH
```
Let me know if you have any trouble with the compilation of the code.
## Execution
Once you have the compiled executable, the execution of this tool is very similar to `mpirun`. Just execute:
......@@ -49,9 +61,23 @@ For any further doubt in the compilation or execution process, algorithmic of th
Finally, if you use this tool for research, please contact me for obtaining the citation of the last published paper related to this tool.
## Relevant papers
## Relevant publications
Paper explaining CIMAR, NIMAR and LMMA:
- Under review...
- Laso, R., Lorenzo, O. G., Cabaleiro, J. C., Pena, T. F., Lorenzo, J. Á., & Rivera, F. F. (2022). CIMAR, NIMAR, and LMMA: Novel algorithms for thread and memory migrations in user space on NUMA systems using hardware counters. Future Generation Computer Systems, 129, 18-32. https://doi.org/10.1016/j.future.2021.11.008
```
@article{LASO202218,
title = {CIMAR, NIMAR, and LMMA: Novel algorithms for thread and memory migrations in user space on NUMA systems using hardware counters},
journal = {Future Generation Computer Systems},
volume = {129},
pages = {18-32},
year = {2022},
issn = {0167-739X},
doi = {https://doi.org/10.1016/j.future.2021.11.008},
url = {https://www.sciencedirect.com/science/article/pii/S0167739X21004374},
author = {Ruben Laso and Oscar G. Lorenzo and José C. Cabaleiro and Tomás F. Pena and Juan Ángel Lorenzo and Francisco F. Rivera},
keywords = {NUMA, Scheduling, Thread migration, Memory migration, Hardware counters}
}
```
Papers explaining LBMA and IMAR^2:
- Laso, R, Lorenzo, OG, Rivera, FF, Cabaleiro, C, Pena, TF, Lorenzo, JA. LBMA and IMAR2: Weighted lottery based migration strategies for NUMA multiprocessing servers. Concurrency Computat Pract Exper. 2021; 33:e5950. https://doi.org/10.1002/cpe.5950
......
No preview for this file type
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment