stempel
Stencil TEMPlate Engineering Library
This tool allows automatic generation of loop kernels for several kind of stencil patterns. Stempel provides a framework to generate, perform static analysis of the code (exploiting kerncraft), generate a full C code and parallelize it via openMP and blocking.
For a detailed documentation see in docs/.
Installation
Remember to setup properly your envirnment in advance. For example, using conda Python:
conda create -n stempel python=3.4
source activate stempel
Clone this repository and run: python ./setup.py install
If you are unfamiliar with python, here is a tutorial on how to install python packages: https://packaging.python.org/installing/ . The use of virtual enviornments is usually a good choice.
- Additional requirements are:
kerncraft (used to generate performance models)
Intel Achitecture Code Analyzer (IACA), with (working) iaca.sh in PATH environment variable (used by ECM, ECMCPU and RooflineIACA models)
likwid (used in Benchmark model)
PROVA!, in case you want to run a full analysis
Usage
Run stempel C code generator
stempel gen -D 2 -r 1 -i
or
stempel gen -D 2 -r 2 -k box -C variable -p
Run stempel benchmark generator
stempel bench code.c -m machine_file.yaml -b
Run a full analysis (a stencil is generated, analysed through kerncraft applying ECM/Data, Roofline and Layer Condition models; a project is set up in PROVA! and an experiment is executed. The outputs are stored to the STEMPEL workspace):
analysis -w ~/Desktop/stempelwork -p ~/PROVA ~/Desktop/provastempel -k star -m BroadwellEP_E5-2697_CoD.yml -r 2 -d 2 -e 5 -t 2 4 8 10 --method_type OpenMP-4.0-GCC-4.9.3-2.25 -C constant -c isotropic -l /apps/likwid/system/include/ /apps/likwid/system/lib/ --iaca
Credits
Implementation: Danilo Guerrera
kerncraft : Julian Hammer
ECM Model (theory): Georg Hager, Holger Stengel, Jan Treibig
License
AGPLv3
Metadata
Release files for stempel 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stempel-0.1.0.tar.gz | 3.4 MB | Details |
Release files / stempel-0.1.0.tar.gz
| Download URL | stempel-0.1.0.tar.gz |
|---|---|
| Size | 3.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5fe06a8a873b94c58f26a2e7fc8b6d8c6c087adf324b1fb5a1033974cea2e44
|
|
BLAKE2b-256 checksum How to use checksums |
2408ad5c103ad833042d810489412a016ff000377d798eecf38b6c6bc9dbf3bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.7
|