Allan L. Fisher

dblp:58/4685 · DBLP profile ↗
← Back
20ranked-venue papers
11as first author
0since 2021 · last 2003
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 12 · 7 first-authorSoftware engineering, systems software and programming languages · 7 · 5 first-authorHuman-computer interaction and ubiquitous computing · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 1 · 1 first-authorTheory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
10 papers
Parallel and multicore computing · 48% High-performance computing · 20% Integrated circuit design · 12%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 100%
Theoretical computer science
1 paper
Coding theory · 100%

Topics — the 27 heaviest of 30, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
loop transformation
0.011995
Flattening and Parallelizing Irregular, Recurrent Loop Nests · PPoPP 1995
Parallel and multicore computing
parallelizing compiler
0.011995
Flattening and Parallelizing Irregular, Recurrent Loop Nests · PPoPP 1995
High-performance computing › sparse linear algebra
sparse matrix computation
0.011995
Flattening and Parallelizing Irregular, Recurrent Loop Nests · PPoPP 1995
High-performance computing › sparse linear algebra › sparse matrix computation
sparse matrix-vector multiplication
0.011995
Flattening and Parallelizing Irregular, Recurrent Loop Nests · PPoPP 1995
Compilers and program optimization
parallelization
0.011994
Parallelizing Complex Scans and Reductions · PLDI 1994
Parallel and multicore computing › parallel programming models
automatic parallelization
0.011994
Parallelizing Complex Scans and Reductions · PLDI 1994
Parallel and multicore computing
parallel programming models
0.011994
Parallelizing Complex Scans and Reductions · PLDI 1994
Electronic design automation › hardware verification and test
hardware verification
0.011993
Parametric Circuit Representation Using Inductive Boolean Functions · CAV 1993
Coding theory
boolean functions
0.011993
Parametric Circuit Representation Using Inductive Boolean Functions · CAV 1993
Compilers and program optimization › parallel language compilation
data-parallel compilation
0.011991
Size and Access Inference for Data-Parallel Programs · PLDI 1991
Parallel and multicore computing
data-parallel programming
0.011991
Size and Access Inference for Data-Parallel Programs · PLDI 1991
Integrated circuit design
digital circuit design
0.021993
Synchronizing Large VLSI Processor Arrays · IEEE Trans. Computers 1985
Parametric Circuit Representation Using Inductive Boolean Functions · CAV 1993
Parallel and multicore computing
parallel algorithms
0.011989
Computing the Hough Transform on a Scan Line Array Processor (Image Processing) · IEEE Trans. Pattern Anal. Mach. Intell. 1989
Hardware accelerators and domain-specific architectures
image processing accelerator
0.011986
Scan Line Array Processors for Image Computation · ISCA 1986
Parallel and multicore computing › array processor
scan line array processor
0.011986
Scan Line Array Processors for Image Computation · ISCA 1986
Integrated circuit design › clocking
clock distribution
0.011985
Synchronizing Large VLSI Processor Arrays · IEEE Trans. Computers 1985
Integrated circuit design › clocking
clock skew
0.011985
Synchronizing Large VLSI Processor Arrays · IEEE Trans. Computers 1985
Parallel and multicore computing
synchronization
0.011985
Synchronizing Large VLSI Processor Arrays · IEEE Trans. Computers 1985
Integrated circuit design › VLSI design
VLSI array
0.011985
Synchronizing Large VLSI Processor Arrays · IEEE Trans. Computers 1985
Processor architecture and microarchitecture › parallel computer organization
dictionary machine
0.011984
Dictionary Machines With a Small Number of Processors · ISCA 1984
Processor architecture and microarchitecture
multiprocessor architecture
0.011984
Dictionary Machines With a Small Number of Processors · ISCA 1984
Processor architecture and microarchitecture › special-purpose processor
systolic array processor
0.011983
Architecture of the PSC: A Programmable Systolic Chip · ISCA 1983
Parallel and multicore computing › multiprocessor system
MIMD multiprocessor
0.011991
Size and Access Inference for Data-Parallel Programs · PLDI 1991
Image and video processing › edge detection
line detection
0.011989
Computing the Hough Transform on a Scan Line Array Processor (Image Processing) · IEEE Trans. Pattern Anal. Mach. Intell. 1989
Parallel and multicore computing › array processor
SIMD processor array
0.011986
Scan Line Array Processors for Image Computation · ISCA 1986
Parallel and multicore computing › multiprocessor system
tree-structured multiprocessor
0.011984
Dictionary Machines With a Small Number of Processors · ISCA 1984
Parallel and multicore computing › parallel algorithms › parallel algorithm design
systolic algorithms
0.011983
Architecture of the PSC: A Programmable Systolic Chip · ISCA 1983

Methods — techniques the papers use, named apart from their topics

segmented scan · 0.0segmented reduction · 0.0loop flattening · 0.0functional composition · 0.0closed-form representation · 0.0loop clustering · 0.0epoch partitioning · 0.0compile-time analysis · 0.0parallel algorithm · 0.0inductive boolean functions · 0.0inductive boolean function · 0.0scan line array processor · 0.0SIMD · 0.0
YearPublicationVenuePosition
2003 Developing a Metadata Data Model for the National Health and Nutrition Examination Survey (NHANES)
Lewis E. Berman, Allan L. Fisher, Leighton Evans, Timothy Tilert
AMIA2
2001 Quality Assurance (QC)/Quality Control (QC) Processes for the National Health and Nutrition Examination Survey (NHANES)
Lewis E. Berman, Allan L. Fisher, Yechiam Ostchega, Debra S. Reed-Gillette, Edward L. Stammerjohn
AMIA2
1995 Flattening and Parallelizing Irregular, Recurrent Loop Nests
abstract
Irregular loop nests in which the loop bounds are determined dynamically by indexed arrays are difficult to compile into expressive parallel constructs, such as segmented scans and reductions. In this paper, we describe a suite of transformations to automatically parallelize such irregular loop nests, even in the presence of recurrences. We describe a simple, general loop flattening transformation, along with new optimizations which make it a viable compiler transformation. A robust recurrence parallelization technique is coupled to the loop flattening transformation, allowing parallelization of segmented reductions, scans, and combining-sends over arbitrary associative operators. We discuss the implementation and performance results of the transformations in a parallelizing Fortran 77 compiler for the Cray C90 supercomputer. In particular, we focus on important sparse matrix-vector multiplication kernels, for one of which we are able to automatically derive an algorithm used by one of the fastest library routines available.
Anwar M. Ghuloum, Allan L. Fisher
PPoPP2
1994 Tradeoffs in Canonical Sequential Function Representations
abstract
State space exploration is of prime importance in the study of finite state sequential systems, with several efforts aimed at compact representation of the state space in order to tackle the state explosion problem. In the work presented on formal verification of inductively-defined hardware, we have identified a useful class of Boolean functions called linearly inductive functions (LIFs). We explore the relationship between our LIF representation and the classic DFA (deterministic finite state automaton) representation of a sequential function, and examine the associated tradeoffs. We show that our LIF representation corresponds to a minimal reverse DFA, i.e. a minimal DFA which accepts the language consisting of the reverse input strings, where our implicit method for obtaining an LIF representation does not require explicit construction of a forward DFA. Its practical usefulness arises from our demonstration that reverse DFAs for several datapath circuits are exponentially more compact than the classic forward DFAs. Furthermore, in comparison to the traditional representation of DFAs as state transition diagrams, our LIF representations allow for state-sharing while maintaining decomposition, resulting in memory savings in practice.>
Aarti Gupta, Allan L. Fisher
ICCD2
1994 Parallelizing Complex Scans and Reductions
abstract
We present a method for automatically extracting parallel prefix programs from sequential loops, even in the presence of complicated conditional statements. Rather than searching for associative operators in the loop body directly, the method rests on the observation that functional composition itself is associative. Accordingly, we model the loop body as a multivalued function of multiple parameters, and look for a closed-form representation of arbitrary compositions of loop body instances. Careful analysis of conditionals allows this search to succeed in cases where existing automatic methods fail. The method has been implemented and used to generate code for the iWarp parallel computer.
Allan L. Fisher, Anwar M. Ghuloum
PLDI1
1993 Parametric Circuit Representation Using Inductive Boolean Functions
Aarti Gupta, Allan L. Fisher
CAV2
1993 Representation and symbolic manipulation of linearly inductive Boolean functions
abstract
We consider a class of practically useful Boolean functions, called linearly inductive functions (LIFs), and present a canonical representation as well as algorithms for their automatic symbolic manipulation. LIFs can be used to capture structural induction in parameterized circuit descriptions, whereby our LIF representation provides a fixed-sized representation for all size instances of a circuit. Furthermore, since LIFs can naturally capture the temporal induction inherent in sequential system descriptions, our representation also provides a canonical form for sequential functions. This allows for a wide range of applications of symbolic LIF manipulation in the verification and synthesis of digital systems. We also present practical results from a preliminary implementation of a general purpose LIF package.
Aarti Gupta, Allan L. Fisher
ICCAD2
1992 Teaching empirical performance analysis of parallel programs
abstract
Performance is a central issue in parallel computing. In this paper, we describe our approach to teaching advanced undergraduates and graduate students about the fundamentals of measuring and analyzing the performance of programs running on a variety of parallel machines. This approach can be applied to virtually any type of parallel machine, as well as to parallel program simulators. Although performance analysis can serve many purposes, we focus on the needs of the parallel programmer: understanding the behavior of algorithms and programs, and making informed choices among them.
Allan L. Fisher, Thomas R. Gross
SIGCSE1
1991 Size and Access Inference for Data-Parallel Programs
abstract
Abstract: "Data-parallel programming languages have many desirable features, such as single-thread semantics and the ability to express fine-grained parallelism. However, it is challenging to implement such languages efficiently on conventional MIMD multiprocessors, because these machines incur a high overhead for small grain sizes. This paper presents compile-time analysis techniques for data-parallel program graphs that reduce these overheads in two ways: by stepping up the grain size, and by relaxing the synchronous nature of the computation without altering the program semantics.The algorithms partition the program graph into clusters of nodes such that all nodes in a cluster have the same loop structure, and futher refine these clusters into epochs based on generation and consumption patterns of data vectors. This converts the fine-grain parallelism in the original program to medium-grain loop parallelism, which is better suited to MIMD machines. A compiler has been implemented based on these ideas. We present performance results for data-parallel kernels analyzed by the compiler and converted to single-program multiple-data (SPMD) code running on an Encore Multimax."
Siddhartha Chatterjee, Guy E. Blelloch, Allan L. Fisher
PLDI3
1991 Teaching the programming of parallel computers
abstract
Parallel computers are becoming increasingly important for scientists and engineers in a wide range of disciplines.However, most undergraduate students rarely have the opportunity to program a parallel computer.Furthermore, the field of parallel computers is rapidly
Allan L. Fisher, Thomas R. Gross
SIGCSE1
1990 Flexible Parallel Polygon Rendering
Aarti Gupta, Allan L. Fisher
ICPP (3)2
1989 Verifying pipelined hardware using symbolic logic simulation
abstract
A method is presented for automated verification of synchronous pipelined circuits, based on symbolic simulation and the well-known program verification concept of representation functions. The use of representation functions to allow straightforward formulation of readable and intuitive specifications is demonstrated, along with the use of a symbolic switch-level simulator to automatically prove that a circuit meets its specification. As an example, a systolic stack with more than 5000 transistors can be formally verified in a few minutes on a VAX 8800.>
Soumitra Bose, Allan L. Fisher
ICCD2
1989 Computing the Hough Transform on a Scan Line Array Processor (Image Processing)
abstract
A parallel algorithm for a line-finding Hough transform that runs on a linearly connected, SIMD (single-instruction, multiple-data-stream) vector of processors is described. The authors show that a high-precision transform, usually considered to be an expensive global operation, can be performed efficiently, in two to three times real time, with only local, communication on a long vector. The algorithm also illustrates a decomposition principle that has wide application in algorithm design for large linear arrays. A review of straight-line Hough transform implementations is also presented.>
Allan L. Fisher, Peter Highnam
IEEE Trans. Pattern Anal. Mach. Intell.1
1988 Communication and code optimization in SIMD programs
Allan L. Fisher, Peter Highnam
ICPP (2)1
1986 Scan Line Array Processors for Image Computation
abstract
This paper describes the scan line array processor (SLAP), a new architecture designed for high-performance yet low-cost image computation. A SLAP is a SIMD linear array of processors, and hence is easy to build and scales well with VLSI technology; yet appropriate special features and programming techniques make it efficient for a surprisingly wide variety of low and medium level computer vision tasks. We describe the basic SLAP concept and some of its variants, discuss a particular planned implementation, and indicate its performance on computer vision and other applications.
Allan L. Fisher
ISCA1
1985 Memory and Modularity in Systolic Array Implementations
Allan L. Fisher
ICPP1
1985 Synchronizing Large VLSI Processor Arrays
abstract
Highly parallel VLSI computing structures consist of many processing elements operating simultaneously. In order for such processing elements to communicate among themselves, some provision must be made for synchronization of data transfer. The simplest means of synchronization is the use of a global clock. Unfortunately, large clocked systems can be difficult to implement because of the inevitable problem of clock skews and delays, which can be especially acute in VLSI systems as feature sizes shrink. For the near term, good engineering and technology improvements can be expected to maintain the feasibility of clocking in such systems; however, clock distribution problems crop up in any technology as systems grow. An alternative means of enforcing necessary synchronization is the use of self-timed asynchronous schemes, at the cost of increased design complexity and hardware cost. Realizing that different circumstances call for different synchronization methods, this paper provides a spectrum of synchronization models; based on the assumptions made for each model, theoretical lower bounds on clock skew are derived, and appropriate or best possible synchronization schemes for large processor arrays are proposed.
Allan L. Fisher, H. T. Kung 0001
IEEE Trans. Computers1
1984 Dictionary Machines With a Small Number of Processors
abstract
A number of tree-structured multiprocessor designs have been proposed for performing a group of dictionary operations (INSERT, DELETE, EXTRACTMIN, NEAR, etc.) on a set of keys. These designs typically use one processor for each key stored and operate with constant throughput, assuming unit time to communicate and compare keys. This assumption breaks down in applications with long keys. This paper describes a machine which uses a number of processors proportional to the maximum length of a key to achieve constant throughput, regardless of key length. This design has important practical advantages over the family of tree-structured machines, and demonstrates that processor-intensive VLSI structures are not always the best route to a high-performance system.
Allan L. Fisher
ISCA1
1983 Synchronizing Large VLSI Processor Arrays
abstract
Highly parallel VLSI computing structures consist of many processing elements operating simultaneously. In order for such processing elements to communicate among themselves, some provision must be made for synchronization of data transfer. The simplest means of synchronization is the use of a global clock. Unfortunately, large clocked systems can be difficult to implement because of the inevitable problem of clock skews and delays, which can be especially acute in VLSI systems as feature sizes shrink. For the near term, good engineering and technology improvements can be expected to maintain the feasibility of clocking in such systems; however, clock distribution problems crop up in any technology as systems grow. An alternative means of enforcing necessary synchronization is the use of self-timed, asynchronous schemes, at the cost of increased design complexity and hardware cost. Realizing that different circumstances call for different synchronization methods, this paper provides a spectrum of synchronization models; based on the assumptions made for each model, theoretical lower bounds on clock skew are derived, and appropriate or best-possible synchronization schemes for large processor arrays are proposed. One set of models is based on assumptions that allow the use of a pipelined clocking scheme, where more than one clock event is propagated at a time. In this case, it is shown that even assuming that physical variations along clock lines can produce skews between wires of the same length, any one-dimensional processor array can be correctly synchronized by a global pipelined clock while enjoying desirable properties such as modularity, expandability and robustness. This result cannot be extended to two-dimensional arrays, however—the paper shows that under this assumption, it is impossible to run a clock such that the maximum clock skew between two communicating cells will be bounded by a constant as systems grow. For such cases or where pipelined clocking is unworkable, a synchronization scheme incorporating both clocked and “asynchronous” elements is proposed.
Allan L. Fisher, H. T. Kung 0001
ISCA1
1983 Architecture of the PSC: A Programmable Systolic Chip
abstract
In recent years, many systolic algorithms have been proposed as solutions to computationally demanding problems in signal and image processing and other areas. Such algorithms exploit the regularity and parallelism of problems to achieve high performance and low I/O requirements. Since systolic algorithms generally consist of a few types of simple processors, or systolic cells, connected in a regular pattern, they are less expensive to design and implement than more general machines.
Allan L. Fisher, H. T. Kung 0001, Louis Monier, Yasunori Dohi
ISCA1