Student Theses Completed with
Duane Bailey
Williams College provides students an opportunity to work on research
with a faculty member, as part of an honors thesis project. These
theses were completed with Duane Bailey, and are available through interlibrary
loan from Williams College.
The Empire Problem in Penrose Tilings
Laura Effinger-Dean '06 (University of Washington)
Nonperiodic tilings of the plane exhibit no translational symmetry. Penrose tilings are a remarkable class of nonperiodic tilings for which the set of
prototiles consists of just two shapes. The pentagrid method, introduced by
N.G. de Bruijn, allows us to generate Penrose tilings by taking a slice of the
integer lattice in five-dimensional space. The empire problem asks: Given a
subset of a Penrose tiling, what tiles appear in all tilings that include that sub-
set? We present a new approach to the empire problem that uses the pentagrid
method to identify elements of the empire.
PDF
Virtual Machines: Features and Futures
Brian Hirshman '06 (CMU)
As yet, there is no formal science of designing virtual
machines. Instead, virtual machine design has been ad hoc, a reaction
to the current mismatch between hardware and software. This thesis
develops a specification for a thin, general-purpose virtual machine
that is sensitive to the needs of programmers as well as hardware
designers. Some readers may consider this thesis to be a blueprint for
a novel target virtual machine. Others may see this specification as a
model for future hardware. By studying the ++VM virtual machine,
introduced in later chapters, this thesis examines the strengths and
establishes goals of virtual machine design.
PDF
Cache-Conscious Dynamic Memory Allocation
Topher Cyll '04 (Intel Corportation)
Today, almost all software uses dynamic memory allocation. In some
programming languages, it is impossible to even write "Hello World!"
without implicitly calling the allocator. However, the costs of
dynamic memory allocation on cache performance are relatively
unstudied. This thesis explores the e ects of dynamic memory
allocation on cache performance, as well as methods to make memory
allocators cache-conscious.
We use profling techniques to build custom memory allocators. These
allocators contain statically generated memory layouts that arrange
memory in a cache-conscious manner for previously analyzed
workloads. Using a variety of techniques to build memory layouts, we
demonstrate that such layouts can dramatically a ect program speed and
cache miss rate. We nd that some layout strategies speed up certain
programs by as much as 28% while others cause certain programs to run
up to 2.6 times slower. Additionally, we provide an open source
foundation which is fully compatible with all standard C allocation
functions in order to aid future research.
PDF
Search for the Aperiodic Tile
Feng Zhu, '02 (Harvard University)
In 1996, Gummelt identified a single decagon that
covering the
plane aperiodically. The covering allowed tiels to overlap in five
different ways. In this work we develop a partitioning of the regions
of the decagon such that points in different partitions never collide
in an overlap. Such a partioning is achieved by a special coloring process
based on infinite decomposition of the Robinson tiles in a Canto-like
construction. We show that the tile has positive measure everywhere and
that the final tiling is aperiodic and dense in the plane.
PDF
A related paper, by Bailey and Zhu, PDF.
Caching and the Java Virtual Machine
M. Art Munson, '01 (Cornell University)
Most of the research done to improve the performance of Java Virtual Machines
(JVM's) has focused on software implementations of the JVM specification. Very
little consideration has been given to how Java programs interact with hardware
resources and how hardware components can be used to improve Java performance.
We generated and analyzed opcode and memory access trace for eight different
Java benchmarks, finding that each Java opcode typically causes multiple
memory accesses. We next investigated the effectiveness of unified and split
caches at caching Java programs, using the performance of traditional compiled
programs as a basis of comparison.
Motivated by the subdivision of memmory by the JVM specification into heap memory,
constant pool data, and operand stacks, we examined the possible benefits of
adding small specialized caches to hold constant pool data and stack data.
We found that constant pool accesses have very low locaality of reference and
that the addition of a constant cache is detrimental to cache performance for
large main caches. The 24% of memory access made to operand stacks were
found to be efficiently cached in a 64 byte cache. We simulated the cache
performance of Java programs in the presence of registers by adding a register
cache to unified and split caches. We found that given fair hardware resources,
Java programs cached at least as well as traditional programs.
PDF
b
Automatic Generation of Penrose Empires
Jason B. Healy '00
Penrose tiles are infinite tilings that cannot tile the plane in a periodic
manner. They are of interest to researchers because they may model
a new type of matter called \emph{quasicrystals}. Being able to
easily generate and manipulate Penrose tiles makes them easier to study,
and that is the primary goal of this research. Although Penrose tiles are
infinite, we would like to be able to store them in a finite device,
such as a computer, so that they may be more easily studied. The
primary aim of this research is to attempt to discover some of the
underlying structure of Penrose tiles, so that the tilings can be reduced
and stored in an efficient, finite manner.
In addition to being able to store tilings, this research also aims
to learn more about constructing the tilings themselves. Because we are
reducing an infinite amount of data to a finite amount of
information, there will necessarily be some computation required to
reconstruct the information that is not explicitly stored. This
research will investigate methods of constructing Penrose tiles from a
small amount of initial information.
The algorithms developed and discussed in this work allow us to represent
Penrose tiles as a small set of finite variables and then compute any arbitrary
information about the tiling on demand. In this way, we can reconstruct
as much of any tiling that we desire, without needing to store the entire
tiling. It is hoped that the methods used will allow more detailed study
of Penrose tiles to take place in future research.
PDF
(Jason's more recent work on generating empires is found here.)
Exploring the Danzer Tiling
Benjamin C. Chaffin, '98 (Intel Corporation)
In 1989, Danzer presented a set of four tetrahedra which, along with
their mirror images, form aperiodic tilings of space when assembled according
to certain matching rules. Though not the first known aperiodic set in
three dimensions, the Danzer tetrahedra are attractive for a number of
reasons, including several similarities to the two-dimensional Penrose
tiles and Robinson triangles.
We present an expanded version of Danzer's paper[Danzer89], giving explanations
and proofs and removing some of the notation to provide a more readable
and comprehensible exposition of these tiles and their basic properties.
The tetrahedra in a Danzer tiling always meet face-to-face and vertex-to-vertex.
Thus the next fundamental unit of the tiling beyond the tiles themselves
is the vertex configuration, a ball of tiles clustered about and sharing
a central vertex. Danzer's paper states that there are exactly 27 vertex
configurations. We give a practical algorithm to compute a complete ``atlas''
of vertex configurations, and show that there are, in fact, 174.
(See here for details.)
Every patch in a Danzer tiling is duplicated an infinite number of times
in every tiling, and the distance to the nearest identical copy is within
a bounded multiple $\gamma$ of the radius of the patch. Using a computational
approach, we show how to place a bound on $\gamma$.
PDF
Generalized Forcing in Aperiodic Tilings
Linden [Minnick] Cornett, '98 (Intel Corporation)
An aperiodic tiling is one which uses a finite set of prototiles to
tile space such that there is no translational symmetry within any one
tiling. These tilings are of interest to researchers in the natural sciences
because they can be used to model and understand quasicrystals, a recently-discovered
type of matter which bridges the gap between glass, which has no regular
structure, and crystals, which demonstrate translational symmetry and certain
rotational symmetries. The connection between these two areas of research
helps to create a practical motivation for the study of aperiodic tilings.
We plan to study both theoretical and applied aspects of several types
of aperiodic structures, in one, two, and three dimensions. Penrose tilings
are tilings of the plane which use sets of two prototiles (either kites
and darts, or thin rhombs and thick rhombs) whose edges are marked in order
to indicate allowed arrangements of the tiles. There is a small number
of legal vertex configurations, and most of these force the placement of
other tiles which may or may not be contiguous with the original ones.
It is somewhat intuitive that in most cases the placement of a group of
tiles forces the placement of some set of adjacent tiles. It is much more
difficult to believe that many groups of tiles also force the placement
of infinitely many non-adjacent tiles. This phenomenon has implications
which may be important in designing and implementing an efficient data
structure to explore and store information about aperiodic tilings.
For the most part, we plan to study forced tiles in two-dimensions,
although we believe that this theory may be generalized to higher dimensions.
We will use musical sequences and Ammann bars, concepts established by
Conway and Ammann, to develop an algorithm for predicting the placement
of fixed bars given an initial sequence of parallel bars. This, in turn,
may be used to fix the positions of tiles and clusters of tiles within
any legal tiling. Our goal is to determine a method for predicting the
position of infinitely many forced tiles given an initial cluster of tiles.
These descriptions will be partly grammar-based inflations of musical sequences,
and partly algebraic solutions, and will themselves be aperiodic.
PDF
Exploring Aperiodic Tilings with Inflation
Forrest Trepte, '97 (Microsoft Corporation)
This work focuses on realities of implementing an abstract datatype
that traverses infinite aperiodic tilings of the plane and three-space.
The approach is to develop a generalized mechanism for specifying finite
sets of prototiles that tile space nonperiodically. When the tiling exhibits
an invertible inflation property, tiles may be addressed in a way that
supports arbitrary, possibly oriented, wanderings through space. Techniques
are presented that can be used to discover lines of symmetry in a tiling
and to construct an atlas of its local configurations. Also developed are
a number of theoretical results about this class of tilings, including
a concise statement of a local isomorphism theorem. This pretty result
suggests that any finite portion of a specific tiling by prototiles appears
infinitely often in all other tilings by the same set of tiles.
Our analysis is inspired by the index sequences that are commonly used
to uniquely specify tilings. An index sequence identifies a tiling about
a point by locating the point within an infinite hierarchy of self-similar
tilings known as inflations. Our work builds an addressing system with
index sequences of finite rather than infinite length and uses addresses
to represent the dual graph of a patch of tiles. An $n$-digit address identifies
a tile within n inflations of some prototile. We prove that any tiling
represented in our form can tile the plane or space and must do so nonperiodically.
An algorithm is constructed to find the addresses neighboring any given
tile. Appending digits to an address extends the currently represented
region, placing it within a larger patch to simulate the exploration of
an infinite expanse of tiles. The information maintained grows as needed
and the number of digits stored is logarithmic in the number of tiles in
the patch represented. Our system could be used to investigate very large
quasiperiodic tilings and the principles behind the data structures illuminate
many beautiful properties of the tilings themselves.
PDF
A Debugger-Friendly Tuple Space
A. J. [Bernheim] Brush, '96 (Ph.D. Washington, Microsoft)
Many of the performance features of parallel programs, including massive
concurrency and nondeterminism, make debugging difficult. To study
this issue we have continued to extend Linder, a public domain programming
environment supporting Gelernter's tuple space programming model.
The first section of this thesis develops protocols to support effective
distribution of tuples among disparate processes. This distribution
has potential performance advantages, but also complicates the coordination
of processes.
In the second section, we present protocols that support centralized
debugging of tuple space programs. The Linder Tuple Space Debugger
(LDB) is a textually-based interactive debugging environment. LDP
allows users to set breakpoints on tuples, query the tuple space, and examine
the communication history of the system. Users can graphically animate
their program's history at breakpoints and after execution using ORNL's
ParaGraph, a graphical visualization system. With its unique mixture
of history information and interactive control we believe novice users
will find LDB a conductive debugging environment.
TS++: Communication Specification using Path
Expressions in the Tuple Space Programming Model
Steven McLaughry, '95 (IBM)
The tuple space model provides a simple, flexible means of specifying
interprocess communication for parallel programming. However, this
flexibility can result in incorrect programs, that are then extremely difficult
to debug. We discuss a few extensions to the tuple space model, that
will permit the programmer to specify information about the indented communication
structure of a program. This will reduce the chance of error and
simplify debugging tasks, without greatly changing the paradigm.
Support for Dynamic Itinerary-Based Communication
Sean David Sandys, '94 (Ph.D. Washington, Microsoft)
Current technologies for programming massively parallel machines do
not provide the programmer with the appropriate abstractions for communication.
The Canister System was developed to allow programmers to compose point-to-point
messages into communication patterns, called itineraries. While programmers
may find this abstraction more appropriate for many algorithms, itineraries
suffer from the fact that they must be statically determined at compile
time.
This work presents an extension to itinerary-based specification in
the Canister System that allows the programmer to specify dynamic process
instantiation and itinerary extension in a controlled manner. This
mechanism, while not universal, allows programmers to specify more algorithms
safely using a more appropriate level of communication abstraction.
GraPPLe: A Graphical Parallel Programming Language
[Frank] Sebastian Grassia, '93 (Ph.D. CMU, Pixar Corporation)
Program Composition Notation (PCN), a language for parallel programming,
provides a precise, compact, and efficient paradigm for parallel programming.
However, several aspects of programming in PCN are nonintuitive, even to
experienced programmers. We believe that a visual programming language
that draws on PCN as its paradigm can address PCN's non-intuitiveness and
exploit graphical methods to make realization of communication channels
and algorithms much easier.
This research focuses on the specification and implementation of a new
graphical parallel programming language (GraPPLe). Key considerations
in the design include: the exploitation of graphics to evince the fact
that parallel programming is actually a necessary first step in sequential
programming, the goal of providing a framework that maximizes implicit
parallelism, and the interchangeability of visual and textual forms of
expression. Our hope is that, due to the strong correspondence between
GraPPLe and its underlying textual language, the system will be of use
as a teaching aid, as well as a viable development tool for parallel programmers.
Parallel Algorithm Animation
Michael Cox, '91
This thesis is concerned with the animation of algorithms for tightly
coupled multiple-instruction, multiple-data computers for the purpose of
visualizing the communication patterns which occur during execution of
the algorithm. In order to understand how a tightly coupled algorithm
operates it is essential to understand the interprocess communication which
occurs during execution. An animation of the algorithm can provide
a global view of these patterns in a form easily comprehended by the user.
There have been recent attempts to organize the record of communication
into a hierarchy of abstract user-defined communication events to increase
the viewer's ability to comprehend the display. However these systems
contain a great deal of complexity due to their attempt to describe the
algorithm at a global level. The nondeterminism inherent in parallel
programs makes the specification of a global event hierarchy very difficult.
This thesis proposes an alternative paradigm for specifying the event hierarchy,
attempting to reduce the complexity of the specification by working on
a per-process basis, creating a global view of the algorithm only after
the high level events have been recognized.