• DocumentCode
    1705013
  • Title

    Aggregates: using design patterns to create implicitly parallel data structures in C++

  • Author

    Hudak, David E. ; Baughman, Nathan ; Hodges, Greg

  • Author_Institution
    Dept. of Comput. Sci., Ohio Northern Univ., Ada, OH, USA
  • Volume
    1
  • fYear
    1997
  • Firstpage
    239
  • Abstract
    Small-scale parallel platforms have become prevalent in the marketplace. These machines feature globally shared address spaces, complex kernels and an emphasis on throughput-based parallelism. These new platforms require new tools for concurrent programming. Programs written for these new platforms must be efficient, portable and adaptable to differing machine conditions. In addition, programming environments for these new platforms should integrate concurrency into the design process in order to exploit the multiple processors for speedup when sufficient workloads arise. This functionality can be effectively embedded at the framework/API level. Efficient design of these features can be facilitated using object-oriented design techniques known as design patterns. To illustrate these concepts, we developed a framework called aggregates. Aggregates are a suggested replacement for arrays, linked lists, or other structures for holding large collections of C++ objects. Aggregates use run-time partitioning to support concurrent application of a member function to all objects in the aggregate. Experimental results on a single-processor Windows NT system and a multiprocessor Silicon Graphics Power Challenge have demonstrated a single program using aggregates performed comparably to traditional arrays and linked lists in a single processor environment while providing speedup in a multiple processor environment
  • Keywords
    C language; data structures; object-oriented methods; parallel algorithms; C++; adaptable; concurrent application; cost effective parallel computing; design patterns; design process; multiple processor environment; multiple processors; object-oriented design; parallel data structures; partitioning algorithm; portable; programming environments; run-time partitioning; shared address spaces; single processor environment; small-scale parallel platforms; symmetric multiprocessing; Aggregates; Computer languages; Computer science; Concurrent computing; Data structures; Graphics; Kernel; Parallel processing; Programming environments; Silicon;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Aerospace and Electronics Conference, 1997. NAECON 1997., Proceedings of the IEEE 1997 National
  • Conference_Location
    Dayton, OH
  • Print_ISBN
    0-7803-3725-5
  • Type

    conf

  • DOI
    10.1109/NAECON.1997.618085
  • Filename
    618085