Accession Number : ADA330964
Title : Semantics-Based Parallel Cost Models and Their Use in Provably Efficient Implementations
Descriptive Note : Doctoral thesis
Corporate Author : CARNEGIE-MELLON UNIV PITTSBURGH PA DEPT OF COMPUTER SCIENCE
Personal Author(s) : Greiner, John
PDF Url : ADA330964
Report Date : 26 APR 1997
Pagination or Media Count : 229
Abstract : Understanding the performance issues of modern programming language execution can be difficult. These languages have abstract features, such as higher-order functions, laziness, and objects, that ease programming, but which make their mapping to the underlying machine more difficult. Understanding parallel languages is further complicated by the need to describe what computations are performed in parallel and how they are affected by communication and latency in the machine. This lack of understanding can obscure even the asymptotic performance of a program and can also hide performance bugs in the language implementation. The dissertation introduces a framework of provably efficient implementations in which performance issues of a language can be defined and analyzed. We define several language models, each consisting of an operational semantics augmented with the costs of execution. In particular, the dissertation examines three functional languages based on fork-and-join parallelism, speculative parallelism, and data-parallelism, and it examines their time and space costs. We then define implementations of each language model onto several common machine models, prove these implementations correct, and derive their costs. Each of these implementations uses an intermediate model based on an abstract machine to stage the overall implementation. The abstract machine executes a series of steps transforming a stack of active states and store into new states and store. The dissertation proves the efficiency of the implementation by relating the steps to the parallel traversal of a computation graph defined in the augmented operational semantics. Provably efficient implementations are useful for programmers, language implementors and language designers.
Descriptors : *PROGRAMMING LANGUAGES, *PARALLEL PROCESSING, *COMPUTER PROGRAM VERIFICATION, ALGORITHMS, COMPUTER COMMUNICATIONS, PERFORMANCE(ENGINEERING), SEMANTICS, COMPUTER ARCHITECTURE, THESES, COMPILERS, EXECUTIVE ROUTINES.
Subject Categories : Computer Programming and Software
Computer Systems Management and Standards
Distribution Statement : APPROVED FOR PUBLIC RELEASE