Download Read the User`s Guide - BeBOP (Berkeley Benchmarking and
Transcript
1 What is OSKI and Who Should Use It? 1 4 What is OSKI and Who Should Use It? The Optimized Sparse Kernel Interface (OSKI) 1 is a collection of low-level primitives that provide automatically tuned computational kernels on sparse matrices, for use by the developers of solver libraries and scientific and engineering applications. These kernels include sparse matrix-vector multiply and sparse triangular solve, among others. “Tuning” means choosing a data structure and corresponding kernel implementation that both (a) compactly represents the particular sparse matrix, and (b) has an efficient implementation on the target machine. The primary aim of OSKI is to hide the complex decision-making process needed to tune, while also exposing the steps and potentially non-trivial costs of tuning at run-time. The interface also allows for optional continuous profiling and periodic re-tuning, as well as user inspection and control of the tuning process. OSKI provides functionality essentially at the level of the Basic Linear Algebra Subroutines (BLAS) [3, 6], and we assume a user who has a basic familiarity with the BLAS. The current version of OSKI targets uniprocessors machines based on cache-based superscalar microprocessors, although we are actively extending OSKI for vector architectures, SMPs, and distributed memory machines. OSKI is part of on-going work by the Berkeley Benchmarking and OPtimization (BeBOP) group, an active research program on automatic performance tuning and analysis at the University of California, Berkeley. OSKI is based in large part on the S PARSITY framework for automatically tuning sparse matrix kernels [14]. For information on the philosophy of the OSKI design and pointers to the related research, see the OSKI Design Document [20], a draft of which is available at: http://bebop.cs.berkeley.edu/oski How to read this document The fastest way to get started is to look at the material in Sections 2–4, which contains enough information to build and install OSKI and to write your first test program. If you run into problems, see Section 6 on page 30 for debugging hints, or post a question in the online forum through the OSKI home page. 2 Installation This section describes how to compile and install OSKI 1.0.1h from the source. There may also be pre-compiled binaries for your platform; check the OSKI home page. Automatic tuning in OSKI happens in two phases: an installation time phase which benchmarks your machine, and a run-time phase when you call OSKI with a particular matrix. You will need to run a benchmark during installation, but this step is automated and should not require any manual intevention on your part. 2.1 What you will need to get started To compile and install OSKI 1.0.1h, you will need the following: • An ANSI C compiler. • An environment providing standard UNIX tools, such as make, grep, awk, and sed. OSKI has been tested in the following environments: Linux, FreeBSD, NetBSD, AIX, 1 OSKI is also the name of the U.C. Berkeley mascot. Go Bears!