Abstract
Regular array languages for high performance computing based on aggregate operations provide a convenient parallel programming model, which enables the generation of efficient code for SIMD architectures, such as GPUS. However, the data sets that can be processed with current implementations are severely constrained by the limited amount of main memory available in these architectures. In this paper, we propose an extension of the embedded array language Accelerate with a notion of sequences, resulting in a two level hierarchy which allows the programmer to specify a partitioning strategy which facilitates automatic resource allocation. Depending on the available memory, the runtime system processes the overall data set in streams of chunks appropriate to the hardware parameters. In this paper, we present the language design for the sequence operations, as well as the compilation and runtime support, and demonstrate with a set of benchmarks the feasibility of this approach.
| Original language | English |
|---|---|
| Title of host publication | FHPC 2015 - Proceedings of the 4th ACM SIGPLAN Workshop on Functional High-Performance Computing, co-located with ICFP 2015 |
| Publisher | Association for Computing Machinery |
| Pages | 23-34 |
| Number of pages | 12 |
| ISBN (Electronic) | 9781450338073 |
| DOIs | |
| Publication status | Published - 30 Aug 2015 |
| Externally published | Yes |
| Event | 4th ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2015 - Vancouver, Canada Duration: 3 Sept 2015 → … |
Conference
| Conference | 4th ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2015 |
|---|---|
| Country/Territory | Canada |
| City | Vancouver |
| Period | 3/09/15 → … |
Keywords
- Arrays
- Data parallelism
- Embedded language
- GPGPU
- Haskell
- Streams