[m-rev.] for review: Add my thesis to the Paper's page and announce it.

Paul Bone paul at bone.id.au
Sun May 19 11:21:30 AEST 2013


For review by anyone.

Add my thesis to the Paper's page and announce it.

documentation/include/papers.inc:
    Add the meta-data

documentation/papers/pbone_phd_thesis.pdf:
    Add the thesis.

news/newsdb.inc:
    Annouce the availability of the thesis.
---
 documentation/include/papers.inc          | 106 ++++++++++++++++++++++++++++++
 documentation/papers/pbone_phd_thesis.pdf | Bin 0 -> 2049522 bytes
 news/newsdb.inc                           |   9 +++
 3 files changed, 115 insertions(+)
 create mode 100644 documentation/papers/pbone_phd_thesis.pdf

diff --git a/documentation/include/papers.inc b/documentation/include/papers.inc
index 41a335c..6d03b95 100644
--- a/documentation/include/papers.inc
+++ b/documentation/include/papers.inc
@@ -22,6 +22,23 @@ given on Mercury, at a variety of levels, are also available.
 
 <li>
 <strong>
+<a href="papers.html#pbone_phd_thesis">
+Automatic Parallelisation for Mercury
+</a>
+</strong>
+<br>
+Paul Bone
+<br>
+<em>
+Ph.D. Thesis
+</em>
+Department of Computing and Information Systems,
+The University of Melbourne.
+December 2012
+<br>
+
+<li>
+<strong>
 <a href="papers.html#loop_control">
 Controlling Loops in Parallel Mercury Code.
 </a>
@@ -1209,6 +1226,95 @@ Tyson Dowd, 1998.
 
 <li>
 <strong>
+<a name="pbone_phd_thesis">
+Automatic Parallelisation for Mercury
+</a>
+</strong>
+<br>
+Paul Bone
+<br>
+<em>
+Ph.D. Thesis
+</em>
+Department of Computing and Information Systems,
+The University of Melbourne,
+December 2012
+<br>
+Available here
+<a href = "papers/pbone_phd_thesis.pdf">
+as PDF (2.0M).
+</a>
+<p>
+Multicore computing is ubiquitous, so programmers need to write parallel
+programs to take advantage of the full power of modern computer systems.
+However the most popular parallel programming methods are difficult and
+extremely error-prone. Most such errors are intermittent, which means they
+may be unnoticed until after a product has been shipped; they are also often
+very difficult to fix. This problem has been addressed by pure declarative
+languages that support explicit parallelism. However, this does nothing
+about another problem: it is often difficult for developers to find tasks
+that are worth parallelising. When they can be found, it is often too easy
+to create too much parallelism, such that the overheads of parallel
+execution overwhelm the benefits gained from the parallelism. Also, when
+parallel tasks depend on other parallel tasks, the dependencies may restrict
+the amount of parallelism available. This makes it even harder for
+programmers to estimate the benefit of parallel execution.
+</p>
+<p>
+In this dissertation we describe our profile feedback directed automatic
+parallelisation system, which aims at solving this problem. We implemented
+this system for Mercury, a pure declarative logic programming language. We
+use information gathered from a profile collected from a sequential
+execution of a program to inform the compiler about how that program can be
+parallelised. Ours is, as far as we know, the first automatic
+parallelisation system that can estimate the parallelism available among any
+number of parallel tasks with any number of (non-cyclic) dependencies. This
+novel estimation algorithm is supplemented by an efficient exploration of
+the program’s call graph, an analysis that calculates the cost of recursive
+calls (as this is not provided by the profiler), and an efficient search for
+the best parallelisation of N computations from among the 2<sup>N−1</sup>
+candidates.
+</p>
+<p>
+We found that in some cases where our system parallelised a loop, spawning
+off virtually all of its iterations, the resulting programs exhibited
+excessive memory usage and poor performance.  We therefore designed and
+implemented a novel program transformation that fixes this problem.  Our
+transformation allows programs to gain large improvements in performance and
+in several cases, almost perfect linear speedups. The transformation also
+allows recursive calls within the parallelised code to take advantage of
+tail recursion.
+</p>
+<p>
+Also presented in this dissertation are many changes that improve the
+performance of Mercury’s parallel runtime system, as well as a proposal and
+partial implementation of a visualisation tool that assists developers with
+parallelising their programs, and helps researchers develop automatic
+parallelisation tools and improve the performance of the runtime system.
+</p>
+<p>
+Overall, we have attacked and solved a number of issues that are critical to
+making automatic parallelism a realistic option for developers.
+</p>
+<p>
+<code>
+<pre>
+ at PhdThesis{bone12:autoparallelism_thesis,
+  author =       {Paul Bone},
+  title =        {Automatic Parallelisation for Mercury},
+  school =       {Department of Computing and Information Systems,
+                  The University of Melbourne},
+  year =         {2012},
+  address =      {Australia},
+  month =        {Decemeber}
+}
+</pre>
+</code>
+</p>
+</li>
+
+<li>
+<strong>
 <a name="loop_control">
 Controlling Loops in Parallel Mercury Code.
 </a>
diff --git a/documentation/papers/pbone_phd_thesis.pdf b/documentation/papers/pbone_phd_thesis.pdf
new file mode 100644
* Big binary diff omitted *

diff --git a/news/newsdb.inc b/news/newsdb.inc
index 5f829c6..8cf5f88 100644
--- a/news/newsdb.inc
+++ b/news/newsdb.inc
@@ -21,6 +21,15 @@
 */
 
 $newsdb = array(
+"19th May 2013" => array(
+"Paul Bone's Ph.D. dissertation is now available",
+"Paul's Ph.D. dissertation,
+titled Automatic Parallelisation for Mercury,
+has been examined and is now available for
+download on the
+<a href=\"documentation/papers.html#pbone_phd_thesis\">
+Mercury papers page</a>."),
+
 "16th May 2013" => array(
 "Mercury 13.05 released",
 "We are pleased to announce the release of version 13.05 of the Mercury system.
-- 
1.8.1.3




More information about the reviews mailing list