CPL - Chalmers Publication Library
| Utbildning | Forskning | Styrkeområden | Om Chalmers | In English In English Ej inloggad.

Defunctionalizing Push arrays

B.J. Svensson ; Josef Svenningsson (Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers))
Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP. 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2014; Gothenburg; Sweden; 4 September 2014 through 4 September 2014 p. 43-52. (2014)
[Konferensbidrag, refereegranskat]

Recent work on embedded domain specific languages (EDSLs) for high performance array programming has given rise to a number of array representations. In Feldspar and Obsidian there are two different kinds of arrays, called Pull and Push arrays. Both Pull and Push arrays are deferred; they are methods of computing arrays, rather than elements stored in memory. The reason for having multiple array types is to obtain code that performs better. Pull and Push arrays provide this by guaranteeing that operations fuse automatically. It is also the case that some operations are easily implemented and perform well on Pull arrays, while for some operations, Push arrays provide better implementations. But do we really need to have more than one array representation? In this paper we derive a new array representation from Push arrays that have all the good qualities of Pull and Push arrays combined. This new array representation is obtained via defunctionalization of a Push array API. Copyright is held by the owner/author(s).

Nyckelord: Arrays , Defunctionalization , Embedded Languages

Denna post skapades 2014-10-28.
CPL Pubid: 204969


Läs direkt!

Länk till annan sajt (kan kräva inloggning)

Institutioner (Chalmers)

Institutionen för data- och informationsteknik, Programvaruteknik (Chalmers)



Chalmers infrastruktur