Heaps o' Stacks: Time and Space Efficient Threads Without Operating System Support
Abstract
Modern languages and operating systems often encourage programmers to manage concurrent activity using threads, or independent control streams. Although threads can greatly simplify the control structure of complex programs, and arc almost essentially for writing parallel programs, threads are not force - in convectional languages, each thread must store a series of activation records, ususally stored on a stack. Efficiently managing storage for activation records is important for environments with limited storage or limit operating system support. It is also important for our intended purpose - allowing programmers to use threads to simplify the design of scientific parallel programs. In this paper, we show how whole-program optimization can be used to efficiently create activation records for threads resulting in safe, efficient threaded programs. Our method reduces TLB misses for programs with many small threads, is time and space efficient for scientific programs, does not require operating systems support and is safe. Most importantly, we show how to create very small stacks for parallel scientific programs, allowing hundreds of threads to be used.
Document Details
- Document Type
- Technical Report
- Publication Date
- Nov 01, 1994
- Accession Number
- ADA452990
Entities
People
- Dirk Grunwald
Organizations
- University of Colorado Boulder