TALK "Spiral: Teaching Computers to Write Fast Libraries", M. Pueschel, 18.5.09, 10:15am, RZ F 21

Host: Prof. Thomas Gross

Spiral: Teaching Computers to Write Fast Libraries

Markus Pueschel
Carnegie Mellon

Monday May 18, 10:15 a.m. RZ F 21

Writing fast software has become extraordinarily difficult. For optimal
performance, programs and their underlying algorithms have to be adapted
to take full advantage of the platformb sees parallelism, memory
hierarchy, and available instruction set. To make things worse, the best
implementations are often platform-dependent and platforms are
constantly evolving, which quickly renders libraries obsolete.

In this talk we present Spiral ( ), a domain-specific
program generation system for important functionality used in signal
processing and communication including linear transforms and filters,
Viterbi decoders, and basic linear algebra routines. Spiral completely
replaces the human programmer. For a desired function, Spiral generates
alternative algorithms, optimizes them, compiles them into programs, and
"intelligently" searches for the best match to the computing
platform. The main idea behind Spiral is a mathematical, declarative,
domain-specific framework to represent algorithms and the use of
rewriting systems to generate and optimize algorithms at a high level of
abstraction. Optimization includes parallelization for vector
architectures, shared and distributed memory platforms, and even
FPGAs. Experimental results show that the code generated by Spiral
competes with, and sometimes outperforms, the best available
human-written code. Spiral is used to generate part of Intel's
commercial libraries IPP and MKL, and was selected as NSF discovery in

Spiral is an interdisciplinary project led by Jose Moura and Markus

About the speaker:
Markus Pueschel is an Associate Research Professor of Electrical and
Computer Engineering at Carnegie Mellon University. He received his
Diploma (M.Sc.) in Mathematics and his Doctorate (Ph.D.) in Computer
Science, in 1995 and 1998, respectively, both from the University of
Karlsruhe, Germany. From 1998-1999 he was a Postdoctoral Researcher at
Mathematics and Computer Science, Drexel University. Since 2000 he has
been with Carnegie Mellon University. He was an Associate Editor for the
IEEE Transactions on Signal Processing, the IEEE Signal processing
Letters, was a Guest Editor of the Proceedings of the IEEE and the
Journal of Symbolic Computation, and served on various program
committees of conferences in computing, compilers, and programming
languages. He is a recipient of the Outstanding Research Award of the
College of Engineering at Carnegie Mellon and holds the title of
Privatdozent at the University of Technology, Vienna, Austria. His
research interests include fast computing, algorithms, applied
mathematics, and signal processing theory/software/hardware.