6 research outputs found

    A Migratable User-Level Process Package for PVM

    Get PDF
    Shared, multi-user, workstation networks are characterized by unpredictable variability in system load. Further, the concept of workstation ownership is typically present. For efficient and unobtrusive computing in such environments, applications must not only overlap their computation with communication but also redistribute their computations adaptively based on changes in workstation availability and load. Managing these issues at application level leads to programs that are difficult to write and debug. In this paper, we present a system that manages this dynamic multi-processor environment while exporting a simple message-based programming model of a dedicated, distributed memory multiprocessor to applications. Programmers are thus insulated from the many complexities of the dynamic environment at the same time are able to achieve the benefits of multi-threading, adaptive load distribution and unobtrusive computing. To support the dedicated multi-processor model efficiently, the system defines a new kind of virtual processor called User-Level Process (ULP) that can be used to implement efficient multi-threading and application-transparent migration. The viability of ULPs is demonstrated through UPVM, a prototype implementation of the PVM message passing interface using ULPs. Typically, existing PVM programs written in Single Program Multiple Data (SPMD) style need only be re-compiled to use this package. The design of the package is presented and the performance analyzed with respect to both micro-benchmarks and some complete PVM applications. Finally, we discuss aspects of the ULP package that affect its portability and its support for heterogeneity, application transparency, and application debugging

    An Evaluation of Adaptive Execution of OpenMP Task Parallel Programs

    Get PDF
    We present a system that allows task parallel OpenMP pro grams to execute on a network of workstations (NOW) with a variable number of nodes Such adaptivity, generally called adaptive parallelism, is important in a multi-user NOW environment, enabling the system to expand the computation onto idle nodes or withdraw from otherwise occupied nodes. We focus on task parallel applications in this paper, but the system also lets data parallel applications run adaptively. When an adaptation is requested, we let all processes complete theircurrent tasks, then the system executes an extra OpenMP join-fork sequence not present in the application code. Here, the system can change the number of nodes without involving the application, as processes do not have a compute-relevant private process state. We show that the costs of adaptations is low, and we explain why the costs are lower for task parallel applications than for data parallel applications

    Transparent Adaptive Parallelism on NOWs using OpenMP

    Get PDF
    We present a system that allows OpenMP programs to execute on a network of workstations with a variable number of nodes. The ability to adapt to a variable number of nodes allows a program to take advantage of additional nodes that become available after it starts execution, or to gracefully scale down when the number of available nodes is reduced. We demonstrate that the cost of adaptation is modest; the system allows a program to adapt at a moderate rate without much performance loss.Two ideas underlie the efficiency of our design. First, we recognize that OpenMP programs exhibit convenient adaptation points during their execution, points at which the cost of adaptation can be much reduced. Second, by allowing a process a certain grace period before it must leave a node, we insure that most adaptations can occur at these adaptation points, and thus at low cost. Migration of a process, a much more expensive method for providing adaptivity, is used only as a back-up solution, when the process cannot reach an adaptation point within the grace period.Our implementation consists of an OpenMP pre-processor that generates TreadMarks distributed shared memory (DSM) programs, and a version of TreadMarks modified to adapt to a variable number of nodes. Using a DSM as the underlying substrate facilitates the data (re-)distribution necessary after an adaptation

    A Migratable User-Level Process Package for PVM

    No full text
    xi 1 Introduction 1 1.1 The case for over-decomposition : : : : : : : : : : : : : : : : : : : : : : : 6 1.2 The case for dynamic and transparent VP migration : : : : : : : : : : : : 9 1.3 The case for supporting process-based, legacy applications : : : : : : : : : 11 1.4 Thesis statement and contribution : : : : : : : : : : : : : : : : : : : : : : 11 1.5 Dissertation organization : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 2 Supporting light-weight, transparently migratable VPs 13 2.1 Common VPs and implementation approaches : : : : : : : : : : : : : : : 13 2.1.1 Process : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 2.1.2 Threads : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 2.1.3 Language-based VPs : : : : : : : : : : : : : : : : : : : : : : : : : : 21 2.2 Our Goals and Requirements for VP systems : : : : : : : : : : : : : : : : 22 2.2.1 Functionality Requirements : : : : : : : : : : : : : : : : : : : : : : 23 2.2.2 Perform..

    i Title: A Migratable User-Level Process Package for PVM Corresponding Author:

    No full text
    Shared, multi-user, workstation networks are characterized by unpredictable variability in system load. Further, the concept of workstation ownership is typically present. For efficient and unobtrusive computing in such environments, applications must not only overlap their computation with communication but also redistribute their computations adaptively based on changes in workstation availability and load. Managing these issues at application level leads to programs that are difficult to write and debug. In this paper, we present a system that manages this dynamic multi-processor environment while exporting a simple message-based programming model of a dedicated, distributed memory multiprocessor to applications. Programmers are thus insulated from the many complexities of the dynamic environment at the same time are able to achieve the benefits of multi-threading, adaptive load distribution and unobtrusive computing. To support the dedicated multi-processor model efficiently, the system defines a new kind of virtual processor called User-Level Process (ULP) that can be used to implement efficient multi-threading and application-transparent migration. The viability of ULPs is demonstrated through UPVM, a prototype implementation of the PVM message passing interface using ULPs. Typically, existing PVM programs written in Single Program Multiple Data (SPMD) style need only be re-compiled to use this package. The design of the package is presented and the performance analyzed with respect to both micro-benchmarks an
    corecore