Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

A foundation for an efficient multi-threaded scheme system

Published: 01 January 1992 Publication History
  • Get Citation Alerts
  • Abstract

    We have built a parallel dialect of Scheme called STING that differs from its contemporaries in a number of important respects. STING is intended to be used as an operating system substrate for modern parallel programming languages.
    The basic concurrency management objects is STING are first-class lightweight threads of control and virtual processors (VPs). Unlike high-level concurrency structures, STING threads and VPs are not encumbered by complex synchronization protocols. Threads and VPs are manipualted in the same way as any other Scheme structure.
    STING separates thread policy decisions from thread implementation ones. Implementations of different parallel languages built on top of STING can define their own scheduling and migration policies without requiring modification to the runtime system or the provided interface. Process migration and scheduling can be customized by applications on a per-VP basis.
    The semantics and implementation of threads minimizes the cost of thread creation, and puts a premium on storage locality. The storage management policies in STING lead to better cache and page utilization, and allows users to experiment with a variety of different execution regimes—from fully delayed to completely eager evaluation.

    References

    [1]
    Harold Abelson and Gerald Sussman. Structure and Interpretation o/ Computer Programs. MIT Press, Cambridge, Mass., 1985.
    [2]
    Andrew Appei, John Ellis, and Ka/ Li. Real-time Concurrent Collection on Stock Multiprocessors. In A CM SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 11-21, 1988.
    [3]
    Henry Baker. List Processing in Real Time on a Serial Computer. Communications o/the A CM, 21(4):280-294, April 1978.
    [4]
    Peter Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, MIT Laboratory for Computer Science, 1977.
    [5]
    Nick Carriero and David Gelernter. Linda in Context. Communications o/the ACM, 32(4):444 - 458, April 1989.
    [6]
    Eric Cooper and Richard Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie-Mellon University, June.
    [7]
    Eric Cooper and J.Gregory Morrisett. Adding Threads to Standard ML. Technical Report CMU- CS-90-186, Carnegie-Mellon University, 1990.
    [8]
    Mark Feeley and James Miller. A Parallel Virtual Machine for Efficient Scheme Compilation. in Proceedings o/the 1990 Con/erence on Lisp and Functional Programming, pages 119-131, 1990.
    [9]
    R. Gabriel and J. McCarthy. Queue-Based Multi- Processing Lisp. In Proceedings of the 198~ Con. ference on Lisp and Functional Programming, pages 25-44, August 1984.
    [10]
    David Greenberg. Full Utilization of Communication Resources. PhD thesis, Yale University, 1991. Also published as Yale University Computer Science Technical Report, YALEU/DCS/TR-860.
    [11]
    Robert Halstead. Multilisp: A Language for Concurrent Symbolic Computation. Transactions on Programming Languages and Systems, 7(4):501-538, October 1985.
    [12]
    Robert Hieb and R. Kent Dybvig. Continuations and Concurrency. In Second A CM SIGPLAN Symposium on Principles and Practice o/Parallel Programming, pages 128-137, March 1990.
    [13]
    Suresh Jagannathan and James Philbin. A Customizable Substrate for Concurrent Languages. In A CM SiGPLAN '91 Con/erence on Programming Language Design and Implementation, June 1992.
    [14]
    David Kranz, Robert Halstead, and Eric Mohr. Mul- T: A High Performance Parallel Lisp. in Proceedings o/the A CM Symposium on Programming Language Design and Implementation, pages 81-91, June 1989.
    [15]
    David Kranz, R. Kelsey, Jonathan Rees, Paul Hudak, J. Philbin, and N. Adams. ORBIT: An Optimizing Compiler for Scheme. A CM SIGPLAN Notices, 21(7):219-233, July 1986.
    [16]
    Butler Lampson and D. Redell. Experiences with Processes and Monitors in Mesa. Communications o/the ACM, 23(2):104-117, February 1980.
    [17]
    Henry Lieberman and Carl Hewitt. A ReM-Time Garbage Collector Based on the Lifetime of Objects. Communications o/ the A CM, 26(6):419-429, June 1973.
    [18]
    Robin Milner, Mads ToRe, and Robert Harper. The Definition o/Standard ML. MIT Press, 1990.
    [19]
    Rick Mohr, David Kranz, and Robert Halstead. Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs. In Proceedings of the 1990 A CM Conference on Lisp and Functional Programming, June 1990.
    [20]
    David Moon. Garbage Collection in a Large Lisp System. In Proceedings oJ' the 198~ Con/erence on Lisp and Functional Programming, pages 235 - 246, 1984.
    [21]
    Greg Papadopolus and David Culler. Monsoon: An Explicit Token-Store Architecture. In Proceedings of the 1990 Conference on Computer Architecture, pages 82-92, 1990.
    [22]
    James Philbin. STING Users Manual. NEC Research Institute, 1992. Forthcoming.
    [23]
    Jonathan Rees and William Clinger, editors. The Reviseda Report on the Algorithmic Language Scheme. A GM Sigplan Notices, 21(12), 1986.
    [24]
    John Reppy. CML: A Higher-Order Concurrent Language. In Proceedings o/the SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 293-306, June 1991.
    [25]
    David Ungar. Generation Scavenging: A Non- Disruptive High Performance Storage Reclamation Algorithm. In Proceedings o/ the A CM SIG- SOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157-167, 1984.
    [26]
    M. Vandevoorde and E. Roberts. WorkCrews: An Abstraction for Controlling Parallelism. International Journal ojf Parallel Programming, 17(4):347- 366, August 1988.
    [27]
    Mitch Wand. Continuation-Based MultiProcessing. In Proceedings o/the 1980 A CM Lisp and Functional Programming Conference, pages 19-28, 1980.
    [28]
    William Wulf, Roy Levin, and Samuel Harbison. HY- DRA/C. mmp: An Experimental Computer System. McGraw-Hill, 1981.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Lisp Pointers
    ACM SIGPLAN Lisp Pointers  Volume V, Issue 1
    Jan. 1992
    357 pages
    ISSN:1045-3563
    DOI:10.1145/141478
    Issue’s Table of Contents
    • cover image ACM Conferences
      LFP '92: Proceedings of the 1992 ACM conference on LISP and functional programming
      January 1992
      365 pages
      ISBN:0897914813
      DOI:10.1145/141471
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 1992
    Published in SIGPLAN-LISPPOINTERS Volume V, Issue 1

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)44
    • Downloads (Last 6 weeks)7

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
    • (2018)A concurrent abstract interpreterLisp and Symbolic Computation10.1007/BF010186937:2-3(173-193)Online publication date: 12-Dec-2018
    • (1994)Garbage Collection in Distributed EZComputer Science 210.1007/978-1-4757-9805-0_21(243-251)Online publication date: 1994
    • (1993)A new architecture design paradigm for parallel computing in schemeParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018665(362-379)Online publication date: 1993
    • (1993)Distillations of dynamic partitioning experienceParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018648(87-93)Online publication date: 1993
    • (2007)Lightweight concurrency primitives for GHCProceedings of the ACM SIGPLAN workshop on Haskell workshop10.1145/1291201.1291217(107-118)Online publication date: 30-Sep-2007
    • (2005)Locality abstractions for parallel and distributed computingTheory and Practice of Parallel Programming10.1007/BFb0026577(320-345)Online publication date: 15-Jun-2005
    • (2005)A new architecture design paradigm for parallel computing in schemeParallel Symbolic Computing: Languages, Systems, and Applications10.1007/BFb0018665(362-379)Online publication date: 31-May-2005
    • (2005)Supporting coarse and fine grain parallelism in an extension of MLParallel Processing: CONPAR 94 — VAPP VI10.1007/3-540-58430-7_52(593-604)Online publication date: 3-Jun-2005
    • (2005)High-level abstractions for efficient concurrent systemsProgramming Languages and System Architectures10.1007/3-540-57840-4_31(171-190)Online publication date: 31-May-2005
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media