[project @ 2001-08-13 16:33:43 by simonmar]
[ghc-hetmet.git] / ghc / docs / users_guide / parallel.sgml
index 4970b09..a7739bf 100644 (file)
@@ -28,19 +28,22 @@ a single Unix process on a single processor.
 
 <Para>
 You will find at least one paper about Concurrent Haskell hanging off
-of <ULink URL="http://www.dcs.gla.ac.uk/~simonpj/">Simon Peyton Jones's Web page</ULink>.
+of <ULink URL="http://research.microsoft.com/~simonpj/">Simon Peyton
+Jones's Web page</ULink>.
 </Para>
 
 <Para>
-Parallel Haskell is about <Emphasis>speed</Emphasis>&mdash;spawning threads onto multiple
-processors so that your program will run faster.  The `threads'
-are always <Emphasis>advisory</Emphasis>&mdash;if the runtime system thinks it can
-get the job done more quickly by sequential execution, then fine.
+Parallel Haskell is about <Emphasis>speed</Emphasis>&mdash;spawning
+threads onto multiple processors so that your program will run faster.
+The `threads' are always <Emphasis>advisory</Emphasis>&mdash;if the
+runtime system thinks it can get the job done more quickly by
+sequential execution, then fine.
 </Para>
 
 <Para>
 A Parallel Haskell program implies multiple processes running on
 multiple processors, under a PVM (Parallel Virtual Machine) framework.
+An MPI interface is under development but not fully functional, yet.
 </Para>
 
 <Para>
@@ -49,16 +52,17 @@ fun&rdquo; than about &ldquo;speed.&rdquo; That will change.
 </Para>
 
 <Para>
-Again, check Simon's Web page for publications about Parallel Haskell
-(including &ldquo;GUM&rdquo;, the key bits of the runtime system).
+Check the <ULink URL="http://www.cee.hw.ac.uk/~dsg/gph/">GPH Page</Ulink>
+for more information on &ldquo;GPH&rdquo; (Haskell98 with extensions for
+parallel execution), the latest version of &ldquo;GUM&rdquo; (the runtime
+system to enable parallel executions) and papers on research issues.  A
+list of publications about GPH and about GUM is also available from Simon's
+Web Page.
 </Para>
 
 <Para>
 Some details about Parallel Haskell follow.  For more information
-about concurrent Haskell, see the Concurrent section in the <ULink
-URL="libs.html"
->GHC/Hugs Extension Libraries</ULink
-> documentation.
+about concurrent Haskell, see <xref linkend="sec-Concurrent">.
 </Para>
 
 <Sect2>
@@ -153,9 +157,9 @@ you'd like to see this with your very own eyes, just run GHC with the
 </Sect3>
 
 <Sect3>
-<Title>Scheduling policy for concurrent/parallel threads
-<IndexTerm><Primary>Scheduling&mdash;concurrent/parallel</Primary></IndexTerm>
-<IndexTerm><Primary>Concurrent/parallel scheduling</Primary></IndexTerm></Title>
+<Title>Scheduling policy for concurrent threads
+<IndexTerm><Primary>Scheduling&mdash;concurrent</Primary></IndexTerm>
+<IndexTerm><Primary>Concurrent scheduling</Primary></IndexTerm></Title>
 
 <Para>
 Runnable threads are scheduled in round-robin fashion.  Context
@@ -180,6 +184,26 @@ of the currently active threads are completed.
 
 </Sect3>
 
+<Sect3>
+<Title>Scheduling policy for parallel threads
+<IndexTerm><Primary>Scheduling&mdash;parallel</Primary></IndexTerm>
+<IndexTerm><Primary>Parallel scheduling</Primary></IndexTerm></Title>
+
+<Para>
+In GUM we use an unfair scheduler, which means that a thread continues to
+perform graph reduction until it blocks on a closure under evaluation, on a
+remote closure or until the thread finishes. 
+</Para>
+</Sect3>
+
 </Sect2>
 
 </Sect1>
+
+<!-- Emacs stuff:
+     ;;; Local Variables: ***
+     ;;; mode: sgml ***
+     ;;; sgml-parent-document: ("users_guide.sgml" "book" "chapter" "sect1") ***
+     ;;; End: ***
+ -->