Metadata-Version: 2.0
Name: kerncraft
Version: 0.2.2
Summary: Loop Kernel Analysis and Performance Modeling Toolkit
Home-page: https://github.com/cod3monk/kerncraft
Author: Julian Hammer
Author-email: julian.hammer@fau.de
License: AGPLv3
Keywords: hpc performance benchmark analysis
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: ruamel.yaml
Requires-Dist: six
Requires-Dist: sympy (==0.7.7.dev0)
Requires-Dist: pycachesim
Requires-Dist: pylru
Requires-Dist: numpy
Provides-Extra: plot
Requires-Dist: matplotlib; extra == 'plot'
Provides-Extra: test
Requires-Dist: requests; extra == 'test'

kerncraft
=========

Loop Kernel Analysis and Performance Modeling Toolkit

This tool allows automatic analysis of loop kernels using the Execution Cache Memory (ECM) model, 
the Roofline model and actual benchmarks. kerncraft provides a framework to investigate the
data reuse and cache requirements by static code analysis. In combination with the Intel IACA tool
kerncraft can give a good overview of both in-core and memory bottlenecks and use that data to 
apply performance models.

For a detailed documentation see publications in `<doc/>`_.

.. image:: https://travis-ci.org/RRZE-HPC/kerncraft.svg?branch=master
    :target: https://travis-ci.org/RRZE-HPC/kerncraft?branch=master

.. image:: https://codecov.io/github/RRZE-HPC/kerncraft/coverage.svg?branch=master
    :target: https://codecov.io/github/RRZE-HPC/kerncraft?branch=master

.. image:: https://landscape.io/github/RRZE-HPC/kerncraft/master/landscape.svg?style=flat
   :target: https://landscape.io/github/RRZE-HPC/kerncraft/master
   :alt: Code Health

Installation
============

Run:
``pip install --process-dependency-links kerncraft``

Additional requirements are:
 * Intel IACA tool, with (working) ``iaca.sh`` in PATH environment variable (used by ECM, ECMCPU and Roofline models)
 * likwid (used in Benchmark model and by ``likwid_bench_auto.py``)

Usage
=====

1. Get an example kernel and machine file from the examples directory

``wget https://raw.githubusercontent.com/cod3monk/kerncraft/master/examples/machine-files/phinally.yaml``

``wget https://raw.githubusercontent.com/cod3monk/kerncraft/master/examples/kernels/2d-5pt.c``

2. Have a look at the machine file and change it to match your targeted machine (above we downloaded a file for a sandy bridge EP machine)

3. Run kerncraft

``kerncraft -p ECM -m phinally.yaml 2d-5pt.c -D N 10000 -D M 10000``
add `-vv` for more information on the kernel and ECM model analysis.

Credits
=======
Implementation: Julian Hammer
ECM Model (theory): Georg Hager, Holger Stengel, Jan Treibig

License
=======
AGPLv3


