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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Nov 01, 1994
Accession Number
ADA452990

Entities

People

  • Dirk Grunwald

Organizations

  • University of Colorado Boulder

Tags

DTIC Thesaurus Topics

  • Abstracts
  • Availability
  • Classification
  • Colorado
  • Computers
  • Contracts
  • Environment
  • Information Operations
  • Instructions
  • Language
  • Monitoring
  • Operating Systems
  • Optimization
  • Security
  • Standards
  • Universities

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Science.
  • Parallel and Distributed Computing.

Technology Areas

  • Space