Research Projects and Publications

Many projects are listed below, and they are being pursued with varying levels of activity and group sizes varying from zero to a dozen. Collaboration is welcomed, or you might suggest new projects. For example, while most of my graduate students work on projects I suggest, others have worked on projects that they suggested, sometimes quite far from my usual interests.

Most of the current research of myself and my students is in computer science, adaptive sampling, or computational science, and often these areas overlap. Research areas are organized as follows:

Here is a listing of my books, papers, etc., organized by research area, and here is a standard academic vita.


Parallel Computing

My work in parallel computing has involved developing efficient algorithms for large problems in computational science and engineering, and more theoretical algorithms for a variety of problems and architectures. Other work has involved evaluating the performance of parallel machines (especially communication and synchronization aspects, on both real and abstract systems), and proposing new parallel architectures.

Most of the work on using large machines involves the research mentioned in scientific computing and computational science and some of that described in adaptive sampling. Research involving more theoretical algorithms includes load balancing, graph theory, geometry, image processing, databases, sorting, routing, and message-passing. Russ Miller and I wrote Parallel Algorithms for Regular Architectures: Meshes and Pyramids, MIT Press, which incorporates many of the previously published algorithms for these machines, and also includes algorithms that have never appeared previously. A sequel volume, with an emphasis on hypercube computers, also has both old and new algorithms, but it wasn't published. If more people buy the first volume then MIT might publish the second volume.

Some of the papers we've written for various machine models are

Some additional projects I'm involved with, or would like to start, are:

The parallel computing topics I'm interested often change, and, as I said, I'm interested in collaboration and new problems.

Here is a somewhat whimsical explanation of parallel computing.

Additional publications

Adaptive Sampling, Statistics, Probability

Adaptive sampling designs are ones where the accruing data from experiment (i.e., the observations) is used to make decisions affecting the experiment, as opposed to the standard fixed statistical designs where all decisions have been made in advance of any experiments. For example, in standard fixed designs for clinical trials, one may allocate equal numbers of patients to one of two treatments, and then after all of the outcomes have been observed make a statistical decision as to which is the better treatment. With an adaptive design, however, one may modify the allocation as the outcomes are being observed, so that more patients in the trial can be allocated to the better treatment. This can simultaneously allow one to achieve a desired statistical goal (such as determining which is the better treatment) while also achieving ethical or cost goals (such as reducing patient suffering during the trial, or reducing costs in an industrial setting). Adaptive designs have many natural uses in computer-related areas such as resource allocation problems or choosing parameter settings for computer simulations, since the computer can both collect the information and run a program to decide what to do next.

A more extensive discussion, and related publications

Scientific Computing, Computational Science

Here the emphasis is on developing efficient algorithms and data structures that are motivated by needs in computational science, and on ways of putting large scientific codes together. For adaptive sampling I'm involved in both the science and the computing, while within the Center for Space Environment Modeling (CSEM) I concentrate on the computer science aspects. Most of my work in this area started with a scientist coming to me requesting help on a research project. I've worked with social scientists, environmental engineers, space scientists, statisticians, etc.

Because several of these applications involve large problems, much of our work in this area involves parallel computing, though some involves serial algorithms. Projects include

Additional publications in modeling aspects of space and Earth and more general scientific computing

Algorithms, Data Structures, Theoretical Computer Science

Most of the work here concentrates on trying to develop optimal algorithms, optimal at least as measured by O-notation. The majority of my work on algorithms has been in parallel computing, adaptive allocation, or graph theory, but there are several other topics that my students or collaborators and I have looked at. Some of the work we did involves

Some current projects involve

Additional publications in serial algorithms and data structures and other topics in theoretical computer science.

Discrete Mathematics: Graph Theory, Combinatorics, Coding

Some early work involved codings of the natural numbers, and more generally codings of linearly ordered sets. These results can also be viewed in terms of search times for the sets. A different, so-far unpublished, result was the determination of all possible order types of finite words over countable linearly ordered sets.

Many questions about simulation, resource allocation, fault tolerance, routing, scheduling, mapping, synchronization, etc., for distributed memory machines can be modeled via graphs, and one can exploit the graph structure to find solutions. We have particularly emphasized hypercube, mesh, and torus models, since many parallel computers are of this form. Example of this work are a rather comprehensive paper on the subcube fault tolerance of the hypercube and one on embedding graphs into hypercubes.

One set of graph theory questions Marilynn Livingston and I have pursued concerns the determination of various properties of families such as k x n meshes, with k fixed. We have shown that values such as domination numbers, packing numbers, number of code words, number of tilings, etc., can be computationally determined in closed form, using dynamic programming and properties of finite state automata. This was a rather dramatic improvement upon earlier results. There are several interesting open questions and conjectures related to this.

A recent project that Jonathan Brown and I are working on concerns models of the small world phenomena for citations and web links. We're looking at a model where links are made based on relevance in different aspects, rather than ignoring the multidimensional nature of picking relevant references. Applying research to real-world problems will likely require efficient parallel algorithms since some applications, such as web links, involve huge graphs. Of particular interest is locating subgraphs with specific properties.

The work with Julia Lipman mentioned above, concerning repeated synchronization of multiple agents, is also research in discrete mathematics.

Related publications

Operator Theory, Analysis

I don't work in this area any more. Most of the work in operator theory concerned Schur multiplication of matrices, where the Schur product is formed by multiplying matrices termwise (much as addition is performed). For infinite dimensional Hilbert spaces or lp spaces, this forms an interesting Banach algebra, which has a great many ties to normal multiplication. Investigating the Schur product led to questions about the essential numerical range and majorization of diagonal entries. Slightly related results concerned determining the numerical range of finite dimensional weighted shift operators.

One paper analyzed conditionally convergent series and their rearrangements. There is a natural duality between sets of conditionally convergent series and sets of permutations which leave their sums unchanged, and this duality has some unusual properties.

Related publications

 


Quentin Copyright © 2000-2006, Quentin F. Stout