Results 1 - 10
of
25
The Design, Implementation, and Evaluation of Jade
- ACM Transactions on Programming Languages and Systems
, 1998
"... this article we discuss the design goals and decisions that determined the final form of Jade and present an overview of the Jade implementation. We also present our experience using Jade to implement several complete scientific and engineering applications. We use this experience to evaluate how th ..."
Abstract
-
Cited by 47 (2 self)
- Add to MetaCart
this article we discuss the design goals and decisions that determined the final form of Jade and present an overview of the Jade implementation. We also present our experience using Jade to implement several complete scientific and engineering applications. We use this experience to evaluate how the different Jade language features were used in practice and how well Jade as a whole supports the process of developing parallel applications. We find that the basic idea of preserving the serial semantics simplifies the program development process, and that the concept of using data access specifications to guide the parallelization offers significant advantages over more traditional control-based approaches. We also find that the Jade data model can interact poorly with concurrency patterns that write disjoint pieces of a single aggregate data structure, although this problem arises in only one of the applications. Categories and Subject Descriptors: D.1.3 [Programming Te
Scheduling Hard Real-Time Systems: A Review
, 1991
"... Recent results in the application of... this paper. The review takes the form of an analysis of the problems presented by different application requirements and characteristics. Issues covered include uniprocessor and multiprocessor systems, periodic and aperiodic processes, static and dynamic algor ..."
Abstract
-
Cited by 45 (7 self)
- Add to MetaCart
Recent results in the application of... this paper. The review takes the form of an analysis of the problems presented by different application requirements and characteristics. Issues covered include uniprocessor and multiprocessor systems, periodic and aperiodic processes, static and dynamic algorithms, transient overloads and resource usage. Protocols that limit and reduce blocking are discussed. Considerations are also given to scheduling Ada tasks.
Concurrent ML: Design, Application and Semantics
, 1993
"... Machine" [BB90], except that there are no "cooling" and "heating" transitions (the process sets of this semantics can be thought of as perpetually "hot" solutions). The concurrent evaluation relation extends "7\Gamma!" to finite sets of terms (i.e., processes) and adds additional rules for process c ..."
Abstract
-
Cited by 31 (0 self)
- Add to MetaCart
Machine" [BB90], except that there are no "cooling" and "heating" transitions (the process sets of this semantics can be thought of as perpetually "hot" solutions). The concurrent evaluation relation extends "7\Gamma!" to finite sets of terms (i.e., processes) and adds additional rules for process creation, channel creation, and communication. We assume a set of process identifiers, and define the set of processes and process sets as: ß 2 ProcId process IDs p = hß; ei 2 Proc = (ProcId \Theta Exp) processes P 2 Fin(Proc) process sets We often write a process as hß; E[e]i, where the evaluation context serves the role of the program counter, marking the current state of evaluation. Definition4. A process set P is well-formed if for all hß; ei 2 P the following hold: -- FV(e) = ; (e is closed), and -- there is no e 0 6= e, such that hß; e 0 i 2 P. It is occasionally useful to view well-formed process sets as finite maps from ProcId to Exp. If P is a finite set of process state...
The Design, Implementation and Evaluation of Jade, a Portable, Implicitly Parallel Programming Language
- Dept. of Computer Science, Stanford Univ
, 1994
"... ii ..."
Real-Time System Scheduling
, 1990
"... Recent results in the application of scheduling theory to dependable real-time systems are reviewed. The review takes the form of an analysis of the problems presented by different application requirements and characteristics. Issues covered include uniprocessor and multiprocessor systems, periodic ..."
Abstract
-
Cited by 19 (0 self)
- Add to MetaCart
Recent results in the application of scheduling theory to dependable real-time systems are reviewed. The review takes the form of an analysis of the problems presented by different application requirements and characteristics. Issues covered include uniprocessor and multiprocessor systems, periodic and aperiodic processes, static and dynamic algorithms, transient overloads and resource usage. Protocols that bound and reduce blocking are discussed. A review of specific real-time kernels is also included.
Prototyping a parallel vision system in Standard ML
, 1993
"... The construction of a parallel vision system from Standard ML prototypes is presented. The system recognises 3D objects from 2D scenes through edge detection, grouping of edges into straight lines and line junction based model matching. Functional prototyping for parallelism is illustrated through t ..."
Abstract
-
Cited by 16 (7 self)
- Add to MetaCart
The construction of a parallel vision system from Standard ML prototypes is presented. The system recognises 3D objects from 2D scenes through edge detection, grouping of edges into straight lines and line junction based model matching. Functional prototyping for parallelism is illustrated through the development of the straight line detection component. The assemblage of the whole system from prototyped components is then considered and its performance is discussed. 1 Introduction 1.1 Overview We have been investigating the use of functional prototyping in the development of parallel systems. In this paper we discuss the construction of a simple but complete parallel vision system which will recognise 3D objects from 2D intensity images. The system was prototyped in a pure functional subset of Standard ML and implemented in Occam2 on a Meiko Computing Surface. An important objective of this work is to give us experience in building a large scale project from discrete modules. In par...
Concurrent programming in ML
, 1990
"... I have added concurrency to the functional language Standard ML. The model of concurrency is derived from CSP, but processes do not communicate directly; they interact by communicating over channels. Also, processes and channels can be created dynamically. Three features of Standard ML---polymorp ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
I have added concurrency to the functional language Standard ML. The model of concurrency is derived from CSP, but processes do not communicate directly; they interact by communicating over channels. Also, processes and channels can be created dynamically. Three features of Standard ML---polymorphism, garbage collection, and modules---work exceptionally well with concurrency. Polymorphic functions that combine the concurrent primitives can be used in many programs. One can write processes that do not explicitly provide for their own termination; the garbage collector reclaims them when they can no longer communicate. Finally, one can use the Standard ML modules system to make small adjustments in the meanings of the primitives. The implementation takes only 220 lines of Standard ML. It uses call with current continuation, callcc, to simulate concurrent execution on a sequential machine. callcc is implemented efficiently by the Standard ML of New Jersey compiler, which uses no...
Arborescent Canonical Form of Boolean Expressions
, 1994
"... Signal is a synchronous language designed to program real-time systems. Because of its equational style, its compilation requires the statical resolution of a system of boolean equations; the variables being clocks. This report discusses the arborescent representation of Signal clocks. We introduce ..."
Abstract
-
Cited by 12 (10 self)
- Add to MetaCart
Signal is a synchronous language designed to program real-time systems. Because of its equational style, its compilation requires the statical resolution of a system of boolean equations; the variables being clocks. This report discusses the arborescent representation of Signal clocks. We introduce a bdd-based data structure called hierarchy. Through the factorization of boolean functions, we show that hierarchies are a canonical form of clocks. We also show that this canonical form optimizes the sequential code generated from a Signal program. We finally link hierarchies to the well known ordering problem of bdds.
SR: A Language for Parallel and Distributed Programming
, 1992
"... This paper introduces the newest version of the SR concurrent programming language and illustrates how it provides support for different execution environments, ranging from shared-memory multiprocessors to distributed systems. SR uses a few well-integrated mechanisms for concurrency to provide flex ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
This paper introduces the newest version of the SR concurrent programming language and illustrates how it provides support for different execution environments, ranging from shared-memory multiprocessors to distributed systems. SR uses a few well-integrated mechanisms for concurrency to provide flexible, yet efficient, support for parallel and distributed programming. This paper gives several realistic examples to illustrate these language mechanisms. 1. Introduction The SR concurrent programming language has been around, in one form or another, for over ten years. The earliest version, now called SR 0 , contained mechanisms for asynchronous message passing and rendezvous [Andr81,Andr82]. Its form of rendezvous, unique at the time, provided a means by which the process servicing a rendezvous could choose which invocation to service based on the values of invocation parameters. Experience using SR 0 substantiated the general appropriateness of the language, but also pointed out se...
First-class Synchronous Operations
, 1995
"... . The idea of making synchronous operations into first-class values is an important one for supporting abstraction and modularity in concurrent programs. This design principle has been used with great success in the concurrent language CML, but what are the limitations of this approach? This paper e ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
. The idea of making synchronous operations into first-class values is an important one for supporting abstraction and modularity in concurrent programs. This design principle has been used with great success in the concurrent language CML, but what are the limitations of this approach? This paper explains the rationale for first-class synchronous operations, and discusses their use in CML. It also presents some recent and fundamental results about the expressiveness of rendezvous primitives, which define the limitations of synchronous abstractions. 1 Introduction Abstraction is a key tool for managing complexity. The design of programming languages is one area where application of this idea has paid significant dividends. Languages have evolved from providing a fixed set of abstractions of the underlying hardware, such as arithmetic expressions and arrays, to providing support for programmer-defined abstractions, such as abstract data-types and higher-order procedures. By providing ...

