pOSKI is out!

From the Berkeley benchmarking and optimization group comes pOSKI! The following is from their page (link at the end of the text).

What is pOSKI?

The parallel Optimized Sparse Kernel Interface (pOSKI) Library is a collection of kernels that provides automatically tuned (autotuned) high performance computational kernels for sparse matrices, such as Sparse-Matrix-Vector-Multiplication (SpMV). pOSKI targets both uniprocessor and multicore machines. pOSKI builds on prior work on the OSKI library, which provided autotuned kernels for SpMV and other kernels on cache-based superscalar uniprocessors. The purpose of both pOSKI and OSKI is to make it easy for developers of solver libraries, and of scientific and engineering applications, to more easily attain high performance in commonly used sparse matrix operations, via autotuning.

Autotuning is done both at installation time and run-time:
installation time tuning: an off-line autotuning which allows extensive benchmarking of different kernel implementations to identify the fastest ones.
run-time tuning: an on-line autotuning when more is known about the user’s matrix, and the best data structure and kernel implementation must be selected quickly.

pOSKI also lets the user cheaply reuse a prior tuned data structure and implementation, exploiting the fact that the same matrix structure can often be reused.

pOSKI is part of on-going work by the Berkeley Benchmarking and Optimization (BeBOP) group, a research program on automatic performance tuning and analysis at the University of California, Berkeley.

Pretty cool, right? Go check it out here : http://bebop.cs.berkeley.edu/poski/index.php.

Advertisements