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

A customizable substrate for concurrent languages

Published: 01 July 1992 Publication History

Abstract

We describe an approach to implementing a wide-range of concurrency paradigms in high-level (symbolic) programming languages. The focus of our discussion is STING, a dialect of Scheme, that supports lightweight threads of control and virtual processors as first-class objects. Given the significant degree to which the behavior of these objects may be customized, we can easily express a variety of concurrency paradigms and linguistic structures within a common framework without loss of efficiency.
Unlike parallel systems that rely on operating system services for managing concurrency, STING implements concurrency management entirely in terms of Scheme objects and procedures. It, therefore, permits users to optimize the runtime behavior of their applications without requiring knowledge of the underlying runtime system.
This paper concentrates on (a) the implications of the design for building asynchronous concurrency structures, (b) organizing large-scale concurrent computations, and (c) implementing robust programming environments for symbolic computing.

References

[1]
Thomas Anderson, Edward Lazowska, and Henry Levy. The Performance Implications of Thread Management Alternatives for Shared Memory MultiProcessors. IEEE Transactions on Computers, 38(12):1631-1644, December 1989.
[2]
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy. Scheduler activations: effective kernel support for the user-level management of parallelism. In Proceedings o/13th A CM Symposium on Operating Systems Principles, pages 95-109. Association for Computing Machinery SIGOPS, October 1991.
[3]
Arvind, Rishiyur Nikhil, and Keshav Pingali. I- Structures: Data Structures for Parallel Computing. Transactions on Programming Languages and Systems, 11(4):598-632, October 1989.
[4]
Peter Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, MIT Laboratory for Computer Science, 1977.
[5]
David Black. Scheduling Support for Concurrency and Parallelism in the Mach Operating System. iEEE Computer, 23(5):35-43, May 1990.
[6]
Nick Carriero and David Gelernter. How to Write Parallel Programs: A Guide to the Perplexed. ACM Computing Surveys, 21(3), September 1989.
[7]
Nick Carriero and David Gelernter. Linda in Context. Communications o/the ACM, 32(4):444 - 458, April 1989.
[8]
K.L Clark and S. Gregory. PARLOG: Parallel Programming in Logic. A CM Transactions on Programming Languages and Systems, 8(1):1-49, 1986.
[9]
Eric Cooper and Richard Draves. C Threads. Technical Report CMU-CS-88-154, Carnegie-MeUon University, June.
[10]
Eric Cooper and J.Gregory Morrisett. Adding Threads to Standard ML. Technical Report CMU- CS-90-186, Carnegie-Mellon University, 1990.
[11]
J. Dongarra, D. Sorenson, and P. Brewer. Tools and Methodology for Programming Parallel Processors. In Aspects of Computation on Asynchronous Processors, pages 125-138. North-Holland, 1988.
[12]
R. Gabriel and J. McCarthy. Queue-Based Multi- Processing Lisp. In Proceedings of the 198d Conf. on Lisp and Functional Programming, pages 25-44, August 1984.
[13]
Robert Halstead. Multilisp: A Language for Concurrent Symbolic Computation. Transactions on Programming Languages and Systems, 7(4):501-538, October 1985.
[14]
Robert Hieb and R. Kent Dybvig. Continuations and Concurrency. In Second A CM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 128-137, March 1990.
[15]
Waldemar Horwat, Andrew Chien, and William Daily. Experience with CST: Programming and Implementation. In A CM SiGPLAN '89 Con/erence on Programming Language Design and Implementation, pages 101-109, June 1989.
[16]
Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60-70, August 1986.
[17]
Suresh Jagannathan. Optimizing Analysis for First- Clgsz Tuple-Spacea. In Third Workshop on Parallel Languages and Compilers. MIT Press, August 1990.
[18]
Suresh Jagannathan and James Philbin. A Foundation for an Efficient Multi-Threaded Scheme System. In Proceedings of the 199~ Conf. on Lisp and Functional Programming, June 1992.
[19]
David Kranz, Robert Halstead, and Eric Mohr. Mul- T: A High Performance Parallel Lisp. In Proceedings of the A CM Symposium on Programming Language Design and implementation, pages 81-91, June 1989.
[20]
David Kranz, Richard Kelsey, Jonathan Rees, Paul Hudak, James Philbin, and Norman Adams. OR- BiT: An Optimizing Compiler for Scheme. A CM SIGPLAN Notices, 21(7):219-233, July 1986.
[21]
Henry Lieberman and Carl Hewitt. A Real-Tinle Garbage Collector Based on the Lifetime of Objects. Communications of the A CM, 26(6):419-429, June 1973.
[22]
Brian D. Marsh, Michael L. Scott, Thomas J. LeBlanc, and Evan~elos P. Markatos. First-class user-level threads. In Proceedings of 13th A CM Sym. posium on Operating Systems Principles, pages 110- 21. Association for Computing Machinery SIGOPS, October 1991.
[23]
Sun Microsystems. Lightweight Processes, 1990. In SunOS Programming Utilities and Libraries.
[24]
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.
[25]
Randy Osborne. Speculative Computation in MultiLisp. In Proceedings of the 1990 A CM Conference on Lisp and Functional Programming, pages 198-208, 1990.
[26]
James Philbin. STING: An Operating System Kernel for Highly Parallel Computing. PhD thesis, Dept. of Computer Science, Yale University, 1992. Forthcoming.
[27]
Jonathan Rees and William Clinger, editors. The Reviseda Report on the Algorithmic Language Scheme. A CM Sigplan Notices, 21(12), 1986.
[28]
John Reppy. CML: A Higher-Order Concurrent Language. In Proceedings of the SiGPLAN'91 Conference on Programming Language Design and Imple. mentation, pages 293-306, June 1991.
[29]
Vijay Saraswat and Martin Rinard. Concurrent Conattaint Programming. In Proceedings of the 17th A CM Symposium on Principles of Programming Languages, pages 232-246, 1990.
[30]
A. Tevanian, R. Rashid, D. Golub, D. Black, E. Cooper, and M. Young. Mach Treads and the UNIX Kernel: The Battle for Control. In 19'87 USENIX Summer Conference, pages 185-197, 1987.
[31]
A. Tucker and A. Oupta. Process Control and Scheduling Issues for Multiprogrammed Shared- Memory Machines. In Proceedings of the l~th Annual A CM Symposium on Operating Systems Principles, pages 114-122, 1989.
[32]
David Ungar. Generation Scavenging' A Non- Disruptive High Performance Storage Reclamation Algorithm. In Proceedings of the A CM SI'G. SOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157-167, 1984.
[33]
M. Vandevoorde and E. Roberts. WorkCrews: An Abstraction for Controlling Parallelism. interns. tional Journal of Parallel Programming, 17(4):347- 366, August 1988.
[34]
Mitch Wand. Continuation-Based MultiProcessing. In Proceedings of the 1980 A CM Lisp and Functional Programming Conference, pages 19-28, 1980.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 27, Issue 7
July 1992
352 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/143103
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
    July 1992
    352 pages
    ISBN:0897914759
    DOI:10.1145/143095
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 July 1992
Published in SIGPLAN Volume 27, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)111
  • Downloads (Last 6 weeks)33
Reflects downloads up to 03 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (1993)Procs and locksACM SIGPLAN Notices10.1145/173284.15535328:7(198-207)Online publication date: 1-Jul-1993
  • (1993)Procs and locksProceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming10.1145/155332.155353(198-207)Online publication date: 1-Aug-1993
  • (2009)Runtime support for multicore HaskellACM SIGPLAN Notices10.1145/1631687.159656344:9(65-78)Online publication date: 31-Aug-2009
  • (2009)Runtime support for multicore HaskellProceedings of the 14th ACM SIGPLAN international conference on Functional programming10.1145/1596550.1596563(65-78)Online publication date: 31-Aug-2009
  • (2008)Scheduling light-weight parallelism in ArTCoPProceedings of the 10th international conference on Practical aspects of declarative languages10.5555/1785754.1785769(214-229)Online publication date: 7-Jan-2008
  • (2008)A scheduling framework for general-purpose parallel languagesProceedings of the 13th ACM SIGPLAN international conference on Functional programming10.1145/1411204.1411239(241-252)Online publication date: 20-Sep-2008
  • (2008)A scheduling framework for general-purpose parallel languagesACM SIGPLAN Notices10.1145/1411203.141123943:9(241-252)Online publication date: 20-Sep-2008
  • (2008)Scheduling Light-Weight Parallelism in ArTCoPPractical Aspects of Declarative Languages10.1007/978-3-540-77442-6_15(214-229)Online publication date: 2008
  • (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
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media