Skip to content
Snippets Groups Projects
Commit ee94a849 authored by Martina Maggio's avatar Martina Maggio
Browse files

adding readme

parent 250cf298
No related branches found
No related tags found
No related merge requests found
------------------------------------------------------------------
*** GENERAL INFORMATION ***
------------------------------------------------------------------
This artifact complements the paper
DMAC: Deadline-Miss-Aware Control
P. Pazzaglia, C. Mandrioli, M. Maggio, and A. Cervin
Euromicro Conference on Real-Time Systems (ECRTS), 2019
The paper describes a synthesis technique for controllers that are
aware of deadline misses and can use three different strategies to
handle the misses: kill the job, let the job continue and skip the
next, let the job continue and queue the next using a queue of
maximum size 1 that contains the freshest job.
The code reproduces figures 7, 8, and 9 from the paper.
------------------------------------------------------------------
*** EXECUTION INSTRUCTIONS ***
------------------------------------------------------------------
Requirements for the code execution:
* The code is better run in a Unix platform. Specifically, the code
has been tested on both Linux (Fedora 25) and MAC OS X. It is
possible to run the code on Windows machines, but not following
these instructions (automation via shell scripting does not work).
* The code requires: a C++ compiler, MATLAB, and a bash shell. The
code has been tested with clang++ on Mac OS and g++ on Linux and
with different versions of MATLAB (from R2012 to R2016a).
Finally, the code requires a full version of latex installed for
the generation of the figures (that uses tikz and pgfplots).
The artifact has the following folder structure:
| - figures
| | - fig7.tex
| | - fig8.tex
| | - fig9.tex
| - src
| | - matlab
| | | - ...
| | - scenario
| | | - ...
| | - sim
| | | - ...
| - tasksets
| | - ...
| generate_results.sh
| process_results.sh
| plot_results.sh
The folder tasksets contains many tasksets that can be tested. In
the figures shown in the paper we use 7 of these tasksets:
n5_u70taskset_25.csv,
n5_u70taskset_100.csv,
n5_u80taskset_25.csv,
n10_u70taskset_25.csv,
n10_u70taskset_100.csv,
n20_u70taskset_25.csv,
n20_u70taskset_100.csv.
The other files are given in case the reviewer wants to experiment
with different values (this requires modifications of the scripts).
The folder figures contains the latex sources for the figures.
The folder src contains the source code.
Finally, there are three scripts in the main folder:
generate_results.sh, process_results.sh, and plot_results.sh.
To run the code for the artifact four steps are required:
1) Modify the MATLAB path folder in process_results.sh to point to
the folder where MATLAB is installed. Two examples are given for
standard Linux and MAC OS X installations.
MATLABPATH="/usr/local"
MATLABPATH="/Applications/MATLAB_R2017a.app"
2) Open a terminal and run the script to generate the result files
with the following command:
chmod a+x generate_results.sh && ./generate_results.sh
NOTE: this command will take quite a long time to execute.
On an machine with 8 cores this command ran for >48 hours.
Running this script performs the following operations:
- runs the scenario theory C program to determine the
number of experiments to perform
- runs the C++ simulator to produce the data (this step is
parallelized, 7 processes called "simulator" are launched),
they write files in the "results" folder that is created by
the script
The output shown at the command line should resemble this:
************************************************************
~$ ./generate_results.sh
------------------------------------------------
Scenario Theory:
------------------------------------------------
epsilon = 0.003000
beta = 0.010000
experiments = 1533
------------------------------------------------
Simulator:
------------------------------------------------
num_tests = 1533
num_jobs = 500
number of time steps = 15
num samples execution time = 5
skew factor = 0.75
- launched result generation for n5_u70taskset_25.csv
- launched result generation for n10_u70taskset_25.csv
- launched result generation for n20_u70taskset_25.csv
- launched result generation for n20_u70taskset_100.csv
- launched result generation for n5_u80taskset_25.csv
- launched result generation for n10_u70taskset_100.csv
- launched result generation for n5_u70taskset_100.csv
------------------------------------------------
data generation terminated
------------------------------------------------
************************************************************
3) Once step 2 is completed run the script to process the data,
generate the controller and perform the control analysis, with
the following command:
chmod a+x process_results.sh && ./process_results.sh
NOTE: this command will take some time to execute.
On an machine with 8 cores this command ran for >8 hours.
Running this script runs the MATLAB program that processes the
data (in a parallelized form). The output shown at the command
line should resemble this:
************************************************************
------------------------------------------------
Matlab wrote results for n10_u70_f100
Matlab wrote results for n10_u70_f25
Matlab wrote results for n20_u70_f100
Matlab wrote results for n20_u70_f25
Matlab wrote results for n5_u70_f100
Matlab wrote results for n5_u70_f25
Matlab wrote results for n5_u80_f25
------------------------------------------------
data processing terminated
------------------------------------------------
************************************************************
4) Once step 3 is completed run the script to generate the figures
for the paper using the following command:
chmod a+x plot_results.sh && ./plot_results.sh
This command uses the results saved in the result folder to plot
the figures that are shown in the paper. In particular, the
script generates three files {fig7.pdf, fig8.pdf, fig9.pdf} that
correspond to the paper figures.
Due to randomness (in the sequence generation), the figures may
differ from the paper ones, but the trends should be the same
and the plots should generally be similar.
-----
NOTE:
-----
It is possible to bypass step 1, 2 and 3, downloading the zip files
that contains the result files from the following link:
http://XXX
Once downloaded, unzip the file in the artifact folder and
follow (only) step 4.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment