The global quiescence (GQ) of a distributed computation (or distributed termination detection) is an important problem. Some concurrent programming languages and systems provide GQ detection as a built-in feature so t...
详细信息
The global quiescence (GQ) of a distributed computation (or distributed termination detection) is an important problem. Some concurrent programming languages and systems provide GQ detection as a built-in feature so that programmers do not need to write special synchronization code to detect quiescence. This paper introduces partial quiescence (PQ), which generalizes quiescence detection to a specified part of a distributed computation. PQ is useful, for example, when two independent concurrent computations that both rely on GQ need to be combined into a single program. The paper describes how we have designed and implemented a PQ mechanism within an experimental version of the JR concurrent programming language, and have gained experience with several representative applications. Our early results are promising qualitatively and quantitatively. Copyright (C) 2007 John Wiley & Sons, Ltd.
Modula-2 is a recently developed concurrent programming language designed primarily for implementation on a mono-processor. This paper reports on the changes found necessary, both to the source language and to the sup...
详细信息
Modula-2 is a recently developed concurrent programming language designed primarily for implementation on a mono-processor. This paper reports on the changes found necessary, both to the source language and to the support environment, in order to allow the language to be used to program a tightly coupled, homogenous, distributed computing system. Specific areas covered are: the allocation of program code and data to processors, which is kept independent of the source code, allowing flexible re-allocation without re-compilation; the choice of an inter-processor communication mechanism, where the remote procedure call was considered to be the most flexible technique; and the selection of an inter-process communication mechanism, where, despite the distributed nature of the target, the monitor was found most suitable.
The authors describe a hardware/software codesign system used for translating communication protocol specifications written in Promela, a high-level concurrent programming language, into implementations of custom hard...
详细信息
The authors describe a hardware/software codesign system used for translating communication protocol specifications written in Promela, a high-level concurrent programming language, into implementations of custom hardware and software. The authors developed a single front end and two back ends for compiling Promela. The software back end translates a Promela program into C++. This code, along with additional code needed to support external hardware interfaces, can then be compiled into an executable version of the Promela specification. The hardware back end maps each Promela declaration, statement, and expression to a primitive element composed of combinational logic gates and flip-flops. It produces output in the form of a VHDL entity/architecture pair for simulation or an EDIF netlist view for transfer to commercial hardware CAD tools. A simple communication system serves as a design example for the authors' compilation tools. The system consists of a hardware process that creates a reliable channel by implementing the alternating-bit protocol over a pair of unreliable channels and a software process that sends a stream of data over that channel.
This paper presents a computation model and its programminglanguage,A’UM,* as a result of our pursuit of high parallelism and high expressivity for the development of a large scale software. By basing it on streams ...
详细信息
This paper presents a computation model and its programminglanguage,A’UM,* as a result of our pursuit of high parallelism and high expressivity for the development of a large scale software. By basing it on streams and integrating it with objects and relations,A’UM realizes an elegant model, natural representation and efficient execution, all at once, that have never been done by any other approaches.
In recent work we have introduced an experimental concurrent programming language which supports a systematic approach to performance analysis and formal verification correlated with a programming style called perform...
详细信息
ISBN:
(纸本)9781728106250
In recent work we have introduced an experimental concurrent programming language which supports a systematic approach to performance analysis and formal verification correlated with a programming style called performance evaluation programming [19]. For the purpose of formal verification, the ranges of variables must be bounded and concurrent programs are translated into corresponding (finite state) Continuous Time Markov Chains (CTMCs) which are analyzed by using the PRISM tool. Activities in a CTMC model are abstracted by their rates. In the language introduced in [19] an activity is the evaluation of a function expressed in a functional sub-language. The solution presented in [19] supports formal verification in a systematic manner, but not automatically, requiring the programmer to generate certain data for the performance evaluation experiments. In this paper we refine the design of the functional sub-language introduced in [19] by using concepts of functional programming with dependent types. We use dependent types to control the ranges of variables. The solution presented in this paper is devised to support automatic performance evaluation and formal verification of (bounded versions of) concurrent programs.
We present an experimental concurrent programming language L-PEP which supports performance evaluation programming. An L-PEP program is a collection of modules which are executed concurrently. The structure of an L-PE...
详细信息
ISBN:
(纸本)9781538626269
We present an experimental concurrent programming language L-PEP which supports performance evaluation programming. An L-PEP program is a collection of modules which are executed concurrently. The structure of an L-PEP program is similar to the structure of a Continuous Time Markov Chain (CTMC) model expressed in the PRISM language (of the PRISM probabilistic model checker). However, L-PEP is a programminglanguage, not a model checker. Activities are abstracted in a PRISM CTMC model by their rates. In the language L-PEP an activity is the evaluation of a function (expressed in a functional sub-language of L-PEP) in a certain state of a module. Each L-PEP module contains a number of variables (which describe the possible states of the module) and a list of commands that can specify activities. L-PEP supports variables of both primitive types (booleans and integers) and non-primitive types, e.g., lists. For the purpose of performance evaluation the programmer must bound the ranges of variables. Any value of a non-primitive type is handled according to its complexity (rather than its value). For example, the complexity of a list could be the length of the list, which must also be bounded. It is also the responsibility of the programmer to design each L-PEP function by induction on an appropriate complexity measure which always decreases upon a recursive call. Performance evaluation is supported in L-PEP by constructing a CTMC model from an L-PEP program, and by analyzing the CTMC model using the PRISM tool.
暂无评论