Skip to main content

StackThreads: An abstract machine for scheduling fine-grain threads on stock CPUs

  • Invited Talk 2
  • Conference paper
  • First Online:
Theory and Practice of Parallel Programming (TPPP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 907))

Included in the following conference series:

Abstract

We present a software scheduling scheme for fine-grain threads, typical granurality of which is a single procedure invocation. Such fine-grain threads appear in many language implementations such as Multilisp and concurrent object-oriented languages in which an asynchronous procedure/method invocation is a building block of parallel programs. An implementation is described in terms of our abstract machine StackThreads. In the proposed scheme, an asynchronous procedure invocation (a procedure call attached with a thread creation) is performed in less than 10 additional RISC instructions to normal procedure calls in traditional sequential languages such as C, as long as the thread terminates without blocking. StackThreads unifies asynchronous and synchronous procedure calls, deriving a synchronous call by a combination of an asynchronous call + explicit synchronization between the caller and the callee. Therefore, each thread does not have to have its own stack for intrathread procedure calls, simplifying management of activation records. StackThreads serves as a compiler target for general purpose languages such as concurrent object-oriented languages or functional languages on distributed memory multicomputers where the efficiency of intra-node thread management is crucial. We also give benchmark results of our implementation of concurrent object-oriented language ABCL/f, the compiler of which uses StackThreads as the intermediate representation of source programs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 11, pages 281–313. The MIT Press, 1993.

    Google Scholar 

  2. Andrew A. Chien. Concurrent Aggregates (CA). PhD thesis, MIT, 1991.

    Google Scholar 

  3. David E. Culler, Anurag Sah, Klaus Erik Schauser, Thorsten von Eicken, and John Wawrzynek. Fine-grain parallelism with minimal hardware support: A compiler-controlled threaded abstract machine. In ASPLOS, pages 166–175, 1991.

    Google Scholar 

  4. Robert Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, April 1985.

    Article  Google Scholar 

  5. Vijay Karamcheti and Andrew Chien. Concert-efficient runtime support for concurrent object-oriented programming languages on stock hardware. In Supercomputing, pages 598–607, 1993.

    Google Scholar 

  6. Eric Mohr, David A. Kranz, and Robert Halstead, Jr. Lazy task creation: A techinque for increasing the granularity of parallel programs. IEEE Transactions on Parallel and Distributed Systems, 2(3):264–280, July 1991.

    Article  Google Scholar 

  7. R. S. Nikhil and Arvind. Id: a language with implicit parallelism. Technical report, MIT, 1990.

    Google Scholar 

  8. Kenjiro Taura. Design and implementation of concurrent object-oriented programming languages on stock multicomputers. Master's thesis, The University of Tokyo, Tokyo, February 1994.

    Google Scholar 

  9. Kenjiro Taura, Satoshi Matsuoka, and Akinori Yonezawa. An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers. In ACM PPOPP, pages 218–228, San Diego, California, May 1993.

    Google Scholar 

  10. Kenjiro Taura, Satoshi Matsuoka, and Akinori Yonezawa. ABCL/f: A future-based polymorphic typed concurrent object-oriented language — its design and implementation —. In G. Blelloch, M. Chandy, and S. Jagannathan, editors, Proceedings of the DIMACS workshop on Specification of Parallel Algorithms, 1994. (to appear).

    Google Scholar 

  11. Akinori Yonezawa. ABCL: An Object-Oriented Concurrent, System — Theory, Language, Programming, Implementation and Application. The MIT Press, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Akinori Yonezawa

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Taura, K., Matsuoka, S., Yonezawa, A. (1995). StackThreads: An abstract machine for scheduling fine-grain threads on stock CPUs. In: Ito, T., Yonezawa, A. (eds) Theory and Practice of Parallel Programming. TPPP 1994. Lecture Notes in Computer Science, vol 907. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026567

Download citation

  • DOI: https://doi.org/10.1007/BFb0026567

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-59172-6

  • Online ISBN: 978-3-540-49218-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics