This Docker image aims to provide the installed and equipped IBM Platform-Independent Software Analysis tool ready to be used.
Please, visit the official repository for further details.
IBM Platform-Independent Software Analysis is a framework based on the LLVM compiler infrastructure that analyzes C/C++ and Fortran code at instruction, basic block and function level at application run-time. Its objective is to generate a software model for sequential and parallel (OpenMP and MPI) applications in a hardware-independent manner. Two examples of use cases for this framework are:
- Hardware-agnostic software characterization to support design decision to match hardware designs to applications.
- Hardware design-space exploration studies by combining the software model with hardware performance models.
IBM Platform-Independent Software Analysis characterizes applications per thread and process and measures software properties such as: instruction-level parallelism, flow-control behavior, memory access pattern, and inter-process communication behavior.
A detailed description of the IBM Platform-Independent Software Analysis tool can be found here: IBM-PISA IJPP Paper.
More related publications are listed here: IBM-PISA-related projects.
- latest Docker version
To install Docker please refer to the official Docker installation page.
It is not required nor to clone the current repository nor to build the image before to use it.
cd /folder-of-your-source-code
# being inside your source code folder
# get the run script
wget https://raw.githubusercontent.com/nyxgear/ibm-pisa/master/run-ibm-pisa.sh
# make it executable
chmod u+x ./run-ibm-pisa.sh
# run it
./run-ibm-pisa.sh
The run-ibm-pisa.sh
script will take care automatically on the first execution
to download the image from the Docker Hub repository.
Then, each time you want to enter into the container and use all the IBM-PISA functionalities, just execute:
./run-ibm-pisa.sh
Once inside the the running container, the directory you'll be into will be the
mounted version of the the directory you triggered the ./run-ibm-pisa.sh
script from. This means that all the files that were in the directory from which
you run the script are now available in the current directory (inside the
container).
TIP Move the run-ibm-pisa.sh
script in the directory you more prefer and
execute it to mount that directory inside the container and use IBM-PISA
functionalities.
In addition to the ./run-ibm-pisa.sh
script you can exploit an additional hook
script that is executed at first, each time the container is run.
Requirements for the hook script:
- file name:
docker-startup-hook.sh
- file placed exactly in the same same directory of the
run-ibm-pisa.sh
script
To start from an example:
cd /folder-of-your-source-code
# being inside your source code folder
# get the docker-startup-hook.sh example
wget https://raw.githubusercontent.com/nyxgear/ibm-pisa/master/docker-startup-hook.sh
If you want to build the image by yourself without exploiting the pre-built one available on Docker Hub
# clone the repository
git clone git@github.com:nyxgear/ibm-pisa.git
cd ibm-pisa
# build and squash
docker build --squash --tag nyxgear/ibm-pisa:latest -f Dockerfile .
WARNING: Usually, it takes long time to build the entire image.
A build of this image can be found at nyxgear/ibm-pisa on Docker Hub.
IBM-PISA Docker Image - Project presentation slides
This project has been developed for the Advanced Computer Architecture course (A.Y. 2017/2018) at Politecnico di Milano.