An active linear algebra library using delayed evaluation and runtime code generation. Russell, F. P, Mellor, M. R, Kelly, P. H., & Beckmann, O. Proceedings of the Second International Workshop on Library-Centric Software Design (LCSD’06), 2006. abstract bibtex Active libraries can be defined as libraries which play an active part in the compilation (in particular, the optimisation) of their client code. This paper explores the idea of delay- ing evaluation of expressions built using library calls, then generating code at runtime for the particular compositions that occur. We explore this idea with a dense linear algebra library for C++. The key optimisations in this context are loop fusion and array contraction. Our library automatically fuses loops, identifies unnecessary intermediate temporaries, and contracts temporary arrays to scalars. Performance is evaluated using a benchmark suite of linear solvers from ITL (the Iterative Template Li- brary), and is compared with MTL (the Matrix Template Li- brary). Excluding runtime compilation overheads (caching means they occur only on the first iteration), for larger matrix sizes, performance matches or exceeds MTL – and in some cases is more than 60% faster.
@article{ russell2006active,
title = {An active linear algebra library using delayed
evaluation and runtime code generation},
author = {Francis P Russell and Michael R Mellor and Paul HJ
Kelly and Olav Beckmann},
journal = {Proceedings of the Second International Workshop on
Library-Centric Software Design (LCSD’06)},
pages = {5--13},
year = {2006},
abstract = {Active libraries can be defined as libraries which
play an active part in the compilation (in particular,
the optimisation) of their client code. This paper
explores the idea of delay- ing evaluation of
expressions built using library calls, then generating
code at runtime for the particular compositions that
occur. We explore this idea with a dense linear algebra
library for C++. The key optimisations in this context
are loop fusion and array contraction. Our library
automatically fuses loops, identifies unnecessary
intermediate temporaries, and contracts temporary
arrays to scalars. Performance is evaluated using a
benchmark suite of linear solvers from ITL (the
Iterative Template Li- brary), and is compared with MTL
(the Matrix Template Li- brary). Excluding runtime
compilation overheads (caching means they occur only on
the first iteration), for larger matrix sizes,
performance matches or exceeds MTL – and in some
cases is more than 60% faster.}
}
Downloads: 0
{"_id":"SBNxQDrpszbyFBNka","bibbaseid":"russell-mellor-kelly-beckmann-anactivelinearalgebralibraryusingdelayedevaluationandruntimecodegeneration-2006","downloads":0,"creationDate":"2015-09-02T23:30:00.575Z","title":"An active linear algebra library using delayed evaluation and runtime code generation","author_short":["Russell, F.<nbsp>P","Mellor, M.<nbsp>R","Kelly, P.<nbsp>H.","Beckmann, O."],"year":2006,"bibtype":"article","biburl":"http://www.doc.ic.ac.uk/~fpr02/bibliography.bib","bibdata":{"abstract":"Active libraries can be defined as libraries which play an active part in the compilation (in particular, the optimisation) of their client code. This paper explores the idea of delay- ing evaluation of expressions built using library calls, then generating code at runtime for the particular compositions that occur. We explore this idea with a dense linear algebra library for C++. The key optimisations in this context are loop fusion and array contraction. Our library automatically fuses loops, identifies unnecessary intermediate temporaries, and contracts temporary arrays to scalars. Performance is evaluated using a benchmark suite of linear solvers from ITL (the Iterative Template Li- brary), and is compared with MTL (the Matrix Template Li- brary). Excluding runtime compilation overheads (caching means they occur only on the first iteration), for larger matrix sizes, performance matches or exceeds MTL – and in some cases is more than 60% faster.","author":["Russell, Francis P","Mellor, Michael R","Kelly, Paul HJ","Beckmann, Olav"],"author_short":["Russell, F.<nbsp>P","Mellor, M.<nbsp>R","Kelly, P.<nbsp>H.","Beckmann, O."],"bibtex":"@article{ russell2006active,\n title = {An active linear algebra library using delayed\n evaluation and runtime code generation},\n author = {Francis P Russell and Michael R Mellor and Paul HJ\n Kelly and Olav Beckmann},\n journal = {Proceedings of the Second International Workshop on\n Library-Centric Software Design (LCSD’06)},\n pages = {5--13},\n year = {2006},\n abstract = {Active libraries can be defined as libraries which\n play an active part in the compilation (in particular,\n the optimisation) of their client code. This paper\n explores the idea of delay- ing evaluation of\n expressions built using library calls, then generating\n code at runtime for the particular compositions that\n occur. We explore this idea with a dense linear algebra\n library for C++. The key optimisations in this context\n are loop fusion and array contraction. Our library\n automatically fuses loops, identifies unnecessary\n intermediate temporaries, and contracts temporary\n arrays to scalars. Performance is evaluated using a\n benchmark suite of linear solvers from ITL (the\n Iterative Template Li- brary), and is compared with MTL\n (the Matrix Template Li- brary). Excluding runtime\n compilation overheads (caching means they occur only on\n the first iteration), for larger matrix sizes,\n performance matches or exceeds MTL – and in some\n cases is more than 60% faster.}\n}","bibtype":"article","id":"russell2006active","journal":"Proceedings of the Second International Workshop on Library-Centric Software Design (LCSD’06)","key":"russell2006active","pages":"5--13","title":"An active linear algebra library using delayed evaluation and runtime code generation","type":"article","year":"2006","bibbaseid":"russell-mellor-kelly-beckmann-anactivelinearalgebralibraryusingdelayedevaluationandruntimecodegeneration-2006","role":"author","urls":{},"downloads":0},"search_terms":["active","linear","algebra","library","using","delayed","evaluation","runtime","code","generation","russell","mellor","kelly","beckmann"],"keywords":[],"authorIDs":["55e78678c06892f06c00046b"],"dataSources":["q8J2HB5A7MkE6gggM"]}