Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

Stencil TEMPlate Engineering Library

Project description


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/.


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 ./ install

If you are unfamiliar with python, here is a tutorial on how to install python packages: . The use of virtual enviornments is usually a good choice.

Additional requirements are:


  1. Run stempel C code generator

stempel gen -D 2 -r 1 -i


stempel gen -D 2 -r 2 -k box -C variable -p

  1. Run stempel benchmark generator

stempel bench code.c -m machine_file.yaml -b

  1. 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


Implementation: Danilo Guerrera

kerncraft : Julian Hammer

ECM Model (theory): Georg Hager, Holger Stengel, Jan Treibig



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for stempel, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size stempel-0.1.0.tar.gz (3.4 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page