Doc improved

This commit is contained in:
Éder F. Zulian
2019-02-20 16:56:52 +01:00
parent e1446a0646
commit 147e3a2565

View File

@@ -966,7 +966,7 @@ A description of the content each directory follows.
### Log Collector Script ### Log Collector Script
Users can profit of running multiple simulations automatically with Users can profit of running multiple simulations automatically with
[DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh). [DRAMSylva.sh].
Every time you run the script you get a new folder with the name containing Every time you run the script you get a new folder with the name containing
the execution time: dram.sys\_YYYY\_MM\_DD-HH.MM.SS. the execution time: dram.sys\_YYYY\_MM\_DD-HH.MM.SS.
@@ -1066,8 +1066,9 @@ If some traces in trace_list are compressed in a tar.gz and require
decompression before execution the option **tgz_traces** can be set to decompression before execution the option **tgz_traces** can be set to
**yes**. The tarball is specified by the variable **tgz_file** and it is **yes**. The tarball is specified by the variable **tgz_file** and it is
expected to be available (already commited and pushed to be available after expected to be available (already commited and pushed to be available after
cloning) in the [trace folder](DRAMSys/library/resources/traces). DRAMSylva cloning) in the [trace folder](DRAMSys/library/resources/traces).
will uncompress the tarball extracting the traces before using them. [DRAMSylva.sh] will uncompress the tarball extracting the traces before using
them.
```bash ```bash
tgz_traces="yes" tgz_traces="yes"
@@ -1078,16 +1079,15 @@ Set the variable **use_json_cfg** to **yes** in order to override sim_files
with new simulation files generated from a JSON description. Otherwise the with new simulation files generated from a JSON description. Otherwise the
simulation files are the ones specified by sim_files. Files are expected to be simulation files are the ones specified by sim_files. Files are expected to be
available (already commited and pushed to be available after cloning) in available (already commited and pushed to be available after cloning) in
[configs_json](DRAMSys/library/resources/scripts/DRAMSylva/configs_json). [configs_json].
```bash ```bash
use_json_cfg="yes" use_json_cfg="yes"
``` ```
All the essential simuation files are auto generated accordingly to each of All the essential simuation files are auto generated accordingly to each of
the JSON descriptions provided in **json_cfg_list**. the JSON descriptions provided in **json_cfg_list**. Several examples of JSON
Several examples of JSON configuration files are provided in configuration files are provided in [configs_json].
[configs_json](DRAMSys/library/resources/scripts/DRAMSylva/configs_json).
+ Insert the desired simulation data in one or multiple JSON files following + Insert the desired simulation data in one or multiple JSON files following
any of the examples provided, e.g., any of the examples provided, e.g.,
@@ -1095,7 +1095,7 @@ Several examples of JSON configuration files are provided in
Multiple arrays are allowed and encouraged. Each array corresponds to a full Multiple arrays are allowed and encouraged. Each array corresponds to a full
simulation setup. simulation setup.
+ Add your JSON files to **json_cfg_list** in DRAMSylva.sh. + Add your JSON files to **json_cfg_list** in [DRAMSylva.sh].
```bash ```bash
json_cfg_list=" json_cfg_list="
@@ -1106,11 +1106,11 @@ ref_bw.json
+ Commit and push your changes. + Commit and push your changes.
+ Run **DRAMSylva** as previously described. All generated files will be + Run **[DRAMSylva.sh]** as previously described. All generated files will be
inside the output folder, so it will be possible to keep a perfect track of inside the output folder, so it will be possible to keep a perfect track of
all simulations. all simulations.
For more information check the documentation in [DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva). For more information check the documentation inside [DRAMSylva folder].
### Trace Generator Script ### Trace Generator Script
@@ -1438,7 +1438,7 @@ $ ./DRAMSys > output
## DRAMSys with gem5 ## DRAMSys with gem5
Install gem5 by following the instructions on the [gem5 wiki](http://gem5.org/Documentation#Getting_Started). Install gem5 by following the instructions on the [gem5 wiki](http://gem5.org/Documentation#Getting_Started).
Optionally, use the scripts from [gem5.TnT](https://github.com/tukl-msd/gem5.TnT) to install gem5, build it, get some benchmark programs and learn more about gem5. Optionally, use the scripts from [gem5.TnT] to install gem5, build it, get some benchmark programs and learn more about gem5.
In order to understand the SystemC coupling with gem5 it is recommended to In order to understand the SystemC coupling with gem5 it is recommended to
read the documentation in the gem5 repository *util/tlm/README* and [12]. read the documentation in the gem5 repository *util/tlm/README* and [12].
@@ -1567,7 +1567,7 @@ Wait some minutes for the bubble sort application to finish.
The hello application binary was copied from gem5 repository. The hello application binary was copied from gem5 repository.
The bubble sort application was obtained with [gem5.TnT](https://github.com/tukl-msd/gem5.TnT). The bubble sort application was obtained with [gem5.TnT].
Command template for generating **.ini** configuration files follows: Command template for generating **.ini** configuration files follows:
@@ -1727,11 +1727,8 @@ If you need help please contact Matthias Jung.
### DRAMSys + GEM5 Log Collector Scripts ### DRAMSys + GEM5 Log Collector Scripts
Users can profit of running multiple **DRAMSys + gem5** simulations Users can profit of running multiple **DRAMSys + gem5** simulations
automatically with automatically with [gem5ilva.sh] for **gem5 syscall emulation (SE) mode** and
[gem5ilva.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh) for **gem5 [gem5ilva_fs.sh] for **gem5 full system (FS) mode**.
syscall emulation (SE) mode** and
[gem5ilva_fs.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh) for
**gem5 full system (FS) mode**.
Normally you will have to push your changes before running the scripts. This Normally you will have to push your changes before running the scripts. This
approach makes it easier to track back what exactly was tested by the scripts. approach makes it easier to track back what exactly was tested by the scripts.
@@ -1763,46 +1760,43 @@ the main repository (usually because they are too big to be added to the
repository). repository).
For those cases uncomment and properly set the variable For those cases uncomment and properly set the variable
**external_inifile_path** in **external_inifile_path** in [gem5ilva_fs.sh].
[gem5ilva_fs.sh](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh).
This allows you to use a gem5 **config.ini** file external to the repository. This allows you to use a gem5 **config.ini** file external to the repository.
Note, however, that in this case it is up to you to keep track of your Note, however, that in this case it is up to you to keep track of your
simulation setup. simulation setup.
**Hint:** **Hint:**
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) provides convenience scripts [gem5.TnT] provides convenience scripts
to create gem5 disk images with benchmarking programs embedded. to create gem5 disk images with benchmarking programs embedded.
### Notes for [Elwetritsch](https://elwe.rhrk.uni-kl.de/) Users ### Notes for [Elwetritsch] Users
Firstly, take a look at [High Performance Computing at the TU Firstly, take a look at [High Performance Computing at the TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/).
Kaiserslautern](https://elwe.rhrk.uni-kl.de/).
After that, please give yourself a change to learn a bit about [Batch Usage at After that, please give yourself a change to learn a bit about [Batch Usage at
RHRK TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/elwetritsch/batch.shtml). RHRK TU Kaiserslautern](https://elwe.rhrk.uni-kl.de/elwetritsch/batch.shtml).
This will probably save you some time later on. This will probably save you some time later on.
When using DRAMSys + gem5 on the [Elwetritsch](https://elwe.rhrk.uni-kl.de/) When using DRAMSys + gem5 on the [Elwetritsch] gem5 can be installed with
gem5 can be installed with convenience scripts provided by convenience scripts provided by [gem5.TnT].
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT).
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) also provides convenience scripts [gem5.TnT] also provides convenience scripts
to create gem5 disk images with benchmarking programs embedded. The creation to create gem5 disk images with benchmarking programs embedded. The creation
of disk images for gem5 requires superuser privilege. A solution is to copy of disk images for gem5 requires superuser privilege. A solution is to copy
(e.g., using scp or mounting a folder, etc.) the locally created disk images (e.g., using scp or mounting a folder, etc.) the locally created disk images
to Elwetritsch. Since there is no compilation involved, copying disk images to [Elwetritsch]. Since there is no compilation involved, copying disk images
created in one machine to another machine should not incur in incompatibility created in one machine to another machine should not incur in incompatibility
problems. problems.
On gem5.TnT repository open a gem5.TnT config file. On [gem5.TnT] repository open a [gem5.TnT] config file.
```bash ```bash
$ vim common/defaults.in $ vim common/defaults.in
``` ```
Note the variable **ROOTDIR**. Its default value is *ROOTDIR=$HOME/gem5_tnt*. Note the variable **ROOTDIR**. Its default value is *ROOTDIR=$HOME/gem5_tnt*.
That means that gem5.TnT will download to *$HOME/gem5_tnt*. That means that [gem5.TnT] will download to *$HOME/gem5_tnt*.
Currently the space one can use in its Elwetrich *$HOME* folder is limited to Currently the space one can use in its Elwetrich *$HOME* folder is limited to
a few tens of GiB. Nevertheless, a directory **/scratch/$USER** is provided a few tens of GiB. Nevertheless, a directory **/scratch/$USER** is provided
@@ -1817,7 +1811,7 @@ $ cd
$ ln -s /scratch/$USER/gem5_tnt $ ln -s /scratch/$USER/gem5_tnt
``` ```
On gem5.TnT repository use the commands below to get files and build gem5: On [gem5.TnT] repository use the commands below to get files and build gem5:
```bash ```bash
$ ./get_essential_fs.sh $ ./get_essential_fs.sh
@@ -1829,14 +1823,12 @@ $ ./build_gem5.sh
To get DRAMSys installed follow the traditional setup instructions described To get DRAMSys installed follow the traditional setup instructions described
in this document. in this document.
For building DRAMSys one can profit from using For building DRAMSys one can profit from using [DRAMSylva.sh] which loads the
[DRAMSylva.sh](DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh) which modules that are necessary for building DRAMSys on [Elwetritsch].
loads the modules that are necessary for building DRAMSys on Elwetritsch.
Regarding dependencies for building DRAMSys and DRAMSys + gem5, the scripts Regarding dependencies for building DRAMSys and DRAMSys + gem5, the scripts
provided inside the [DRAMSylva provided inside the [DRAMSylva folder], when running on [Elwetritsch], will
folder](DRAMSys/library/resources/scripts/DRAMSylva), when running on load the required modules automatically.
Elwetritsch, will load the required modules automatically.
As usual, one may export environment variables from his/her **~/.bashrc** file As usual, one may export environment variables from his/her **~/.bashrc** file
on Elwetritch. Some segments extracted from a functional ~/.bashrc file are on Elwetritch. Some segments extracted from a functional ~/.bashrc file are
@@ -1877,10 +1869,9 @@ unset TMOUT
``` ```
[SLURM](https://slurm.schedmd.com/overview.html) **job scripts** are available [SLURM](https://slurm.schedmd.com/overview.html) **job scripts** are available
inside the [DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva) folder. inside the [DRAMSylva folder]. They can be used directly without changes or as
They can be used directly without changes or as examples on how to start jobs examples on how to start jobs using nodes of the [Elwetritsch] cluster. Of
using nodes of the Elwetritsch cluster. Of course, one can create his/her own course, one can create his/her own job scripts.
job scripts.
### Coverage Check ### Coverage Check
@@ -1942,3 +1933,11 @@ Conference on Embedded Computer Systems Architectures Modeling and Simulation
Portable Radhika Jagtap, Stephan Diestelhorst, Andreas Hansson, Matthias Jung Portable Radhika Jagtap, Stephan Diestelhorst, Andreas Hansson, Matthias Jung
and Norbert Wehn, IEEE International Conference on Embedded Computer Systems and Norbert Wehn, IEEE International Conference on Embedded Computer Systems
Architectures Modeling and Simulation (SAMOS), 2016, Samos Island, Greece. Architectures Modeling and Simulation (SAMOS), 2016, Samos Island, Greece.
[gem5.TnT]: https://github.com/tukl-msd/gem5.TnT
[gem5ilva.sh]: DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh
[gem5ilva_fs.sh]: DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva_fs.sh
[Elwetritsch]: https://elwe.rhrk.uni-kl.de/
[DRAMSylva.sh]: DRAMSys/library/resources/scripts/DRAMSylva/DRAMSylva.sh
[DRAMSylva folder]: DRAMSys/library/resources/scripts/DRAMSylva
[configs_json]: DRAMSys/library/resources/scripts/DRAMSylva/configs_json