David S. Wise

dblp:56/4545 · DBLP profile ↗
← Back
29ranked-venue papers
13as first author
0since 2021 · last 2008
—ORCID · none

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

Systems, architecture and hardware · 10 · 5 first-authorTheory of computation · 10 · 5 first-authorSoftware engineering, systems software and programming languages · 9 · 3 first-authorDatabases, data management, data science and information retrieval · 5 · 2 first-author

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
5 papers
High-performance computing · 52% Memory systems · 45% Parallel and multicore computing · 3%
Theoretical computer science
2 papers
Computational geometry · 50% Coding theory · 50% Automata and formal languages · 0%
Computer graphics and multimedia
1 paper
Geometric modeling and processing · 100%
Software engineering, system software, and programming languages
5 papers
Programming languages and type systems · 47% Program analysis · 25% Runtime systems and virtual machines · 16%

Topics — the 22 heaviest of 24, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Coding theory › source coding › variable-length codes
integer encoding
0.112008
Converting to and from Dilated Integers · IEEE Trans. Computers 2008
Computational geometry › fractal geometry
space-filling curves
0.112008
Converting to and from Dilated Integers · IEEE Trans. Computers 2008
Memory systems › cache
cache-oblivious algorithms
0.122003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
High-performance computing › numerical linear algebra
dense linear algebra
0.122003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
High-performance computing › numerical linear algebra
matrix factorization
0.012003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
High-performance computing › numerical linear algebra › matrix factorization
QR factorization
0.012003
Factorization with morton-ordered quadtree matrices for memory re-use and parallelism · PPoPP 2003
Memory systems › data locality
cache locality
0.012001
Language support for Morton-order matrices · PPoPP 2001
Memory systems
memory hierarchy
0.012001
Language support for Morton-order matrices · PPoPP 2001
Geometric modeling and processing › spatial data structures
spatial indexing
0.012008
Converting to and from Dilated Integers · IEEE Trans. Computers 2008
High-performance computing › numerical linear algebra
matrix multiplication
0.011997
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
Memory systems › memory hierarchy
memory hierarchy optimization
0.011997
Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code · PPoPP 1997
Programming languages and type systems
functional programming
0.021987
Compiling Strictness into Streams · POPL 1987
CONS Should Not Evaluate its Arguments · ICALP 1976
Program analysis › static analysis › abstract interpretation
strictness analysis
0.011987
Compiling Strictness into Streams · POPL 1987
Programming languages and type systems › functional programming
applicative programming
0.011980
An Indeterminate Constructor for Applicative Programming · POPL 1980
Concurrent programming › concurrent processes
parallel processes
0.011980
An Indeterminate Constructor for Applicative Programming · POPL 1980
Runtime systems and virtual machines › garbage collection
compaction
0.011979
Morris's Garbage Compaction Algorithm Restores Reference Counts · ACM Trans. Program. Lang. Syst. 1979
Runtime systems and virtual machines
garbage collection
0.011979
Morris's Garbage Compaction Algorithm Restores Reference Counts · ACM Trans. Program. Lang. Syst. 1979
Parallel and multicore computing
parallel programming models
0.011978
Aspects of Applicative Programming for Parallel Processing · IEEE Trans. Computers 1978
Programming languages and type systems
evaluation strategies
0.011976
CONS Should Not Evaluate its Arguments · ICALP 1976
Programming languages and type systems
lazy evaluation
0.011976
CONS Should Not Evaluate its Arguments · ICALP 1976
Automata and formal languages
parsing
0.011971
Domolki's Algorithm Applied to Generalized Overlap Resolvable Grammars · STOC 1971
Compilers and program optimization
parallelizing compiler
0.011978
Aspects of Applicative Programming for Parallel Processing · IEEE Trans. Computers 1978

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

table lookup · 0.2d-ary recurrences · 0.2morton-order storage · 0.0givens rotations · 0.0divide-and-conquer · 0.0space-filling curves · 0.0quaternary trees · 0.0recursive algorithm · 0.0loop unrolling · 0.0stream compilation · 0.0suspension-based evaluation · 0.0recursion elimination · 0.0
YearPublicationVenuePosition
2008 Converting to and from Dilated Integers
abstract
Dilated integers form an ordered group of the Cartesian indices into a d-dimensional array represented in the Morton order. Efficient implementations of its operations can be found elsewhere. This paper offers efficient casting (type)conversions to and from an ordinary integer representation. As the Morton order representation for 2D and 3D arrays attracts more users because of its excellent block locality, the efficiency of these conversions becomes important. They are essential for programmers who would use Cartesian indexing there. Two algorithms for each casting conversion are presented here, including to-and-from dilated integers for both d = 2 and d = 3. They fall into two families. One family uses newly compact table lookup, so the cache capacity is better preserved. The other generalizes better to all d, using processor-local arithmetic that is newly presented as abstract d-ary and (d - 1)-ary recurrences. Test results for two and three dimensions generally favor the former.
Rajeev Raman, David S. Wise
IEEE Trans. Computers2
2007 Representation-transparent matrix algorithms with scalable performance
abstract
Positive results from new object-oriented tools for scientific programming are reported. Using template classes, abstractions of matrix representations are available that subsume conventional row-major, column-major, either Z- or И-Morton-order, as well as block-wise combinations of these. Moreover, the design of the Matrix Template Library (MTL) has been independently extended to provide recursators, to support block-recursive algorithms, supplementing MTL's iterators. Data types modeling both concepts enable the programmer to implement both iterative and recursive algorithms (or even both) on all of the aforementioned matrix representations at once for a wide family of important scientific operations.
Peter Gottschling, David S. Wise, Michael D. Adams 0001
ICS2
2005 A Paradigm for Parallel Matrix Algorithms:
David S. Wise, Craig Citro, Joshua Hursey, Michael Rainey
Euro-Par1
2003 Factorization with morton-ordered quadtree matrices for memory re-use and parallelism
abstract
Quadtree matrices using Morton-order storage provide natural blocking on every level of a memory hierarchy. Writing the natural recursive algorithms to take advantage of this blocking results in code that honors the memory hierarchy without the need for transforming the code. Furthermore, the divide-and-conquer algorithm breaks problems down into independent computations. These independent computations can be dispatched in parallel for straightforward parallel processing.Proof-of-concept is given by an algorithm for QR factorization based on Givens rotations for quadtree matrices in Morton-order storage. The algorithms deliver positive results, competing with and even beating the LAPACK equivalent.
Jeremy D. Frens, David S. Wise
PPoPP2
2001 Language support for Morton-order matrices
abstract
The uniform representation of 2-dimensional arrays serially in Morton order (or {\eee} order) supports both their iterative scan with cartesian indices and their divide-and-conquer manipulation as quaternary trees. This data structure is important because it relaxes serious problems of locality and latency, and the tree helps to schedule multi-processing. Results here show how it facilitates algorithms that avoid cache misses and page faults at all levels in hierarchical memory, independently of a specific runtime environment.
David S. Wise, Jeremy D. Frens, Yuhong Gu, Gregory A. Alexander
PPoPP1
2000 Ahnentafel Indexing into Morton-Ordered Arrays, or Matrix Locality for Free
David S. Wise
Euro-Par1
1999 Undulant-Block Elimination and Integer-Preserving Matrix Inversion
David S. Wise
Sci. Comput. Program.1
1998 One-Bit Counts between Unique and Sticky
abstract
Stoye's one-bit reference tagging scheme can be extended to local counts of two or more via two strategies. The first, suited to pure register transactions, is a cache of referents to two shared references. The analog of Deutsch's and Bobrow's multiple-reference table, this cache is sufficient to manage small counts across successive assignment statements. Thus, accurate reference counts above one can be tracked for short intervals, like those bridging one function 's environment to its successor's. The second, motivated by runtime stacks that duplicate references, avoids counting any references from the stack. It requires a local pointer-inversion protocol in the mutator, but one still local to the referent and the stack frame. Thus, an accurate reference count of one can be maintained regardless of references from the recursion stack. CCS categories and Subject Descriptors: D.4.2 [Storage Management]: Allocation/Deallocation strategies; E.2 [Data Storage Representations]: Linked re...
David J. Roth, David S. Wise
ISMM2
1997 Auto-blocking Matrix-Multiplication or Tracking BLAS3 Performance with Source Code
abstract
An elementary, machine-independent, recursive algorithm for matrix multiplication C+=A*B provides implicit blocking at every level of the memory hierarchy and tests out faster than classically optimrd code, tracking hand-coded BLAS3 routines. Proof of concept is demonstrated by racing the in-place algorithm against manufacturer's hand-tuned BLAS3 routines; it can win.The recursive code bifurcates naturally at the top level into independent block-oriented processes, that each writes to a disjoint and contiguous region of memory. Experience has shown that the indexing vastly improves the patterns of memory access at all levels of the memory hierarchy, independently of the sizes of caches or pages and without ad hoc programming. It also exposed a weakness in SGI's C compilers that merrily unroll loops for the super-scalar R8000 processor, but do not analogously unfold the base cases of the most elementary recursions. Such deficiencies might deter future programmers from using this rich class of recursive algorithms.
Jeremy D. Frens, David S. Wise
PPoPP2
1996 Static and Dynamic Partitioning of Pointers as Links and Threads
abstract
Identifying some pointers as invisible threads, for the purposes of storage management, is a generalization from several widely used programming conventions, like threaded trees. The necessary invariant is that nodes that are accessible (without threads) emit threads only to other accessible nodes. Dynamic tagging or static typing of threads ameliorates storage recycling both in functional and imperative languages. We have seen the distinction between threads and links sharpen both hardware- and software-supported storage management in Scheme, and also in C. Certainly, therefore, implementations of languages that already have abstract management and concrete typing, should detect and use this as a new static type. Categories and subject descriptors: D.3.3 [Programming Languages]: Language Constructs and Features---data types and structures, dynamic storage management, abstract data types; E.2 [Data Storage Representations ]: Linked representations; B.3.2 [Memory Structures]: Design S...
David S. Wise, Joshua Walgenbach
ICFP1
1993 Stop-and-Copy and One-Bit Reference Counting
David S. Wise
Inf. Process. Lett.1
1990 Costs of Quadtree Representation of Nondense Matrices
David S. Wise, John V. Franco
J. Parallel Distributed Comput.1
1989 Generating Function Versions with Rational Strictness Patterns
Cordelia V. Hall, David S. Wise
Sci. Comput. Program.2
1988 Experiments with Quadtree Representation of Matrices
S. Kamal Abdali, David S. Wise
ISSAC2
1987 Compiling Strictness into Streams
abstract
Article Free Access Share on Compiling strictness into streams Authors: C. V. Hall Indiana University, 101 Lindley Hall, Bloomington, Indiana, U.S.A. Indiana University, 101 Lindley Hall, Bloomington, Indiana, U.S.A.View Profile , D. S. Wise Indiana University, 101 Lindley Hall, Bloomington, Indiana, U.S.A. Indiana University, 101 Lindley Hall, Bloomington, Indiana, U.S.A.View Profile Authors Info & Claims POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languagesOctober 1987 Pages 132–143https://doi.org/10.1145/41625.41637Online:01 October 1987Publication History 15citation176DownloadsMetricsTotal Citations15Total Downloads176Last 12 Months5Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Cordelia V. Hall, David S. Wise
POPL2
1986 Parallel Decomposition of Matrix Inversion Using Quadtrees
David S. Wise
ICPP1
1985 Representing Matrices as Quadtrees for Parallel Processors
David S. Wise
Inf. Process. Lett.1
1980 An Indeterminate Constructor for Applicative Programming
abstract
This paper proposes the encapsulization and control of contending parallel processes within data structures. The advantage of embedding the contention within data is that the contention, itself, thereby becomes an object which can be handled by the program at a level above the actions of the processes themselves. This means that an indeterminate behavior, never precisely specified by the programmer or by the input, may be shared in the same way that an argument to a function is shared by every use of the corresponding parameter, an ability which is of particular importance to applicative-style programming.
Daniel P. Friedman, David S. Wise
POPL2
1979 Reference Counting Can Manage the Circular Environments of Mutual Recursion
Daniel P. Friedman, David S. Wise
Inf. Process. Lett.2
1979 Morris's Garbage Compaction Algorithm Restores Reference Counts
abstract
The two-pass compaction algorithm of F.L. Morris, which follows upon the mark phase in a garbage collector, may be modified to recover reference counts for a hybrid storage management system. By counting the executions of two loops in that algorithm where upward and downward references, respectively, are forwarded to the relocation address of one node, we can initialize a count of active references and then update it but once. The reference count may share space with the mark bit in each node, but it may not share the additional space required in each pointer by Morris's algorithm, space which remains unused outside the garbage collector.
David S. Wise
ACM Trans. Program. Lang. Syst.1
1978 Functional Combination
Daniel P. Friedman, David S. Wise
Comput. Lang.2
1978 Unbounded Computational Structures
abstract
Abstract The concept of suspended evaluation is used as an approach to co‐routines. Problems from the literature involving infinite data structures are solved in a LISP‐like applicative language to demonstrate that simple new semantics can enrich old and ‘friendly’ control structures. It appears that the very nature of these problems draws control structure and data structure together, so that issues of style may be studied at once for both.
Daniel P. Friedman, David S. Wise
Softw. Pract. Exp.2
1978 Aspects of Applicative Programming for Parallel Processing
abstract
Early results of a project on compiling stylized recursion into stackless iterative code are reviewed as they apply to a target environment with multiprocessing. Parallelism is possible in executing the compiled image of argument evaluation (collateral argument evaluation of Algol 68), of data structure construction when suspensions are used, and of functional combinations. The last facility provides generally, concise expression for all operations performed in Lisp by mapping functions and in APL by typed operators; there are other uses as well.
Daniel P. Friedman, David S. Wise
IEEE Trans. Computers2
1976 CONS Should Not Evaluate its Arguments
Daniel P. Friedman, David S. Wise
ICALP2
1976 Output Driven Interpretation of Recursive Programs, or Writing Creates and Destroys Data Structures
Daniel P. Friedman, David S. Wise
Inf. Process. Lett.2
1976 Garbage Collecting a Heap Which Includes a Scatter Table
Daniel P. Friedman, David S. Wise
Inf. Process. Lett.2
1976 A Strong Pumping Lemma for Context-Free Languages
David S. Wise
Theor. Comput. Sci.1
1972 Generalized Overlap Resolvable Grammars and Their Parsers
David S. Wise
J. Comput. Syst. Sci.1
1971 Domolki's Algorithm Applied to Generalized Overlap Resolvable Grammars
abstract
Recently Hext and Roberts have attempted to refine Domolki's parsing algorithm to include limited context checking. This paper links their effort to Lynch's overlap resolvable grammars, which are here extended to include ε-rules. Both Lynch's and Hext and Roberts' versions of the algorithm are modified, the former with a considerable time improvement and the latter using the full power of overlap resolvability. Results are also proposed on removing 1-productions from overlap resolvable grammars for such parsers, answering a question of Lynch.
David S. Wise
STOC1