DocumentCode
2047513
Title
Iterators in Chapel
Author
Joyner, Mackale ; Chamberlain, Bradford L. ; Deitz, Steven J.
Author_Institution
Dept. of Comput. Sci., Rice Univ., Houston, TX
fYear
2006
fDate
25-29 April 2006
Abstract
A long-held tenet of software engineering is that algorithms and data structures should be specified orthogonally in order to minimize the impact that changes to one will have on the other. Unfortunately, this principle is often not well-supported in scientific and parallel codes due to the lack of abstractions for factoring iteration away from computation in traditional scientific languages. The result is a fragile situation in which complex loop nests are used to express parallelism and maximize performance, yet must be maintained individually as the algorithm and data structures evolve. In this paper, we introduce the iterator concept in the Chapel parallel programming language, designed to address this problem and provide a means for factoring iteration away from computation. The paper illustrates iterators using several examples, compares our approach with those taken in other languages, and describes our implementation in the Chapel compiler
Keywords
data structures; parallel algorithms; parallel languages; parallel programming; program compilers; software engineering; Chapel compiler; Chapel iterator; Chapel parallel programming language; complex loop nests; data structures; parallel codes; scientific languages; software engineering; Computer science; Concurrent computing; Data structures; Multidimensional systems; Parallel processing; Parallel programming; Programming profession; Robustness; Software algorithms; Software engineering;
fLanguage
English
Publisher
ieee
Conference_Titel
Parallel and Distributed Processing Symposium, 2006. IPDPS 2006. 20th International
Conference_Location
Rhodes Island
Print_ISBN
1-4244-0054-6
Type
conf
DOI
10.1109/IPDPS.2006.1639499
Filename
1639499
Link To Document