Skip to content
Snippets Groups Projects
Commit c4473133 authored by Reiner Jung's avatar Reiner Jung
Browse files

Update README.md

parent a79ea4d9
No related branches found
No related tags found
No related merge requests found
# ECSA Uvic
# ECSA Uvic - Setup
This archive contains the instructions to setup and execute all
experiments we performed with UVic. Please note that we performed
all our experiments on Linux machines running Debian Buster on
AMD64/Intel 64 bit CPUs.
## Prerequisites
- UVic
- Linux build tools, including gcc, gfortran, make, autoconf, automake
and libtool
- Netcdf library including development files
- UVic can be obtained from the University of Victoria, Canada
- OceanDSL tooling
- Java 11 OpenJDK or compatible including the JDK
- Download the Kieker binary distribution
`https://kieker-monitoring.net/download/`
- Other
- Git
- Bash
## Preparations
Create a workspace for the analyis, e.g., `experiments`, and switch to
this directory.
```
mkdir experients
cd experiments
```
Clone the *ecsa-uvic* git repository containing the setup scripts.
```
git clone https://git.se.informatik.uni-kiel.de/oceandsl/ecsa-uvic.git
```
Clone the *oceandsl-java-tools* or retrieve them from the replication
package.
```
git clone https://git.se.informatik.uni-kiel.de/oceandsl/oceandsl-java-tools
```
Obtain the UVic code: http://terra.seos.uvic.ca/model/
Clone the *kieker-lang-pack-c* repository.
```
git clone https://github.com/kieker-monitoring/kieker-lang-pack-c
```
## Java Tools
Building the Java tools should be straight forward. Enter:
```
cd oceandsl-java-tools
./gradlew clean build
cd ..
```
Install both tools as follows:
```
tar -xpf oceandsl-java-tools/tools/create-architecture-model/build/distributions/create-architecture-model.tar
tar -xpf oceandsl-java-tools/tools/pp-static-log/build/distributions/pp-static-log.tar
```
This creates two directories in your experiments folder containing
the respective tools in a bin folder.
## Install Kieker
Kieker is only needed in case you want to reproduce the dynamic analysis
i.e., the observation of the model behavior at runtime.
```
cd kieker-lang-pack-c
```
Follow the installation instructions there. In short perform the following
```
libtoolize
aclocal
automake --add-missing
autoconf
```
Then compile and install the monitoring probes.
```
./configure ; make
```
You may also call `make install`. However, this may require admin
privileges.
Switch back to the experiments directory
```
cd ..
```
From the Kieker binary distribution archive, extract the file
`kieker-1.14/tools/collector-1.14.zip` from the archive.
Then unpack the tool as follows:
```
unzip collector.zip
```
This installs the collector tool alongside the two tools from OceanDSL.
Please note: You can also use the more recent binary distribution
kieker-1.15-SNAPSHOT.
## Setting up the Experiments
Lets assume you are in the main `experiments` folder.
Switch to `ecsa-uvic`.
```
cd ecsa-uvic
```
Here you need to create a `config` file. There are examples of the
file available. Lets assume your user account is called `trillian` and
the home directory is `/home/trillian` containing the `experiments`
folder. Then the configuration file may look like this:
```
# Library path including Kieker libraries
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/rju/experiments/kieker-lang-pack-c/libkieker/.libs"
# Compile configuration for kieker
export CONFIGURATION="${BASE_DIR}/linux_amd64_gfortran_kieker"
# Location for the observed monitoring data for each model variant
export DATA_PATH="/home/rju/share/log-data/uvic"
# Location for dynamic and static data
export DYNAMIC_DATA_PATH="${DATA_PATH}/kieker-20210318-075550-28503821603624986-UTC--uvic-part"
export STATIC_DATA_PATH="/home/trillian/uvic/static-data"
# prepocessor
PREPROCESS="$BASE_DIR/../pp-static-log/bin/pp-static-log"
# arcitecture analysis tool
ANALYSIS="$BASE_DIR/../create-architecture-model/bin/create-architecture-model"
# addr2line
ADDR2LINE=`which addr2line`
# Path to the executable
EXECUTABLE="/home/trillian/experiments/uvic/uvic-model/uvic-run-1/UVic_ESCM"
# Dynamic and static prefix
DYNAMIC_PREFIX="/home/trillian/experiments/uvic/uvic-model/uvic-run-1/code/"
STATIC_PREFIX="/home/trillian/PlayPython/resources/preprocessed/"
# Hostname where the dynamic analysis was executed
HOST=node1
```
Of course the HOST variable must be changed to the name of the machine
the experiments are run.
The next file you have to create is a list of all experiments you want
to run. The file must be named `experiments`. A list of all experiments
which are used in the tutorial of MITgcm are listed in `tutorials` and
all other experiments are listed in `normal`.
## Compilation
To compile the model follow the instructions in the UVic README.
As configuration files, we used the `mk.in` and `control.in` files.
## Run the Experiment
To run the expriment, enter the `experiments/ecsa-uvic` directory and
run `./run-dynamic-analysis.sh`. This will start the collector and
subsequently the model.
## Static Analysis
-- added here --
## Architecture Reconstruction
Lets assume you have collected the dynamic and static data for the
UVic experiment and you are in the `experiments/ecsa-uvic` directory.
Now you can run the analysis for the experiment with
`./run-architecture-analysis.sh`
If everything is setup properly, you will get results files for the
various analyses:
- `dynamic-result` contains CSV files for various graphs of the
architecture model and dot files for the operation and component
view of the analysis. A graphml file is also generated. The files
follow a naming scheme EXPERIMENT-TYPE-CONTENT.EXTENSION where:
- EXPERIMENT is the name of the experiment
- TYPE is either *file* for each file is seen as a module or component
or *map* using a map file to group operations/files to modules.
- CONTENT describes what the file contains, e.g.,
`dynamic-distinct-function-degree`.
- EXTENSION refers to the proper file-type extension, e.g., csv.
- `dynamic-model` contains for each experiment two subfolders for
*file* and *map* based architecture. Each folder contains an dump
of the internal architectural model as a set of XMI files.
- `combined-result` contains the same files as the `dynamic-result but
now also the data from the static analysis has been used.
- `combined-model` similar to `dynamic-model`, but these models reflect
the architecture after the dynamic and static analysis.
## Additional Information
You can use the `dotPic-fileConverter.sh` from the Kieker archive to
convert all dot files. This tool requires `dot` installed on your
machine.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment