<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="serif">I know that some of you are starting to hammer
      away at your DLS and ILS parallelization this weekend.  Since I
      sent you some pointers on the iterative linear solver, let me do
      the same for the direct linear solver.<br>
      <br>
      1.  DO NOT just try to do a #pragma omp at the top of the main
      loop and think that you will have any chance of it working.   <br>
      <br>
      2.  DO use your skill at determining where the hotspots are in the
      code (like double nested loops) and focus on making the outermost
      loop of those hotspots parallel.  This will then hopefully thread
      the code in such a way that the innermost loops are optimally
      using the vectorization instructions that are prsent on each core
      of the processor.  There are two distinct regions in the DLS code
      where this is beneficial.<br>
      <br>
      3.  Pay very close attention to what you hold in shared space and
      what you hold in private space -- otherwise you will get ludicrous
      results or lots and lots of NAN's.<br>
      <br>
      4. Don't forget the call to set_omp_numthreads in your code to
      determine how many threads to use.  Othewise you can't create the
      Amdahl's law plot speedup curves.<br>
      <br>
      5. I recommend that you get the OpenMP parallelization done first
      and then use that to help guide how you write your Pthreads code.<br>
      <br>
      <br>
      <br>
    </font>
    <pre class="moz-signature" cols="72">-- 
Andrew J. Pounds, Ph.D.  (<a class="moz-txt-link-abbreviated" href="mailto:pounds_aj@mercer.edu">pounds_aj@mercer.edu</a>)
Professor of Chemistry and Computer Science
Mercer University,  Macon, GA 31207   (478) 301-5627
<a class="moz-txt-link-freetext" href="http://faculty.mercer.edu/pounds_aj">http://faculty.mercer.edu/pounds_aj</a>
</pre>
  </body>
</html>