UBC Theses and Dissertations
Unified language and operating system support for parallel processing Acton, Donald William
The programming of parallel and distributed applications is difficult. The proliferation of net works of workstations, combined with the advent of shared memory-machines for desktop and office use, is making parallel and distributed environments more commonplace. And, there is an increasing demand for general purpose applications to be able to make use of these extra processing resources. This thesis explores the adding of language and system support for general purpose parallel and distributed programming to the object-oriented language and system Raven. The system is targeted for operation in shared-memory and distributed-memory environments where the processors are general purpose and execute their own independent instruction streams. Support for parallelism forms a fundamental part of Raven. To simplify the creation of parallelism Raven introduces the concepts of class-based and user-based parallelism. Class-based parallelism is parallelism created within a class and it is realized through early and delayed result. User-based parallelism results through the use of a class and is realized through companions and certificates. Raven also supplies automatic concurrency control, even across machine boundaries. Concurrency control is attached to an object through the more general property mechanism. Properties are a new way of supplying system services to objects on an individual object basis. Raven also introduces the notion of invoke streams which are a way for a third party to sequence invocation requests targeted at the same object. To demonstrate the viability of these ideas, an extensive implementation was performed. Raven runs on several different machines and operating systems including a 20 processor shared-memory machine. To demonstrate the usability of the parallel constructs, and the efficiency of the implementation, several parallel applications were written and performance measurements made. Included are implementations on shared-memory and distributed-memory machines that are identical except for a few lines of code specifying the system configuration. A distributed mail system is also presented to highlight the support for writing distributed applications.
Item Citations and Data