--- /dev/null
+<!--#set var="root_directory" value="../../.." --><!--#include virtual="$root_directory/shared/header.shtml"-->
+
+<h1>Assignment #6</h1>
+<p><em>Due Friday, November 19</em></p>
+
+<h2>Purpose</h2>
+
+<p>Learn how to implement Gauss-Siedel in parallel.</p>
+
+<p>Note: Please identify all your work.</p>
+
+<p>This assignment consists in building your own parallel code to
+generate the solution of Poisson equation.
+The <a href="../../../content/poisson/#Gauss-Siedel">Gauss-Siedel</a>
+and <a href="../../../content/poisson/#SOR">SOR</a> algorithms are
+explained in the course web pages. The steps toward a parallel code
+are also explained.</p>
+
+<p>Start from the code <a href="../../../src/possion/p.c">p.c</a> and
+implement the parallel version. Pay particular attention to minimize
+communications.</p>
+
+<ol>
+ <li>Produce a correct, parallel code.</li>
+ <li>Instrument both the serial and parallel codes for timing.</li>
+ <li>Find the time dependence of both codes on the <em>grid size</em>.</li>
+ <li>How efficient is your parallel version?</li>
+</ol>
+
+<!--#include virtual="$root_directory/shared/footer.shtml"-->
-../archive/mandelbrot/
\ No newline at end of file
+../archive/poisson
\ No newline at end of file
lines in the parallel implementation.</p>
<p>Consider the update of the field at the location marked 0 below.
-The Gauss-Siedel solution calls for an <em>in-place</em> update of the
-field via the finite difference formula in a systematic sweep of the
-numerical lattice. This is done via the <a href="#iter_2d">2D</a>
-finite difference formula. The values of the field at the points 2 and
-3 have already been updated if the sweep originates from the
-upper-left corner of the lattice, while the field at the point 1 and 4
-are yet to be updated.</p>
+The <a href="../poisson/#Gauss-Siedel">Gauss-Siedel</a> solution calls
+for an <em>in-place</em> update of the field via the finite difference
+formula in a systematic sweep of the numerical lattice. This is done
+via the <a href="#iter_2d">2D</a> finite difference formula. The
+values of the field at the points 2 and 3 have already been updated if
+the sweep originates from the upper-left corner of the lattice, while
+the field at the point 1 and 4 are yet to be updated.</p>
<img border="0" src="img/Red_Black_1.gif" width="221" height="223" /> <!-- TODO: convert to SVG -->
<embed type="image/svg+xml" src="img/jacobi.svg" width="190" height="174" />
</object>
-<p>The Gauss-Siedel method consists in replacing the new value of the
-field within the same "array". This corresponds to the following
-form:</p>
+<p id="Gauss-Siedel">The Gauss-Siedel method consists in replacing the
+new value of the field within the same "array". This corresponds to
+the following form:</p>
<p class="equation">\[
u_{i,j}^{k+1} =
numerical grid to cover the domain.</p>
<p id="SOR">The Gauss-Siedel method converges faster than the Jacobi
-method. Yet it is a notoriously slow method, often requiring very
+method. However, it is a notoriously slow method, often requiring very
large number of iterations to achieve convergence. A better rate of
convergence is achieved by the Succesive Over Relaxation (SOR)
method. In this approach, the old and new fields are mixed via a