110 research outputs found
Balancing lists: a proof pearl
Starting with an algorithm to turn lists into full trees which uses
non-obvious invariants and partial functions, we progressively encode the
invariants in the types of the data, removing most of the burden of a
correctness proof.
The invariants are encoded using non-uniform inductive types which parallel
numerical representations in a style advertised by Okasaki, and a small amount
of dependent types.Comment: To appear in proceedings of Interactive Theorem Proving (2014
Роль української інтелігенції польського походження у національному відродженні України другої половини XIX століття
У статті розглядається участь деяких українських інтелігентів польського походження в активізації процесу національного відродження Україн
Processor Allocation for Optimistic Parallelization of Irregular Programs
Optimistic parallelization is a promising approach for the parallelization of
irregular algorithms: potentially interfering tasks are launched dynamically,
and the runtime system detects conflicts between concurrent activities,
aborting and rolling back conflicting tasks. However, parallelism in irregular
algorithms is very complex. In a regular algorithm like dense matrix
multiplication, the amount of parallelism can usually be expressed as a
function of the problem size, so it is reasonably straightforward to determine
how many processors should be allocated to execute a regular algorithm of a
certain size (this is called the processor allocation problem). In contrast,
parallelism in irregular algorithms can be a function of input parameters, and
the amount of parallelism can vary dramatically during the execution of the
irregular algorithm. Therefore, the processor allocation problem for irregular
algorithms is very difficult.
In this paper, we describe the first systematic strategy for addressing this
problem. Our approach is based on a construct called the conflict graph, which
(i) provides insight into the amount of parallelism that can be extracted from
an irregular algorithm, and (ii) can be used to address the processor
allocation problem for irregular algorithms. We show that this problem is
related to a generalization of the unfriendly seating problem and, by extending
Tur\'an's theorem, we obtain a worst-case class of problems for optimistic
parallelization, which we use to derive a lower bound on the exploitable
parallelism. Finally, using some theoretically derived properties and some
experimental facts, we design a quick and stable control strategy for solving
the processor allocation problem heuristically.Comment: 12 pages, 3 figures, extended version of SPAA 2011 brief announcemen
Shortest Path Problems on a Polyhedral Surface
We develop algorithms to compute shortest path edge sequences, Voronoi diagrams, the Fréchet distance, and the diameter for a polyhedral surface
Patterns in random walks and Brownian motion
We ask if it is possible to find some particular continuous paths of unit
length in linear Brownian motion. Beginning with a discrete version of the
problem, we derive the asymptotics of the expected waiting time for several
interesting patterns. These suggest corresponding results on the
existence/non-existence of continuous paths embedded in Brownian motion. With
further effort we are able to prove some of these existence and non-existence
results by various stochastic analysis arguments. A list of open problems is
presented.Comment: 31 pages, 4 figures. This paper is published at
http://link.springer.com/chapter/10.1007/978-3-319-18585-9_
- …