By Topic

Software Engineering for Parallel and Distributed Systems, 1997. Proceedings., Second International Workshop on

Date 17-18 May 1997

Filter Results

Displaying Results 1 - 25 of 32
  • Proceedings of PDSE '97: 2nd International Workshop on Software Engineering for Parallel and Distributed Systems

    Save to Project icon | Request Permissions | PDF file iconPDF (310 KB)  
    Freely Available from IEEE
  • Author index

    Page(s): 311
    Save to Project icon | Request Permissions | PDF file iconPDF (60 KB)  
    Freely Available from IEEE
  • Making distributed applications manageable through instrumentation

    Page(s): 84 - 94
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1028 KB)  

    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 and software resources. Management systems monitor, analyse and control network resources, system resources, and distributed application programs. Many organizations currently depend on mission-critical distributed applications, a trend that will increase as software engineering 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 View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A hierarchic architecture model for dynamic reconfiguration

    Page(s): 243 - 254
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1116 KB)  

    Dynamic reconfiguration is the ability to modify a parallel or distributed system while it is running. We adopt the framework developed by Kramer et al. (1985) at the system architecture level: changes must occur in a consistent state, which is brought about by “freezing” some system components. The goal is to reduce system disruption, i.e., to minimize: the part of the system to be “frozen”; and the time taken by reconfiguration operations. Towards the first goal we take a connection based approach instead of a component based one. To reduce time, we refine the reconfiguration algorithm by executing changes in parallel as much as possible. Our model also handles hierarchic systems View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Scenario-based hypersequential programming: concept and example

    Page(s): 277 - 283
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (568 KB)  

    Hypersequential programming is a new paradigm of concurrent programming in which the original concurrent program is first serialized, then tested and debugged as a sequential program, and finally restored into the target concurrent program by parallelization. Both high productivity and reliability are achieved by hypersequential programming because testing and debugging are done for the serialized version and correctness of the serialized program is preserved during subsequent parallelization. This paper proposes a practical embodiment of hypersequential programming based on a sequential execution history, called a scenario, and explains how it works using a simple example View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • The Tuple Channel coordination model

    Page(s): 95 - 106
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1016 KB)  

    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. We introduce this coordination model, giving some illustrative examples to show its suitability and expressiveness; some implementation issues are also commented on View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Design and implementation of a content-based image retrieval tool

    Page(s): 304 - 310
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (608 KB)  

    We describe the design and implementation of the Java Automated Image Storage and Retrieval (JAISR) tool, a recording and retrieval system for digital images, based on retrieval by shape similarity. The system has been designed in order to permit the retrieval of the images recorded relying only on an approximate sketch of one of the objects contained in the image searched. It is equipped with a user-friendly graphic interface, can be accessed through the network in a client-server mode, and is totally platform-independent, since it requires only the presence of a Java-enabled browser on the client View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An efficient algorithm for finding all maximal conflict sets in concurrent programs

    Page(s): 39 - 47
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (572 KB)  

    Conflict is one of the fundamental situations that appear in concurrent programs. Conflict occurs when more than one processes share common resources. An occurrence of the action of one process disables actions of other processes which are in conflict. Controlling conflicts is very important in concurrent programming, especially for rule-based programming. We can find all conflicts by generating the state space, but largeness of the state space make this difficult. In this paper, we show an efficient algorithm to find all maximal conflict sets in concurrent programs. The proposed algorithm is based on partial order methods, and generates a reduced state space that preserves all maximal conflict sets View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Reusing software architectures: a formal basis

    Page(s): 256 - 262
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (644 KB)  

    The research topic of software architectures is increasing its importance, as software systems become more and more complex, difficult to understand, and too expensive to design from scratch. It is becoming clear that it is possible to reuse and adapt already existing software architectures, if adequate techniques are applied during the development process. We discuss how a method based on a formal design notation supports specification, design, verification, and especially reuse of a software architecture. Our method consists of analyzing a formal specification written in Z to produce a formal design document written in Larch. The use of two different formal notations allows us to exploit specific techniques and tools to help a designer in reasoning on and verifying properties and features of a software architecture document. To validate our approach we present a formal treatment of a software architecture which has been reused in real development processes View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Seuss: what the doctor ordered

    Page(s): 284 - 290
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (616 KB)  

    Reconciling the conflicting goals of simplicity and efficiency has traditionally been a major challenge in the development of concurrent programs. Seuss (see J. Misra, ftp://ftp.cs.utexas.edu/pub/psp/seuss/discipline.ps.Z) is a methodology for concurrent programming that attempts to achieve the right balance between these competing concerns. The goal of Seuss is to permit a disentanglement of the issues of correctness and efficiency. On the one hand, programmers can reason about Seuss programs by assuming a single thread of control; on the other hand, implementation designers can exploit design knowledge in achieving better performance. This paper provides a short overview of the Seuss programming model and describes the main challenges in designing an efficient implementation of Seuss and in applying Seuss to large applications View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An automated algorithmic recognition technique to support parallel software development

    Page(s): 120 - 129
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (876 KB)  

    Techniques for automatic program recognition, at the algorithmic level, could be of great interest in the area of program parallelization, because the selection of suitable parallelization strategies is driven by algorithmic features of the code. A technique for the specification and automatic recognition of algorithmic concepts is presented. Its flexibility and expressivity power for specifying the hierarchy, the constraints and the relationships among concepts allow it to deal with recognition of algorithmic concepts within optimized code, irregular computations, and in the presence of code sharing, delocalization, implementation variations and other problems related to program recognition in the context of the imperative languages typically used for scientific computation View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Formalizing a design technique for distributed programs

    Page(s): 150 - 159
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (764 KB)  

    ADL-d is a graphical design technique for parallel and distributed software, in which communication modeling plays a central part. Recently the authors have used formal methods to define ADL-d's semantics. The original objective was to provide well-defined guidelines for future implementations of ADL-d's communication constructs, but, as it turned out, significant feedback resulted to the notation itself. They give an outline of the ADL-d notation and its intuitive semantics. They also introduce the formal semantics, and discuss what impact this formalization has had on the original notation View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • OPENPRESS-open distributed assessment platform for still image compression schemes

    Page(s): 297 - 303
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (828 KB)  

    Performance comparison between image compression methods is an activity difficult to realise because of the few standard environments for validation. The objective of this paper is to present OPENPRESS as a single open platform for validation allowing the integration of most of the current and future image compression methods, to facilitate their comparison and validation on a common and coherent set of reference images. Another goal of OPENPRESS is to ensure a broad distribution of these compression methods to the potential users. For that purpose, the proposed environment involves advanced computer science techniques like distributed computing, platform-independent software engineering, client/server decomposition, etc View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Automatic template generation for solving n2-problems on parallel systems with arbitrary topology

    Page(s): 130 - 138
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (580 KB)  

    The authors consider the automatic generation of parallel templates as basis for the implementation of n2-problem solvers on parallel systems. The automatic template generator relies on the embedding of a virtual systolic loop on the given machine's network and optimizes hyper-systolic data communication by means of simulated annealing techniques. They have generated a parallel template to efficiently program an n-body code on the parallel SIMD system Quadrics View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Non-stop monitoring and debugging on shared-memory multiprocessors

    Page(s): 263 - 269
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (740 KB)  

    Monitoring and debugging parallel programs is a difficult activity. There are many situations where the traditional “stop the world, I want to get off” approach to debugging is simply unsuitable. Frequently, nonintrusive monitoring of the program execution is more productive in locating sources of error and also in monitoring “correct” programs for such purposes as performance measurement and tuning. This paper presents a number of space- and time-efficient tools and techniques to support nonintrusive, non-stop monitoring and debugging of parallel programs running on a shared-memory multiprocessor. The techniques include the use of spy tasks, circular history buffers, vectors of use bits, and data structure audits. Particular emphasis is placed on issues that pertain to parallel computing, such as dealing with concurrent execution, shared memory and data caches View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Hierarchical optimization of parallel applications

    Page(s): 222 - 233
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (876 KB)  

    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 View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Reachability testing of asynchronous message-passing programs

    Page(s): 50 - 61
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (952 KB)  

    An execution of a message-passing program P with input X exercises a sequence of send and receive events, called a send-receive sequence (or SR-sequence). Assume that every execution of P with input X terminates. Reachability testing of P with input X is to execute all possible SR-sequences of P with input X. To perform reachability testing of P with input X, we first execute P with input X to collect one or more SR-sequences. For each collected SR-sequence, we identify its race conditions and derive its race-variants by modifying the outcome of race conditions. These race-variants are prefixes of other SR-sequences of P with input X. We use these race-variants to force P with input X to produce additional SR-sequences. By repeating this process, we eventually collect all possible SR-sequences of P with input X and thus can determine the correctness of P with input X. In this paper, we show derivation of race-variants of SR-sequences based on asynchronous communication and give an algorithm for reachability testing of asynchronous message-passing programs View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Modeling of advanced tasking in Ada-95: a Petri net perspective

    Page(s): 4 - 14
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (748 KB)  

    The Ada language has been designed to support development of concurrent and distributed software. While the Ada-83 standard defined the basic mechanisms of rendezvous-based tasking, the Ada-95 standard significantly extended this capability with the introduction of several advanced tasking constructs. We present and discuss formal models of these key tasking constructs using the Petri net model. The new constructs considered are the asynchronous transfer of control, protected objects, and the requeue statement. By modeling these advanced Ada tasking constructs with Petri nets, we obtain “executable” models of the constructs that are complementary to earlier work in net-based modeling of Ada tasking, both in terms of defining precise behavior for tasking semantics, and also in terms of providing support for automated analysis of concurrent software View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Scheduling of parallel processing systems based on algorithmic skeletons

    Page(s): 234 - 242
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (824 KB)  

    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 View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Parallel implementations of combinations of broadcast, reduction and scan

    Page(s): 108 - 119
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (792 KB)  

    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 View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Integrating library modules into special purpose parallel algorithms

    Page(s): 162 - 173
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1128 KB)  

    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. The authors 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 not 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. They 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 dataflow graphs that can be used to determine data distributions for the library modules such that a minimal global execution time results View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Concurrency in object oriented language Actel

    Page(s): 291 - 296
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (480 KB)  

    This paper presents features of an object based concurrent language called Actel. In particular, it introduces the mechanisms of inter and intra-object concurrency and synchronisation. Inter object concurrency is achieved with conventional message passing (value and priority) and also with a new mode of message passing called the semi-reference. Intra-object concurrency may be achieved with parallel functions, parallel compound statements, simultaneous compound statement, and multiple methods invocation. Synchronisation may be achieved with simple, multiple, or overloaded future variables. An example illustrates various Actel features View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Specifying parallel and distributed systems in Object-Z: the lift case study

    Page(s): 140 - 149
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (712 KB)  

    There has been an increasing emphasis on formality in software system specification in the last few years. A number of standards bodies are recommending the use of formal notations for specifying software systems. Parallel and distributed systems have their own complex features such as: the concurrent interactions between various system components; the reactive nature of the systems; various message passing schemes between system components. Object-Z is an extension to the Z language specifically to facilitate specification in an object-oriented style. Because parallel and distributed systems are typically complex systems, the extra structuring afforded by the various Object-Z modelling constructs (i.e. the class, object containment constructs, and various composite operation expressions) enables the various hierarchical relationships and the communication between system components to be succinctly specified. Object-Z history invariants allow system temporal properties to be specified as well. The use of Object-Z in the specification of parallel and distributed systems is demonstrated by presenting a case study based on a multi-lift system. To enhance the understandability of the formal model, OMT notation is used to grasp the static structure of the system, and a finite state machine diagram is used to highlight the system behaviour View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A graphical programming environment for message passing programs

    Page(s): 210 - 219
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1020 KB)  

    A number of MP interfaces are available today but one of the most popular is the PVM software package. PVM permits the user to configure his own virtual computer by hooking together a heterogeneous collection of UNIX based machines on which the user has a valid login and which are accessible over some network. To provide high-level graphical support for PVM based program development, an integrated programming environment (GRADE) is being developed. GRADE currently provides tools to construct, execute, debug, monitor and visualise message-passing based parallel programs. GRADE offers the programmer the same graphical user interface during the whole development process and high-level graphical programming abstraction mechanisms to construct parallel applications View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Prototype-oriented development of high-performance systems

    Page(s): 74 - 83
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1512 KB)  

    We discuss the problem of developing performance-oriented software and the need for methodologies. We then present the EDPEPPS (Environment for Design and Performance Evaluation of Portable Parallel Software) approach to the problem of designing and evaluating high-performance (parallel) applications. The EDPEPPS toolset is based on a rapid prototyping philosophy, where the designer synthesises a model of the intended software which may be simulated, and the performance is subsequently analysed using visualisation. The toolset combines a graphical design tool, a simulation facility, and a visualisation tool. The same design is used to produce a code suitable for simulation and real execution View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.