Research

 

CSI ]   [ ETH ]


Lab Manager ]

LST Home ]     [ People ]     [ Research ]     [ Teaching ]
[ Publications ]     [ Research Opportunities ]     [ Partners & Supporters ]     [ Earlier Work ]

Adaptive Parallelism in Distributed Shared Memory Environments

Alex Scherer,  Adaptive Parallelism in Distributed Shared Memory Environments , Swiss Federal Institute of Technology, ETH Zuerich. (Diss. ETH No. 14165), May 2001. [DISS_ETH_14165.pdf  DISS_ETH_14165.pdf.gz  DISS_ETH_14165.ps  DISS_ETH_14165.ps.gz]
Workstations in networks of workstations (NOWs) are sometimes little used, especially in multi-user environments. Employing their compute power for parallel processing when not used otherwise is an attractive venture, if a practical means to do so can be found. In non-dedicated NOW environments, individual machines become available or unavailable as the workstation "owner" goes away or returns, so the desired parallel processing system must be able to adapt to a continually changing pool of available nodes. Such adaptations should be transparent, allowing the user to program in a relatively standard way, without requiring special-purpose code in the application. In dedicated NOW environments, adaptation permits the job mix to be changed easily. This dissertation claims to demonstrate that attractive solutions for such adaptive parallel processing are feasible, fulfilling the above requirements. To this end, the dissertation presents the design, implementation and evaluation of a system running on standard networked workstations. Another part of the work shows how adaptations occur transparently for the applications, such that application programmers are not burdened by new programming models. As a basis for the practical work, a state-of-the-art software distributed shared memory (DSM) runtime system was employed, and this system was augmented to support adaptivity. As a programming model, the OpenMP standard was chosen, because it provides for simplified and standardized parallel programming, and it is becoming widely accepted in the shared memory programming community. OpenMP frees the programmer from having to deal with lower-level issues such as the number of nodes being used, the iteration or data partitioning, or the communication of data between nodes. These properties at the same time allow for transparent adaptive parallelism, as the system alone can handle the number of processes, without intervention from the application, so standard OpenMP applications generally need no code changes to support adaptivity. The work presented supports data parallel and task parallel OpenMP applications, thereby including a large class of parallel programming styles. No code is added to data parallel applications specifically to obtain adaptivity, whereas task parallel applications need one minor code change for this, an extra function call at task boundaries. Often, this code modification can be done automatically by a preprocessor. Performance results show how adaptivity only adds little overhead, and the sources of such costs are evaluated in detail. A system such as the one presented therefore enables otherwise-idle workstations in NOW environments to perform parallel processing with attractive performance while not disturbing any other potential users.
[ Publications ]     [ Research Opportunities ]     [ Partners & Supporters ]     [ Earlier Work ]