Notes for Elwetritsch users

This commit is contained in:
Éder F. Zulian
2019-01-25 11:56:40 +01:00
parent c747010f0f
commit 0f0963c27e

View File

@@ -1707,6 +1707,91 @@ If you need help please contact Matthias Jung.
Users can profit of running multiple simulations automatically with
[gem5ilva](DRAMSys/library/resources/scripts/DRAMSylva/gem5ilva.sh).
### Notes for Elwetritsch users
For using DRAMSys + gem5 on the Elwetritsch gem5 can be installed with
convenience scripts provided by
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT).
[gem5.TnT](https://github.com/tukl-msd/gem5.TnT) provides convenience scripts
to create disk images too. The creation of disk images for gem5 requires
superuser privilege. A solution is to copy locally created the disk images
locally to Elwetritsch (e.g., scp or mounting a folder, etc.). Since there is
no compilation copying disk images should not incur in incompatibility
problems.
Regarding dependencies for building DRAMSys and gem5, the scripts provided in
[DRAMSylva](DRAMSys/library/resources/scripts/DRAMSylva), when running on
Elwetritsch, will load the required modules automatically.
On gem5.TnT repository open a gem5.TnT config file.
```bash
$ vim common/defaults.in
```
Note the variable ROOTDIR. Its default value is readonly
ROOTDIR=$HOME/gem5_tnt. That means that gem5.TnT will download to
$HOME/gem5_tnt.
Currently on Elwetritsch the space one can use in $HOME is limited to some
tens of GiB.
One can create a symlink pointing to /scratch/$USER/gem5_tnt (/scratch/$USER
is a place where lots of space are available).
```bash
$ cd $SCRATCH
$ mkdir gem5_tnt
$ cd
$ ln -s /scratch/$USER/gem5_tnt
```
On gem5.TnT repository use the commands below to get files and build gem5:
```bash
$ ./get_essential_fs.sh
$ ./get_benchmarks.sh
$ ./get_extra_fs.sh
$ ./build_gem5.sh
```
Example of a functional ~/.bashrc on Elwetritsch:
```bash
# User specific aliases and functions
# SystemC home
export SYSTEMC_HOME=$HOME/repos/systemc-2.3.1a
# SystemC target architecture
export SYSTEMC_TARGET_ARCH=linux64
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SYSTEMC_HOME}/lib-linux64
# Qwt lib
export LIBQWT_HOME=$HOME/repos/qwt-6.1/lib
export LIBQWT_HEADERS=$HOME/repos/qwt-6.1/src
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$LIBQWT_HOME
# Python lib
export LIBPYTHON_VERSION="3.4m"
export PYTHON_HOME=/usr/lib64
export PYTHON_HEADERS=/usr/include/python3.4m
# Gem5 + DRAMsys
export GEM5=$HOME/gem5_tnt/gem5
# Gem5 SystemC/TLM2.0 coupling (see also: $HOME/gem5_tnt/gem5/util/tlm/README)
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/gem5_tnt/gem5/build/ARM
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SYSTEMC_HOME}/lib-$SYSTEMC_TARGET_ARCH
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${SYSTEMC_HOME}/lib-$SYSTEMC_TARGET_ARCH/pkgconfig
# M5_PATH for gem5
export M5_PATH=$HOME/gem5_tnt/full_system/arm/aarch-system-20180409
# Do not close my terminal when inactive after a timeout
unset TMOUT
```
## References
[1] TLM Modelling of 3D Stacked Wide I/O DRAM Subsystems, A Virtual Platform for Memory Controller Design Space Exploration