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
Link To Document