In this paper, we present a new coordination model and a small set of programming notations for distributed programming that can be integrated into very different programming languages (imperative, declarative or obje...
详细信息
In this paper, we present a new coordination model and a small set of programming notations for distributed programming that can be integrated into very different programming languages (imperative, declarative or object oriented). Both together, allow distributed programs to be developed in a compositional way, by assembling different independent pieces of (possibly preexisting and heterogeneous) code. This approach is in the spirit of many other similar proposals, such as Linda, supporting multiparadigm and multilingual integration. In addition, the Tuple Channel coordination model provides a powerful set of concurrent programming techniques, inherited from Concurrent Logic Languages (CLLs), but trying to overcome the efficiency drawbacks of logic variables in distributed implementations of CLLs. In the present paper we introduce this coordination model, giving some illustrative examples to show its suitability and expressiveness;some implementation issues are also commented on.
Performing rigorous analysis of parallel anddistributedsystems (PDS) specifications is one of the important tasks during the early stages of development. The ambiguities and errors left unchecked during the analysis...
详细信息
Performing rigorous analysis of parallel anddistributedsystems (PDS) specifications is one of the important tasks during the early stages of development. The ambiguities and errors left unchecked during the analysis phase can creep into design and development phases, resulting in cost & schedule overruns and a less reliable end product. The Commercial Off the Shelf, CASE (Computer Aided softwareengineering) tools can play an important role in the analysis and design phases. However techniques must be developed to address the shortcomings of CASE tools. A set of such techniques is presented in this paper. CASE tools can be used to gather PDS specifications in the form of analysis models. The techniques presented in this paper deal with the problem of performing rigorous analysis of PDS specifications originally developed using a CASE tool. The approach is based on integrating a CASE tool with a verification tool based on Coloured Petri Nets (CPNs). CPNs can be used to model and analyze concurrency in specifications and design phases. Dynamic simulations of CPN models can be used to conduct performance/performability analysis as well as risk assessment studies.
Most programs from scientific computing can benefit from the use of numerical libraries which provide efficient implementations for standard solution methods that often occur in numerical simulations. This is especial...
详细信息
ISBN:
(纸本)0818680431
Most programs from scientific computing can benefit from the use of numerical libraries which provide efficient implementations for standard solution methods that often occur in numerical simulations. This is especially true for parallel scientific computing. A methodology that allows the integration of library functions without any additional programming effort would ease this programming style. In this paper we address the question how to integrate library procedures into hierarchically organized parallel programs. The hierarchical structure of a specific algorithms results from a top-down decomposition into submethods which can be realized by library functions. The integration of library functions nor only requires a correct specification of data dependencies between different modules but has also to take into account a possible distribution of data among the processors. We present algorithms for the adaptation of library modules such that their functional type and underlying data distribution fit into the hierarchical framework. The adaptation includes the construction of data flow graphs that can be used to determine data distributions for the library modules such that a minimal global execution time results.
The goal of a management system in a distributed computing environment is to provide a centralized and coordinated view of an otherwise distributed and heterogeneous collection of hardware andsoftware resources. Mana...
详细信息
The goal of a management system in a distributed computing environment is to provide a centralized and coordinated view of an otherwise distributed and heterogeneous collection of hardware andsoftware resources. Management systems monitor, analyze and control network resources, system resources, anddistributed application programs. Many organizations currently depend on mission-critical distributed applications, a trend that will increase as softwareengineering tools emerge that make it easier to construct distributed applications. We believe that manageability must be built in to distributed applications from the beginning rather than added in an ad hoc fashion after they have been developed. Just as designing software for usability, testability and maintenance are being addressed in the development process, so must designing for manageability. Application manageability is a research issue of particular interest to us. The work described in this paper focuses on instrumenting processes to allow them to respond to management requests, generate management reports, and maintain information required by the management system. We present an instrumentation architecture to support this, a prototype implementation which includes a class library of standard instrumentation, and a methodology for instrumentation.
Verification of parallel programs is a very important goal on the way to improve the reliability of software. The PEP tool, a Programming Environment based on Petri nets, allows verification of parallel programs by a ...
详细信息
Verification of parallel programs is a very important goal on the way to improve the reliability of software. The PEP tool, a Programming Environment based on Petri nets, allows verification of parallel programs by a variety of different verification methods (e.g., partial order or BDD based model checking, and stubborn set or symmetrically reduced state space analysis) based on a compositional denotational Petri net semantics. The main contribution of this paper consists in the development of a fully compositional high-level Petri net semantics for concurrent programs with procedures, covering recursion, global variables, and different types of parameter passing (including call-by-reference). The semantics (which is already implemented) is oriented towards verification, i.e., the semantic models are minimized. Due to the abstract and flexible nature of the Petri net model used, our approach is very general and may also be applied to other specification and programming languages. We are, for instance, presently approaching SDL (Specification and Description Language).
In order to allow the efficient implementation of parallel application programs, various design decisions have to be made and implemented. These include the task mapping and schedule, the task granularity as well as d...
详细信息
In order to allow the efficient implementation of parallel application programs, various design decisions have to be made and implemented. These include the task mapping and schedule, the task granularity as well as decisions concerning code optimizations. The paper describes a hierarchical concept for system design and implementation. The concept has been implemented in the DSPL programming environment, an integrated approach to generate efficient parallel programs from data-flow specifications. It supports the design itself as well as the implementation of the design decisions. In contrast to most programming environments for MIMD systems that simply use a runtime kernel or an operating system to implement the design decisions, the DSPL programming environment actually transforms the application program to implement the design decisions as the task schedule and granularity. In this paper, we focus on the hierarchical strategy to compute and implement the design decisions concerning the task schedule. We show how most of the schedule can be decided statically even in the presence of input-dependent program behavior. This results in much lower runtime overhead than incurred with dynamic approaches based on operating systems.
Due to the complexity of distributed applications, understanding their behavior is a challenging task. To remedy this problem, graphical visualizations of distributed executions in the form of process-time diagrams ar...
详细信息
Due to the complexity of distributed applications, understanding their behavior is a challenging task. To remedy this problem, graphical visualizations of distributed executions in the form of process-time diagrams are frequently employed. However, such process-time diagrams do not scale for long-running and complex distributed applications. To reduce the display complexity, abstract graphical views of an execution are frequently suggested. One commonly used abstraction is to group primitive events into abstract events. This paper discusses some of the problems encountered when analyzing executions at abstract levels and introduces the concept of convex abstract events. Such abstract events can be used to reason about executions at higher levels, facilitating program development, debugging, and maintenance. We discuss some fundamental aspects, such as the precedence relation and its efficient detection, for abstract events. The paper also presents a graphical representation for convex abstract events which can easily be included in process-time diagrams. Poet, our visualization tool, was enhanced with a facility to display abstract events. Using a non-trivial distributed application, examples of the resulting abstract execution visualizations are discussed.
We motivate the use of algorithmic skeletons for modeling parallel applications in the context of scheduling. Scalability and other features of the skeletal approach are used to improve the quality of scheduling paral...
详细信息
We motivate the use of algorithmic skeletons for modeling parallel applications in the context of scheduling. Scalability and other features of the skeletal approach are used to improve the quality of scheduling parallel applications in multiprogramming systems. We show how skeletons can be used to model parallel applications that can perform dynamical remapping. This technique modifies schedules during runtime and increases system efficiency.
This paper presents a new approach for testing parallel anddistributed programs based on specifications. The requirements are formulated in temporal logic. The description of test cases is extended by control pattern...
详细信息
This paper presents a new approach for testing parallel anddistributed programs based on specifications. The requirements are formulated in temporal logic. The description of test cases is extended by control patterns enabling to cope with the demands of parallel applications. For the formulation of these patterns, an abstract execution model called POEM is introduced. After executing a parallel program with respect to a test case specification and its patterns, the resulting trace is checked against the temporal logic specification of the predefined requirements.
Broadcast, reduction and scan are popular functional skeletons which are used in distributed algorithms to distribute and gather data. The authors derive new parallel implementations of combinations of broadcast, redu...
详细信息
Broadcast, reduction and scan are popular functional skeletons which are used in distributed algorithms to distribute and gather data. The authors derive new parallel implementations of combinations of broadcast, reduction and scan via a tabular classification of linearly recursive functions. The trick in the derivation is to not simply combine the individual parallel implementations of broadcast, reduction and scan, but to transform these combinations to skeletons with a better performance. These skeletons are also linearly recursive.
暂无评论