Compiler representations & iteration models
Looplets
A language for structured coiteration that breaks iteration over structured and sparse arrays into cases the compiler can specialize, implemented in the open-source Finch array compiler.
The problem
Real array data has rich structure — sparsity, runs, symmetry, padding — but most compilers only understand fully dense or fully sparse iteration, leaving performance on the table.
The idea
Represent iteration as looplets that describe the structure of an array's index space, and let the compiler split and combine them to generate code specialized to each structure.
How it fits the group's work
Looplets generalize the group’s sparse iteration model to a much wider range of array structure. The abstraction is realized in Finch, an array compiler that treats structure — not just sparsity — as a first-class property to compile against, directly extending the theme of making computation portable across data representations.