FP /

PapersRelatedToFeldsparObsidianIntermediateRepresentationsAndTheLike

Workshop, Jan 17 2013

See the notes.

Parallel Intermediate Representations, Compilation and the like (reading for workshop on 17 Jan 2013)

VCODE: a data parallel intermediate language, Blelloch and Chatterjee. FMPC90

Manticore : a heterogeneous parallel language, Fluet et al. DAMP07

PENCIL IR (slides)

Delite see also lightweight modular staging

Decoupling algorithms from schedules for easy optimization of image processing pipelines

Feldspar and Syntactic (more recent)

Feldspar : Application and Implementation, Axelsson and Sheeran

A Generic Abstract Syntax Model for Embedded Languages, Axelsson. ICFP 2012 See also slides

Earlier or less relevant Feldspar papers

Generic monadic constructs for embedded languages, Anders Persson, Emil Axelsson and Josef Svenningsson. IFL 2011

The Design and Implementation of Feldspar, an Embedded Language for Digital Signal Processing, Emil Axelsson, Koen Claessen, Mary Sheeran, Josef Svenningsson, Anders Persson and David Engdal. IFL 2010

Feldspar: A Domain Specific Language for Digital Signal Processing algorithms Emil Axelsson, Koen Claessen, Gergely Dévai, Zoltán Horváth, Karin Keijzer, Bo Lyckegĺrd , Anders Persson, Mary Sheeran, and András Vajda. MEMOCODE 2010

Obsidian and other approaches to GPU programming

Expressive Array Constructs in an Embedded GPU Kernel Programming Language, Claessen, Sheeran and Svensson. DAMP 2012 (with POPL)

Obsidian:GPU Kernel Programming in Haskell, Joel Svensson, lic. thesis, Chalmers, 2011

GPGPU kernel implementation and refinement using Obsidian, Joel Svensson, Koen Claessen and Mary Sheeran. ICCS 2010

Nested Data-Parallelism on the GPU, Bergstrom and Reppy. ICFP12 uses VCODE (see below)

Embedded ArBB (an embedding in Haskell of Intel's (now retired) Array Building Blocks

Parallel Programming in Haskell Almost for Free, Svensson and Sheeran. FHPC 2012 (with ICFP)

Embedded languages

Josef Svenningsson's tutorial about combining deep and shallow embeddings

Combining Deep and Shallow Embedding for EDSL, Svenningsson and Axelsson, TFP12

StagedSAC: a case study in performance-oriented DSL development, Ureche et al. PEPM12 a deep embedding of SAC in Scala (see Delite below)

Parallel Programming

cilk

Intel Threading Building Blocks (TBB)

openCL, disputed wiki page need to figure out best references

More papers on Parallel Intermediate Representations, Compilation and the like (needs refining, please add more papers!)

The hierarchical task graph as a universal intermediate representation M Girkar, CD Polychronopoulos. IJPP94

ispc: A SPMD Compiler for High-Performance CPU Programming, Pharr and Mark. INPAR 2012

Single Assignment C compiler implemention, Grelck et al. or perhaps need to look at other SAC papers?

A meta-scheduler for the par-monad: composable scheduling for the heterogeneous cloud, Foltzer et al. ICFP12

Polyhedral loop transformation

Joint Scheduling and Layout Optimization to Enable Multi-Level Vectorization

Polyhedral code generation in the real world