@inproceedings{eb1f5421c622486cb0eb4293e86f52d5,
title = "Data-parallel flattening by expansion",
abstract = "We present a higher-order programmer-level technique for compiling particular kinds of irregular data-parallel problems to parallel hardware. The technique, which we have named “flattening-by-expansion” builds on a number of segmented data-parallel operations but is itself implemented as a higher-order generic function, which makes it useful for many irregular problems. Concretely, the implementation is given in Futhark and we demonstrate the usefulness of the functionality for a number of irregular problems and show that, in practice, the irregular problems are compiled to efficient parallel code that can be executed on GPUs. The technique is useful in any data-parallel language that provides a key set of primitives.",
keywords = "Flattening, Functional programming, GPGPU programming, Irregular nested parallelism",
author = "Martin Elsman and Troels Henriksen and Serup, {Niels Gustav Westphal}",
year = "2019",
month = jun,
day = "8",
doi = "10.1145/3315454.3329955",
language = "English",
series = "Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)",
publisher = "Association for Computing Machinery, Inc.",
pages = "14--24",
editor = "Jeremy Gibbons",
booktitle = "ARRAY 2019 - Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, co-located with PLDI 2019",
note = "6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming, ARRAY 2019, co-located with PLDI 2019 ; Conference date: 22-06-2019",
}