Convert monte_carlo_integration.pdf assigment to XHTML.
authorW. Trevor King <wking@drexel.edu>
Tue, 14 Sep 2010 14:28:29 +0000 (10:28 -0400)
committerW. Trevor King <wking@drexel.edu>
Tue, 14 Sep 2010 14:28:29 +0000 (10:28 -0400)
assignments/archive/monte_carlo_integration.pdf/assigment.pdf [deleted file]
assignments/archive/monte_carlo_integration/index.shtml
assignments/archive/monte_carlo_integration/index.shtml.2007.11.shtml [new file with mode: 0644]
assignments/current/5
assignments/index.shtml

diff --git a/assignments/archive/monte_carlo_integration.pdf/assigment.pdf b/assignments/archive/monte_carlo_integration.pdf/assigment.pdf
deleted file mode 100644 (file)
index 93e1845..0000000
Binary files a/assignments/archive/monte_carlo_integration.pdf/assigment.pdf and /dev/null differ
index df4eec48eeb92c7c3e1297671d196b70e539b1be..e0ef591c8bd2d144480e82b380bcdf1cb27a0588 100644 (file)
@@ -1,67 +1,35 @@
 <!--#set var="root_directory" value="../../.." --><!--#include virtual="$root_directory/shared/header.shtml"-->
 
-<h1>Assignment #4</h1>
-<p><em>Due Friday, November 2, 2007</em></p>
+<h1>Assignment #5</h1>
+<p><em>Due Friday, October 30, 2009</em>
 
 <h2>Purpose</h2>
 
-<p>To learn how to implement truly parallel algorithms.</p>
+<p>Learn how to implement a master-slave parallel algorithm.</p>
 
-<h2>Setup</h2>
+<p>Note: Please identify all your work.</p>
 
-<p>This assignment consists in implementing a Monte Carlo integral in
-parallel. The integral to perform is</p>
+<p>This assignment consists in rewriting the code performing the
+Monte-Carlo integral of the Gaussian function (see the web pages) in a
+master-slave algorithm.</p>
 
-<img width="224" height="39" align="middle" border="0"
-     src="img/integral.png"
-     alt="$ I = \int dx \int dy (x^2+y^2) e^{ - (x^2+y^2) } $" />
+<p>Write the code so that the process 0 should only administer the
+calculation (i.e., take charge of the interface with the user, decide
+on the # random steps to be taken by each slave node, and perform the
+final Monte-Carlo sums from the sub-sums). The slave processes,
+processes 1 to <code>size-1</code>, should <em>generate</em> the
+random walk steps <em>and</em> perform the Monte-Carlo sub-sums.</p>
 
-<p>This integral was coded in a parallel Master-Slave model in the
-course notes <a href="<!--#echo
-var="root_directory"-->/content/Monte_Carlo/index.html#Guided">Guided
-Monte Carlo Integral</a>.</p>
+<p>Make sure that your code:</p>
 
-<p>You are now to code this integral in a balanced model in which you
-will assign a pre-determined amount of work to each processor. In this
-model, all nodes will scan an equal amount of random Monte Carlo steps
-and perform local sums. Process 0 will wrap up the calculation,
-thereby producing a slight load unbalance.</p>
-
-<h2>To do</h2>
-
-<h3>Part A</h3>
-
-<p>Build the code to do the integral. Start from the
-program <a href="<!--#echo
-var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_Gaussian_Integral.c">Metropolis_Gaussian_Integral.c</a>
-as a guide to what is to be done. Your code should have the same
-functionality as this skeleton serial code.</p>
-
-<p>Use a "stride" method to select which Monte Carlo steps to perform
-on each node. Namely, generate the entire sequence of steps on each
-nodes and use only the ones with a stride given by the rank of the
-process. For instance, on a 4 processes run, process 0 will use steps
-0, 4, 8, ...</p>
-
-<p>Use the programs <a href="<!--#echo
-var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_Gaussian_Parallel.c">Metropolis_Gaussian_Parallel.c</a>
-and <a href="<!--#echo
-var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_CS.c">Metropolis_CS.c</a>
-as examples of parallel codes for this problem.</p>
-
-<h3>Part B</h3>
-
-<p>The value of the integral should be independent of the initial
-position used in generating the random walk. To achieve this it is
-often suggested to <em>thermalize</em> the initial position of the
-random walk. This implies run the code over few (often hundreds or
-thousands) random steps <em>for nothing</em>, i.e., without
-accumulating statistics, before accumulating the sums to calculate the
-average of <i>f(x)</i> and its variance.</p>
-
-<p>Adapt your parallel code to perform this
-<em>thermalization</em> of the initial conditions. Your code
-should prompt the user for the number of <em>thermalization</em>
-steps (could be 0!).</p>
+<ul>
+  <li>agrees with the serial code.</li>
+  <li>handles an arbitrary number of nodes.</li>
+  <li>handles an arbitrary number of Monte-Carlo steps.</li>
+  <li>implements the logic of the refinement of the Monte-Carlo sums,
+    e.g., a calculation with two ranges of random steps, say 20,000
+    followed by 30,000, is equivalent to a single calculation with the
+    total # of steps, 50,000 for this case.</li>
+</ul>
 
 <!--#include virtual="$root_directory/shared/footer.shtml"-->
diff --git a/assignments/archive/monte_carlo_integration/index.shtml.2007.11.shtml b/assignments/archive/monte_carlo_integration/index.shtml.2007.11.shtml
new file mode 100644 (file)
index 0000000..df4eec4
--- /dev/null
@@ -0,0 +1,67 @@
+<!--#set var="root_directory" value="../../.." --><!--#include virtual="$root_directory/shared/header.shtml"-->
+
+<h1>Assignment #4</h1>
+<p><em>Due Friday, November 2, 2007</em></p>
+
+<h2>Purpose</h2>
+
+<p>To learn how to implement truly parallel algorithms.</p>
+
+<h2>Setup</h2>
+
+<p>This assignment consists in implementing a Monte Carlo integral in
+parallel. The integral to perform is</p>
+
+<img width="224" height="39" align="middle" border="0"
+     src="img/integral.png"
+     alt="$ I = \int dx \int dy (x^2+y^2) e^{ - (x^2+y^2) } $" />
+
+<p>This integral was coded in a parallel Master-Slave model in the
+course notes <a href="<!--#echo
+var="root_directory"-->/content/Monte_Carlo/index.html#Guided">Guided
+Monte Carlo Integral</a>.</p>
+
+<p>You are now to code this integral in a balanced model in which you
+will assign a pre-determined amount of work to each processor. In this
+model, all nodes will scan an equal amount of random Monte Carlo steps
+and perform local sums. Process 0 will wrap up the calculation,
+thereby producing a slight load unbalance.</p>
+
+<h2>To do</h2>
+
+<h3>Part A</h3>
+
+<p>Build the code to do the integral. Start from the
+program <a href="<!--#echo
+var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_Gaussian_Integral.c">Metropolis_Gaussian_Integral.c</a>
+as a guide to what is to be done. Your code should have the same
+functionality as this skeleton serial code.</p>
+
+<p>Use a "stride" method to select which Monte Carlo steps to perform
+on each node. Namely, generate the entire sequence of steps on each
+nodes and use only the ones with a stride given by the rank of the
+process. For instance, on a 4 processes run, process 0 will use steps
+0, 4, 8, ...</p>
+
+<p>Use the programs <a href="<!--#echo
+var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_Gaussian_Parallel.c">Metropolis_Gaussian_Parallel.c</a>
+and <a href="<!--#echo
+var="root_directory"-->/content/Monte_Carlo/codes/Metropolis_CS.c">Metropolis_CS.c</a>
+as examples of parallel codes for this problem.</p>
+
+<h3>Part B</h3>
+
+<p>The value of the integral should be independent of the initial
+position used in generating the random walk. To achieve this it is
+often suggested to <em>thermalize</em> the initial position of the
+random walk. This implies run the code over few (often hundreds or
+thousands) random steps <em>for nothing</em>, i.e., without
+accumulating statistics, before accumulating the sums to calculate the
+average of <i>f(x)</i> and its variance.</p>
+
+<p>Adapt your parallel code to perform this
+<em>thermalization</em> of the initial conditions. Your code
+should prompt the user for the number of <em>thermalization</em>
+steps (could be 0!).</p>
+
+<!--#include virtual="$root_directory/shared/footer.shtml"-->
index 659817b31489da726747948693ab17b4ebdaaadd..802b16cac89710a1f54375f54bb14c719d08d9fd 120000 (symlink)
@@ -1 +1 @@
-../archive/monte_carlo_integration.pdf/
\ No newline at end of file
+../archive/monte_carlo_integration/
\ No newline at end of file
index 4d01dc3a7354ec0f02df1fe8bf3689504d85d129..eb057dbf7cf23b40ea807b36c112b5e7db32a4d1 100644 (file)
@@ -7,7 +7,7 @@
   <li><a href="current/2/">Assignment 2</a></li>
   <li><a href="current/3/assigment.pdf">Assignment 3</a></li>
   <li><a href="current/4/assigment.pdf">Assignment 4</a></li>
-  <li><a href="current/5/assigment.pdf">Assignment 5</a></li>
+  <li><a href="current/5/">Assignment 5</a></li>
   <li><a href="current/6/">Assignment 6</a></li>
   <li><a href="current/7/assigment.pdf">Assignment 7</a></li>
   <li><a href="current/8/assigment.pdf">Assignment 8</a></li>