Masters Theses

Date of Award

8-1995

Degree Type

Thesis

Degree Name

Master of Science

Major

Computer Science

Major Professor

Micah Beck

Committee Members

Bradley Vander Zanden, Michael W. Berry

Abstract

This thesis introduces a set of programming tools based on the low-level optimization technique of microvector programming used for the high performance implementation of certain applications. A microvector is an array of small data items or bit fields packed into a single word so that memory fetches and certain arithmetic operations can be performed in all of its fields in parallel. In some cases, an improvement in the performance of the memory hierarchy is also obtained by reducing the data space. However, working at the bit-level is not a pleasant environment for the high level programmer. For that purpose, this thesis also presents a set of high-level programming tools for microvectorization. These tools are:

  • libuvec, a C library that supports handling and operating with microvectors,
  • VectorC, an extension to ANSI C for the high-level description of vector variables and vector operations, and
  • vpp, a vector preprocessor that performs the translation of VectorC source code to the libuvec library.
With VectorC, the user is presented with a high-level programming environment in which to declare vector variables and express vector operations. The preprocessor vpp then performs a series of program analysis and transformations to generate the appropriate microvectorized code and libuvec calls. In most cases, the performance results obtained with this optimization are superior to those obtained with most scalar optimizations. The class of applications where these tools have been tested corresponds to the area of Cellular Automata. The inherently data-parallel nature of these simulations makes them perfect candidates for microvectorization. We believe that the software framework presented here can also be generalized to a much wider class of applications not considered in this the-sis. In general, applications which are data parallel consisting of basic arithmetic operations and conditionals performed on limited range values can benefit from microvectorization.

Files over 3MB may be slow to open. For best results, right-click and select "save as..."

Share

COinS