Off-campus UNL users: To download campus access dissertations, please use the following link to log into our proxy server with your NU ID and password. When you are done browsing please remember to return to this page and log out.

Non-UNL users: Please talk to your librarian about requesting this dissertation through interlibrary loan.

A software pipeline approach to distributed programming

Paul Howard Kenyon, University of Nebraska - Lincoln

Abstract

Many problems currently require more processor throughput than can be achieved with current single-processor systems. Applications for these problems reach high performance through parallelism, which has taken the form of data and algorithmic partitioning. Data parallelism is achieved by partitioning the data set across several processors, while algorithmic partitioning requires that the algorithm be decomposed into steps. This work presents a programming notation for pipelines expressing data and algorithmic partitioning. This notation hides the details of communication between and scheduling of stages, and allows high-level expression at the application program level. The notation's semantics have been chosen so that they may be accurately implemented in the sequential as well as the parallel case. Porting the system to a parallel environment requires a one-time investment of systems programming effort, after which application pipelines can be moved easily between supported systems. Software development in the distributed environment is a tedious task because of the difficulty of gathering accurate data on sources of errors and performance. An alternative is proposed that allows the bulk of the work to be carried out by emulating the pipeline on a sequential platform. This sequential emulator allows the programming and debugging of application programs in the familiar workstation environment with mature software development tools. The data collected during sequential emulation determines the parameters of an analysis aimed at estimating the pipeline performance. This analysis can be used to identify any bottlenecks that limit the performance. Often the bottleneck stage(s) can be refined into a finer sub-pipeline to yield performance improvements. A new bottleneck might be revealed by the analysis for the modified pipeline. Thus, an iterative improvement of the initial design, with diminishing returns, becomes possible through sequential emulation. An implementation of supporting libraries and object classes on a multiprocessor allows the parallel execution of pipelined programs. Such implementation on a shared memory system served to verify its usefulness in supporting parallel program development and performance estimation. It led to discrepancies between the predicted performance and actual parallel behavior. These discrepancies were examined and a more accurate representation of the communication overheads was established.

Subject Area

Computer science|Systems design

Recommended Citation

Kenyon, Paul Howard, "A software pipeline approach to distributed programming" (1995). ETD collection for University of Nebraska-Lincoln. AAI9614989.
https://digitalcommons.unl.edu/dissertations/AAI9614989

Share

COinS