Font Size: a A A

Support for parallel generic programming

Posted on:1999-05-12Degree:Ph.DType:Dissertation
University:Indiana UniversityCandidate:Johnson, Elizabeth LFull Text:PDF
GTID:1468390014969100Subject:Computer Science
Abstract/Summary:
Reusable software components are of primary importance for software developers. Unfortunately, until very recently C++ provided no standard basic data structures (such as linked lists and vectors) or algorithms. Instead, each new software project included a development phase for these basic structures. This problem is particularly acute in the parallel programming realm, where data structures must be built to utilize concurrency whenever possible.; The Standard Template Library (STL), a recent addition to the C++ language standard, is a library of templated algorithms, containers, and iterators which provide support for generic programming. Generic programming is a programming paradigm in which algorithms are written so that they can operate on any type of container which provides accessibility meeting certain minimal criteria. This element access is provided via iterators, C-pointer-like objects which can traverse through a container. Standard operations, such as incrementing and dereferencing, can be performed on the iterators. Algorithms are written in terms of these standard operations so that the same algorithm can be run on various types of containers. The iterator, not the algorithm, encapsulates knowledge of how to access successive container elements.; The STL provides basic building blocks for the development of sequential programs which utilize containers and algorithms. The emergence of this standard is a good opportunity for establishing a parallel standard template library which provides these same building blocks, but in a parallel environment. The HPC++ consortium, composed of representatives from industry, academia, and government laboratories. has included such a parallel library in their new framework for parallel C++ programming, HPC++. In my research, I have implemented and refined the HPC++ Parallel Standard Template Library. This set of efficient, usable, and flexible distributed containers and algorithms is an important contribution of my research. The PSTL provides a basis for developing applications without having to start from scratch. Another important contribution of my research is the definition and implementation of parallel iterators for distributed containers.
Keywords/Search Tags:Parallel, Standard, Programming, Containers, Generic, Iterators
Related items