• DocumentCode
    3299290
  • Title

    Pthreads for Dynamic and Irregular Parallelism

  • Author

    Narlikar, Girija J. ; Blelloch, Guy E.

  • Author_Institution
    CMU School of Computer Science
  • fYear
    1998
  • fDate
    07-13 Nov. 1998
  • Firstpage
    31
  • Lastpage
    31
  • Abstract
    High performance applications on shared memory machines have typically been written in a coarse grained style, with one heavyweight thread per processor. In comparison, programming with a large number of lightweight, parallel threads has several advantages, including simpler coding for programs with irregular and dynamic parallelism, and better adaptability to a changing number of processors. The programmer can express a new thread to execute each individual parallel task; the implementation dynamically creates and schedules these threads onto the processors, and effectively balances the load. However, unless the threads scheduler is designed carefully, the parallel program may suffer poor space and time performance. In this paper, we study the performance of a native, lightweight POSIX threads (Pthreads) library on a shared memory machine running Solaris; to our knowledge, the Solaris library is one of the most efficient user-level implementations of the Pthreads standard available today. To evaluate this Pthreads implementation, we use a set of parallel programs that dynamically create a large number of threads. The programs include dense and sparse matrix multiplies, two N-body codes, a data classifier, a volume rendering benchmark, and a high performance FFT package. We find the existing threads scheduler to be unsuitable for executing such programs. We show how simple modifications to the Pthreads scheduler can result in significantly improved space and time performance for the programs; the modified scheduler results in as much as 44% less running time and 63% less memory requirement compared to the original Pthreads implementation. Our results indicate that, provided we use a good scheduler, the rich functionality and standard API of Pthreads can be combined with the advantages of dynamic, lightweight threads to result in high performance.
  • Keywords
    Multithreading; Pthreads; dynamic scheduling; irregular parallelism; lightweight threads; space efficiency; Computer science; Dynamic programming; Dynamic scheduling; Kernel; Libraries; Packaging; Parallel processing; Processor scheduling; Programming profession; Yarn; Multithreading; Pthreads; dynamic scheduling; irregular parallelism; lightweight threads; space efficiency;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Supercomputing, 1998.SC98. IEEE/ACM Conference on
  • Print_ISBN
    0-8186-8707-X
  • Type

    conf

  • DOI
    10.1109/SC.1998.10005
  • Filename
    1437318