A DAta-Parallel Programming Library for Education (DAPPLE)


David Kotz. A DAta-Parallel Programming Library for Education (DAPPLE). Computer Science Education, volume 6, number 2, pages 141–159. Ablex Publishing, 1996. doi:10.1080/0899340950060203. ©Copyright Ablex Publishing. Revision of kotz:dapple.


In the context of our goal to bring parallel computing into the undergraduate curriculum, we needed a parallel-programming language that was accessible to students and independent of any particular hardware platform. Finding nothing appropriate, we chose to design our own language. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines Vector and Matrix classes, with most C++ operators overloaded to provide elementwise arithmetic, and supports data-parallel operations like scans, permutations, and reductions. DAPPLE also provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices. In this article we describe the DAPPLE language, the pedagogical decisions that went into its design, and our experience using DAPPLE in the classroom. DAPPLE is freely available on the Internet.

Citable with [BibTeX]

Projects: [dapple]

Keywords: [education]

Available from the publisher: [DOI]

Available from the author: [bib] [pdf] [ps.gz]
This pdf is the authors' near-final copy; the publisher does not allow us to post the final pdf.

[Kotz research]