Fast Three-Valued Abstract Bit-Vector Arithmetic

Author(s):  
Jan Onderka ◽  
Stefan Ratschan
Keyword(s):  
1998 ◽  
Author(s):  
Clark W. Barrett ◽  
David L. Dill ◽  
Jeremy R. Levitt

Author(s):  
Mohammad Mehdi Pourhashem Kallehbasti ◽  
Matteo Giovanni Rossi ◽  
Luciano Baresi
Keyword(s):  

Author(s):  
Raymond Greenlaw ◽  
H. James Hoover ◽  
Walter L. Ruzzo

Before we can discuss the difficulty of solving a problem, we must first choose a suitable machine model in which to describe our computations. A machine model is a parameterized description of a class of machines. Each machine in the class is obtained from the model by giving specific values for the parameters. For example, a Turing machine is specified by giving the number of work tapes, symbol set, and program. The choice of model that we make depends on how we wish to balance such factors as simplicity, generality, historical use, novelty, plausibility of actual implementation, and ease of programming. This flexibility inevitably leads to a proliferation of different models, and parallel computation is no exception to this tendency toward diversity. The menagerie of parallel models includes bit vector machines (Pratt and Stockmeyer [293]), Boolean circuits (Borodin [40]), parallel random access machines, or PRAMs (Fortune and Wyllie [109], Goldschlager [126]), k-PRAMs (Savitch and Stimson [323]), alternating Turing machines (Chandra, Kozen, and Stockmeyer [49]), parallel pointer machines (Cook and Dymond [68], Dymond [98], Dymond and Cook [99, 100]), aggregates ([98, 99, 100]), conglomerates (Goldschlager [126]), and a large variety of machines based on fixed interconnection networks, such as grids, hypercubes, and shuffle-exchange (see Leighton [228]). Such variety makes it difficult to compare competing models. At the qualitative level, models can be distinguished by their processor granularity and their interconnection pattern. One important distinction among models is in the granularity with which they treat parallel operations. A model can be fine-grained and treat bit operations as the basic unit of parallel computation, or it can be coarsegrained and, for example, treat local sub computations on processors as the fundamental unit. In addition the model can be structured, in which case the machine can only manipulate atomic data objects and cannot access their representations (as bits for example). Another important qualitative difference among models is the nature of the communications between processing elements. Some models allow unrestricted communication between processing elements at any time. Other models require a fixed communication pattern. In some models there is no charge for the communication pathway between elements, in others there is.


Sign in / Sign up

Export Citation Format

Share Document