• DocumentCode
    2328931
  • Title

    TOP-C: a task-oriented parallel C interface

  • Author

    Cooperman, Gene

  • Author_Institution
    Coll. of Comput. Sci., Northeastern Univ., Boston, MA, USA
  • fYear
    1996
  • fDate
    6-9 Aug. 1996
  • Firstpage
    141
  • Lastpage
    150
  • Abstract
    The goal of this work is to simplify parallel application development, and thus ease the learning barriers faced by non-experts. It is especially useful where there is little data-parallelism to be recognized by a compiler. The applications programmer need learn the intricacies of only one primary subroutine in order to get the full benefits of the parallel interface. The applications programmer defines a high level concept, the task, that depends only on his application, and not on any particular parallel library. The task is defined by its three phases: (a) the task input, (b) sequential code to execute the task, and (c) any modifications of global variables that occur as a result of the task. In particular, side effects (which change global variable values) must not occur in phase (b). Forcing the user to re-organize his computation in these terms allows us to present the applications programmer with a single global environment visible to all processors (whether on a SMP or a NOW architecture), in the context of a masterslave architecture. Both a shared memory implementation (running on an SGI or SUN Solaris architecture) and a NOW memory implementation (running on top of MPI) are described. The implementations were tested by a naive program for integer factorization, and by a more sophisticated Todd-Coxeter coset enumeration. Integer factorization was chosen so as to exercise the major features of TOP-C in an unambiguous context.
  • Keywords
    C language; application program interfaces; mathematics computing; parallel programming; parallelising compilers; shared memory systems; software libraries; software tools; subroutines; MPI; NOW architecture; SGI architecture; SMP; SUN Solaris; TOP-C; Todd-Coxeter coset enumeration; data-parallelism; global variables; integer factorization; learning barriers; masterslave architecture; parallel application development; parallel library; parallelising compiler; sequential code; shared memory implementation; subroutine; task input; task-oriented parallel C interface; Algorithms; Computer architecture; Libraries; Programming profession; Sun; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Distributed Computing, 1996., Proceedings of 5th IEEE International Symposium on
  • Conference_Location
    Syracuse, NY, USA
  • ISSN
    1082-8907
  • Print_ISBN
    0-8186-7582-9
  • Type

    conf

  • DOI
    10.1109/HPDC.1996.546183
  • Filename
    546183