Research Article
A comparison of concurrent programming and cooperative multithreading under load balancing applications
Article first published online: 19 JAN 2004
DOI: 10.1002/cpe.751
Copyright © 2004 John Wiley & Sons, Ltd.
Issue
1532-0634/asset/cover.gif?v=1&s=6094df24c795ce080ff6df6ff3b6bcec19adb708)
Concurrency and Computation: Practice and Experience
Volume 16, Issue 4, pages 345–369, 10 April 2004
Additional Information
How to Cite
Maris, J. T., Keen, A. W., Ishihara, T. and Olsson, R. A. (2004), A comparison of concurrent programming and cooperative multithreading under load balancing applications. Concurrency Computat.: Pract. Exper., 16: 345–369. doi: 10.1002/cpe.751
Publication History
- Issue published online: 20 FEB 2004
- Article first published online: 19 JAN 2004
- Manuscript Accepted: 14 FEB 2003
- Manuscript Revised: 12 FEB 2003
- Manuscript Received: 31 JUL 2002
Funded by
- Z-World, Inc. and the University of California under the MICRO program
- Abstract
- References
- Cited By
Keywords:
- cooperative multithreading;
- concurrent programming;
- load balancing;
- parallel and distributed programming languages;
- synchronization mechanisms
Abstract
Two models of thread execution are the general concurrent programming execution model (CP) and the cooperative multithreading execution model (CM). CP provides nondeterministic thread execution where context switches occur arbitrarily. CM provides threads that execute one at a time until they explicitly choose to yield the processor. This paper focuses on a classic application to reveal the advantages and disadvantages of load balancing during thread execution under CP and CM styles; results from a second classic application were similar. These applications are programmed in two different languages (SR and Dynamic C) on different hardware (standard PCs and embedded system controllers). An SR-like run-time system, DesCaRTeS, was developed to provide interprocess communication for the Dynamic C implementations. This paper compares load balancing and non-load balancing implementations; it also compares CP and CM style implementations. The results show that in cases of very high or very low workloads, load balancing slightly hindered performance; and in cases of moderate workload, both SR and Dynamic C implementations of load balancing generally performed well. Further, for these applications, CM style programs outperform CP style programs in some cases, but the opposite occurs in some other cases. This paper also discusses qualitative tradeoffs between CM style programming and CP style programming for these applications. Copyright © 2004 John Wiley & Sons, Ltd.

1532-0634/asset/olbannerleft.gif?v=1&s=a4e4e145787de94e1d91eaab3c8c29d8a9d96a26)