Parallel containers: a tool for applying parallel computing applications on clusters

Thumbnail Image
Open Access Location
Journal Title
Journal ISSN
Volume Title
Massey University
Parallel and cluster computing remain somewhat difficult to apply quickly for many applications domains. Recent developments in computer libraries such as the Standard Template Library of the C++ language and the Message Passing Package associated with the Python Language provide a way to implement very high level parallel containers in support of application programming. A parallel container is an implementation of a data structure such as a list, or vector, or set, that has associated with it the necessary methods and state knowledge to distribute the contents of the structure across the memory of a parallel computer or a computer cluster. A key idea is that of the parallel iterator which allows a single high level statement written by the applications programmer to invoke a parallel operation across the entire data structure’s contents while avoiding the need for knowledge of how the distribution is actually carried out. This transparency approach means that optimised parallel algorithms can be separated from the applications domain code, maximising reuse of the parallel computing infrastructure and libraries. This paper describes our initial experiments with C++ parallel containers.
Parallel computing, Cluster computing, Application programming
Gan-El, M. & Hawick, K.A. (2004), Parallel containers: a tool for applying parallel computing applications on clusters, Research Letters in the Information and Mathematical Sciences, 6, 135-142