We have designed a portable interface between shared-memory multiprocessors and Standard ML of New Jersey. The interface is based on the conventional kernel thread model and provides facilities that can be used to implement user-level thread packages. The interface supports experimentation with different thread scheduling policies and synchronization constructs. It has been ported to three different multiprocessors and used to construct a general purpose, user-level thread package. In this paper, we discuss the interface and its implementation and performance, with emphasis on the Silicon Graphics 4D/380S multiprocessor. 1
|
1463
|
The Definition of Standard ML
– Milner, Tofte, et al.
- 1990
|
|
588
|
Compiling with Continuations
– Appel
- 1992
|
|
409
|
Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism
– Anderson, Bershad, et al.
- 1992
|
|
357
|
Multilisp: A language for concurrent symbolic computation
– Halstead
- 1985
|
|
201
|
List Processing in Real Time on a Serial Computer,’’ A.I. Working Paper 139
– Baker
- 1977
|
|
195
|
Standard ML of New Jersey
– Appel, MacQueen
- 1991
|
|
161
|
Simple generational garbage collection and fast allocation
– Appel
- 1989
|
|
156
|
F.B.Schneider: Concepts and notations for concurrent programming
– Andrews
- 1983
|
|
136
|
Real-time concurrent collection on stock multiprocessors
– Appel, Ellis, et al.
- 1988
|
|
125
|
FACILE, a symmetric integration of concurrent and functional programming
– Giacalone, Mishra, et al.
- 1989
|
|
119
|
Higher-order concurrency
– Reppy
- 1992
|
|
115
|
E.P.Markatos. First-Class User-Level Threads
– Marsh, Scott, et al.
- 1991
|
|
107
|
Garbage collection can be faster than stack allocation
– Appel
- 1987
|
|
94
|
Mul-T: a high-performance parallel Lisp
– Kranz, Halstead, et al.
- 1989
|
|
93
|
Typing first-class continuations in ML
– Duba, Harper, et al.
- 1991
|
|
76
|
A semantics for ML concurrency primitives
– Berry, Milner, et al.
- 1992
|
|
70
|
Representing control in the presence of first-class continuations
– Hieb, Dybvig, et al.
- 1990
|
|
67
|
Continuation-based multiprocessing
– Wand
- 1980
|
|
63
|
A Runtime System
– Appel
- 1990
|
|
63
|
Morrisett. Adding threads to Standard ML
– Cooper, Gregory
- 1990
|
|
57
|
The Portable Common Runtime approach to interoperability
– Weiser, Demers, et al.
- 1989
|
|
51
|
No assembly required: Compiling Standard ML to C
– Tarditi, Acharya, et al.
- 1990
|
|
50
|
The SIMPLE code
– Crowley, Hendrickson, et al.
- 1978
|
|
41
|
MultiScheme: A Parallel Processing System
– Miller
- 1987
|
|
36
|
An efficient parallel garbage collection system and its correctness proof
– Kung, Song
- 1977
|
|
35
|
Lock-free garbage collection for multiprocessors
– Herlihy, Moss
- 1992
|
|
32
|
R.H.: New ideas in parallel Lisp: Language design, implementation, and programming tools
– Halstead
|
|
28
|
The performance of spin lock alternatives for shared memory multiprocessors
– Anderson
- 1990
|
|
27
|
Adaptive bitonic sorting: An optimal parallel algorithm for shared-memory machines
– Bilardi, Nicolau
- 1989
|
|
27
|
A foundation for an efficient multi-threaded scheme system
– Jagannathan, Philbin
- 1992
|
|
26
|
The Fox Project: Advanced Development of Systems Software
– Cooper, Harper, et al.
- 1991
|
|
25
|
A customizable substrate for concurrent languages
– Jagannathan, Phdbm
- 1992
|
|
24
|
A distributed concurrent implementation of Standard ML
– Matthews
- 1991
|
|
24
|
Asynchronous signals in Standard ML
– Reppy
- 1990
|
|
14
|
Debuggable concurrency extensions for Standard ML
– Tolmach, Appel
- 1991
|
|
13
|
Preliminary results with the initial implementation of Qlisp
– Goldman, Gabriel
- 1988
|
|
13
|
An incremental garbage collection algorithm for multi-mutator systems
– Pixley
- 1988
|
|
12
|
Concurrent programming in ml
– Ramsey
- 1990
|
|
11
|
Dynamic Partitioning of Parallel Lisp Programs
– Mohr
- 1991
|
|
9
|
An implementation of portable standard lisp on the BBN butter y
– Swanson, Kessler, et al.
- 1988
|
|
8
|
Threads: A system for the support of concurrent programming
– Jr
- 1987
|
|
7
|
Dynamic program parallelization
– Huelsbergen, Larus
- 1992
|
|
5
|
Concurrent programming with events
– Reppy
- 1990
|
|
5
|
The eXene library manual
– Reppy, Gansner
- 1991
|
|
2
|
The Venari project: Goals and plans. Venari Note 1
– Wing
- 1990
|
|
1
|
Running your continuation threads in parallel
– Morrisett
- 1991
|
|
1
|
An RPC/LWP system for interconnecting heterogeneous systems
– Sansilo, Squillante
- 1988
|