GithubHelp home page GithubHelp logo

hpac / elaps Goto Github PK

View Code? Open in Web Editor NEW
12.0 4.0 3.0 2.01 MB

Experimental Linear Algebra Performance Studies

Home Page: http://hpac.rwth-aachen.de/~peise/elaps/

License: BSD 3-Clause "New" or "Revised" License

Shell 2.44% C++ 8.03% Python 59.76% C 29.78%
performance experimentation blas lapack high-performance-computing

elaps's Introduction

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.

elaps's People

Contributors

elmar-peise avatar sebastianachilles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

elaps's Issues

PlayMat job error when there are whitespaces in current path

*.err file shows something like:

bash: Zeile 5: /home/[...]/[dirname]: Datei oder Verzeichnis nicht gefunden
ERROR 127

where [dirname] is only showing the part of the actual directory name up to the first whitespace
removing all whitespaces from the current path and rebuilding the sampler fixed this issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.