Skip to content
chick edited this page Dec 18, 2013 · 36 revisions

This page lists all currently available specializers. Some are still under development.


array_doubler and array_map sample specializers

  • Maintainers: Derrick Coetzee [email protected]
  • Description: These two very simple specializers introduce specializer developers to concepts about creating specializers based on templates and tree transformations, respectively.
  • Download: Included under specializers in Standard Asp repository (use git clone git://github.com/shoaibkamil/asp.git)
  • Targets supported: Generates sequential code for CPU

Stencil/Structured Grid Specializer

KDT Specializer for Graph Algorithms

GMM Training Specializer

Map Over Combinations

  • Maintainers: Shoaib Kamil [email protected]
  • Description: Specializers designed to distribute map, map-like, and map-reduce-like computations over a set of local Python interpreter processes. No native code generation or distribution across clusters currently available.
  • Example use/applications: Map-reduce jobs like index construction, clustering, machine learning, pattern search (see MapReduce uses on Wikipedia).
  • Download: Github repository
  • Targets supported:: Currently only targets interpreted Python.
  • Links to example code: Unit tests
  • References to academic papers: Not currently available.

Bag of Little Bootstraps (BLB) Specializer

  • Maintainers: Peter Birsinger [email protected], Aakash Prasad [email protected], David Howard [email protected]
  • Description: The BLB (Bag of Little Bootstraps) pattern is a method for assessing statistical estimates, and the quality of those estimates, on large data sets. The basic approach is to apply the relevant estimator function to much smaller subsamples of the data set, and aggregate the results.
  • Example use/applications:
  • Download: Github repository
  • Targets supported:: OpenMP on x86/x64, Cilk, Spark Cluster Computing System
  • Links to example code: Using the specializer
  • References to academic papers: A Scalable Bootstrap for Massive Data. Ariel Kleiner, Ameet Talwalkar, Purnamrita Sarkar, Michael I. Jordan. 2011., See also: Parallel High Performance Bootstrapping in Python. Aakash Prasad, David Howard, Shoaib Kamil, Armando Fox. 2012

Matrix Powers Kernel Specializer

  • Maintainers: Jeffrey Morlan [email protected]
  • Description: This specializer implements the matrix powers kernel: given a vector x and sparse matrix A, it computes [Ax, A^2x, ..., A^kx], or some equivalent basis spanning the same subspace.
  • Example use/applications: The matrix powers kernel is used in communication-avoiding Krylov subspace methods. Some common KSMs include CG, BiCGSTAB, and GMRES, which are used to solve linear systems (Ax = b), and Lanczos and Arnoldi, which are used to find eigenvalues/eigenvectors of a matrix.
  • Download: Github repository
  • Targets supported:: x86 multicore, using either OpenMP or pthreads
  • Links to example code: cacg.py implements a communication-avoiding CG solver using the specializer.
  • References to academic papers: Auto-tuning the Matrix Powers Kernel with SEJITS. Jeffrey Morlan.

Graph algorithms specializer (DEAD)

  • Maintainers: Scott Beamer [email protected]
  • Description: Implementation of the Bulk Synchronous Parallel (BSP) model for Graph algorithms
  • Example use/applications:
  • Download: Github repository
  • Targets supported::
  • Links to example code:
  • References to academic papers: