Tailoring software for multiple processor systems

Karsten Schwan · 1985

Multiple processor systems are becoming increasingly common. However, their use remains difficult due to a lack of knowledge concerning the development of parallel application programs. In addition, contrary to popular predictions of cheap and plenty resources, efficient management of distributed processor and memory resources remains of critical importance to the successful use of these systems. The contributions of this thesis are twofold. First, we design and implement a programming environment for multiple processor applications, called the TASK system. Second, we discuss the integration of policies and mechanisms for resource management into the TASK system. In TASK, application programs are written in terms of the abstractions offered by the operating system used for program execution. As a result, once an application program is written, its execution requires few additional efforts by the application's programmer. Programs are written in two languages. The TASK language, designed and implemented as part of this thesis, is used to describe the logical structure of an application program, and an existing, algorithmic language is employed to implement the application's algorithms. The construction of an executable version of an application from the TASK and algorithmic language programs is automated. Such construction includes automatic linking and loading as well as the automatic allocation of resources to the individual components of the application program. Programmers guide the allocation of hardware resources to program components by stating high-level directives in TASK programs. To identify suitable directives and to develop procedures that automatically perform resource allocation based on these directives, we develop a model of multiple processor software and hardware, called the proximity model. The model, the directives, and the resource allocation procedures are tested by experimentation with application programs on the Cm* multiprocessor.

Read the paper · More papers on PaperTik