Python C C++ Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Sampler
bin
docs
elaps
reports
resources
.gitignore
LICENSE
README.md
TODO.md

README.md

ELAPS

Experimental Linear Algebra Performance Studies

Table of Contents generated with DocToc

What is ELAPS?

ELAPS is a multi-platform open source environment for fast yet powerful experimentation with dense linear algebra kernels, algorithms, and libraries. It allows to construct experiments to investigate how performance and efficiency vary depending on factors such as caching, algorithmic parameters, problem size, and parallelism. Experiments are designed either through Python scripts or a specialized GUI, and run on the whole spectrum of architectures, ranging from laptops to clusters, accelerators, and supercomputers. The resulting experiment reports provide various metrics and statistics that can be analyzed both numerically and visually.

Requirements

  • C/C++ compiler

  • Python version 2.7.x

  • PyQt4

  • Matplotlib

  • Kernels to measure (e.g. BLAS/LAPACK libraries)

Overview

The Framework consists for three layers:

  • The first, "bottom" layer is written in C/C++ and contains the Sampler, a low-level command line tool responsible for executing and timing individual kernels. The Sampler has to be compiled for each specific combination of hardware and libraries (the only stage in which the user needs to configure the system); ELAPS can interface with any number of Samplers. See docs/Sampler.md.

    The Sampler comes with a set of utility routines that cover basic tasks of experiment setups, such as matrix initializations and file-I/O. See docs/Utility.md.

  • The second, "middle" layer is the Python library elaps, which centers around the class Experiment that implements the previously introduced experiments. An Experiment can be executed on different Samplers, both locally or through job submission systems. The outcome is a Report, which provides not only structured access to the individual measurements, but also functionality to analyze different metrics and statistics. See docs/Experiment.md and docs/Report.md.

    This layer also includes the plot module, which is based on the matplotlib library, and is used to easily visualize Reports in graphical form. See docs/plot.md.

  • The third, "top" layer adds a graphical user interface, written in PyQt4, to both design Experiments in the PlayMat and study Reports and plots in the Viewer. See docs/PlayMat.md and docs/Viewer.md.

Installation

To use ELAPS:

  • clone the GitHub repository, and
  • compile one or more Samplers (see docs/Sampler.md).

Now, ELAPS is ready to go. To get started, run bin/PlayMat.