<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div><div>How exactly does the synchronization work? Can the underlying data structures be made thread safe using a global mutual exclusion?</div></div><div><br></div></span>
</div>
<br><div><div>On Dec 4, 2012, at 1:57 PM, dave fournier wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 12-12-04 10:39 AM, Matthew Supernaw
      wrote:<br>
      <br>
      <br>
      There really is not enough information here to give you a good
      answer.  <br>
      What I had in mind is  a number of threads all of which are doing
      df1b2 arithemetic.<br>
      they get some df1b2values from the master and return df1vb2 stuff
      to the master.<br>
      <br>
      sort of like<br>
      <br>
           master   x ---->  slave1    z2----> master<br>
                         x,y ----> slave2  z1---> master<br>
      <br>
      where x ,y ,z consist of a mixture of df1b2variable types.<br>
      <br>
      Then each of the three threads has to have its own  data
      structures for handling AD<br>
      and they need to be synchronized.  It is not just a matter of
      copying the information  over<br>
      in a safe way<br>
      <br>
    </div>
    <blockquote cite="mid:03D9B3B4-C99D-4954-B921-A3A65EF9FCBE@noaa.gov" type="cite">
      <div><br>
      </div>
      <div>So I just tried the threading example and it worked. </div>
      <div> </div>
      <div>A couple of questions:</div>
      <div><br>
      </div>
      <div>1. What are the consequences for modifying the copy
        constructor to make a deep copy(i'm sure there are many)? </div>
      <div><br>
      </div>
      <div>2. Can "send_xxx_to_slave" be replaced with a deep copy
        function?</div>
      <div><br>
      </div>
      <div>For instance:</div>
      <div><br>
      </div>
      <div>df1b2variable DeepCopy(const df1b2variable &x){</div>
      <div>return deep_copy_of_x;</div>
      <div>}</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>class ADMBThread{</div>
      <div>public:</div>
      <div><br>
      </div>
      <div> df1b2variable x;</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>virtual void Run(){</div>
      <div>do something to x….</div>
      <div>}</div>
      <div><br>
      </div>
      <div>};</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>int main(){</div>
      <div>    df1b2variable x = rand();</div>
      <div>   ADMBThread thread;</div>
      <div><br>
      </div>
      <div>   thread.x = DeepCopy(x);</div>
      <div><br>
      </div>
      <div>   thread.Start();</div>
      <div><br>
      </div>
      <div>}</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>Thanks.</div>
      <div><br>
      </div>
      <div>Matthew</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div apple-content-edited="true"><br>
      </div>
      <br>
      <div>
        <div>On Dec 4, 2012, at 9:19 AM, Matthew Supernaw wrote:</div>
        <br class="Apple-interchange-newline">
        <blockquote type="cite">
          <div style="word-wrap: break-word; -webkit-nbsp-mode: space;
            -webkit-line-break: after-white-space; ">
            <div><br>
            </div>
            <div>Dave, </div>
            <div><br>
            </div>
            <div>You are correct, I didn't review your example code.
              I'll take a look.</div>
            <div><br>
            </div>
            <div>Thanks for the architectural overview. It would be
              convenient if this information was recorded in software
              design document. </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>
              <pre style="white-space: pre-wrap; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">"I guess you didn't bother wasting your time looking at my example for 
dvariables.

The big problem with these objects is not some trivial locking in the 
constructor etc.
It comes from the fact that the data structure which store all the 
information for
multiple levels of reverse AD are not thread safe. If you are doing 
df1b2variable
arithmetic each thread needs its own copy of these."
</pre>
            </div>
            <div><br>
            </div>
            <div>
              <div>On Dec 3, 2012, at 2:39 PM, <a moz-do-not-send="true" href="mailto:developers-request@admb-project.org">developers-request@admb-project.org</a>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <blockquote type="cite">
                <div>Send Developers mailing list submissions to<br>
                  <span class="Apple-tab-span" style="white-space:pre">
                  </span><a moz-do-not-send="true" href="mailto:developers@admb-project.org">developers@admb-project.org</a><br>
                  <br>
                  To subscribe or unsubscribe via the World Wide Web,
                  visit<br>
                  <span class="Apple-tab-span" style="white-space:pre">
                  </span><a moz-do-not-send="true" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                  or, via email, send a message with subject or body
                  'help' to<br>
                  <span class="Apple-tab-span" style="white-space:pre">
                  </span><a class="moz-txt-link-abbreviated" href="mailto:developers-request@admb-project.org">developers-request@admb-project.org</a><br>
                  <br>
                  You can reach the person managing the list at<br>
                  <span class="Apple-tab-span" style="white-space:pre">
                  </span><a class="moz-txt-link-abbreviated" href="mailto:developers-owner@admb-project.org">developers-owner@admb-project.org</a><br>
                  <br>
                  When replying, please edit your Subject line so it is
                  more specific<br>
                  than "Re: Contents of Developers digest..."<br>
                  <br>
                  <br>
                  Today's Topics:<br>
                  <br>
                    1. Re: admb threading (Matthew Supernaw)<br>
                  <br>
                  <br>
----------------------------------------------------------------------<br>
                  <br>
                  Message: 1<br>
                  Date: Mon, 3 Dec 2012 14:29:01 -0500<br>
                  From: Matthew Supernaw
                  <a class="moz-txt-link-rfc2396E" href="mailto:matthew.supernaw@noaa.gov"><matthew.supernaw@noaa.gov></a><br>
                  To: <a class="moz-txt-link-abbreviated" href="mailto:developers@admb-project.org">developers@admb-project.org</a><br>
                  Subject: Re: [Developers] admb threading<br>
                  Message-ID:
                  <a class="moz-txt-link-rfc2396E" href="mailto:C8E76651-698E-4D98-A995-40A2F259B069@noaa.gov"><C8E76651-698E-4D98-A995-40A2F259B069@noaa.gov></a><br>
                  Content-Type: text/plain; charset="us-ascii"<br>
                  <br>
                  <br>
                  Perhaps making admb type containers thread safe is a
                  good place to start. This would make it easier to
                  modify admb internally as well as allow end users to
                  make their own applications concurrent.<br>
                  <br>
                  I've started working on this issue for one of our
                  staff. After profiling his model, I found nearly
                  70-80% of the runtime was in his user_function looping
                  through a df1b2matrix and doing operations on its
                  elements. In this particular case,<br>
                  admb is quite fast and is really just waiting for
                  user_function evaluations(nested for loops). This is
                  the perfect location for multi-threading.<br>
                  <br>
                  <br>
                  At the moment I'm working on a thread safe wrapper for
                  df1b2matrix in order to speed up this particular
                  model. This should be all that is needed for this
                  particular case, but I suspect this cause may be a
                  common.<br>
                  <br>
                  <br>
                  Attached is a simple platform independent threading
                  library. <br>
                  <br>
                  <br>
                  My strategy for making df1b2matrix thread safe is to
                  wrap it as follows:<br>
                  <br>
                  <br>
                  11 #include <admodel.h><br>
                  12 #include "Threads.hpp"<br>
                  13 <br>
                  14 <br>
                  15 namespace admb {<br>
                  16<br>
                  17   class ts_df1b2matrix {<br>
                  18 <br>
                  19         int allocated(void) {<br>
                  20             noaa::threads::Lock(mutex_);<br>
                  21             df1b2matrix_.allocated();<br>
                  22         }<br>
                  23 <br>
                  24         void initialize(void) {<br>
                  25             noaa::threads::Lock(mutex_);<br>
                  26             df1b2matrix_.initialize();<br>
                  27 <br>
                  28         }<br>
                  29 <br>
                  30         ~ts_df1b2matrix() {<br>
                  31             noaa::threads::Lock(mutex_);<br>
                  32             ~df1b2matrix_;<br>
                  33         }<br>
                  34 <br>
                  35         int rowmin(void) const {<br>
                  36             noaa::threads::Lock(mutex_);<br>
                  37             df1b2matrix_.rowmin();<br>
                  38         }<br>
                  39 <br>
                  40         int indexmin(void) const {<br>
                  41             noaa::threads::Lock(mutex_);<br>
                  42             df1b2matrix_.indexmin();<br>
                  43         }<br>
                  44 <br>
                  45         int indexmax(void) const {<br>
                  46             noaa::threads::Lock(mutex_);<br>
                  47             df1b2matrix_.indexmax();<br>
                  48         }<br>
                  49 <br>
                  50         int rowmax(void) const {<br>
                  51             noaa::threads::Lock(mutex_);<br>
                  52             df1b2matrix_.rowmax();<br>
                  53         }<br>
                  54 <br>
                  55         int size(void) const {<br>
                  56             noaa::threads::Lock(mutex_);<br>
                  57             df1b2matrix_.size();<br>
                  58         }<br>
                  59 <br>
                  60         ts_df1b2matrix(int nrl, int nrh) {<br>
                  61             noaa::threads::Lock(mutex_);<br>
                  62             df1b2matrix_(nrl, nrh);<br>
                  63         }<br>
                  64 <br>
                  65         ts_df1b2matrix(const df1b2matrix
                  &other) {<br>
                  66             noaa::threads::Lock(mutex_);<br>
                  67             df1b2matrix_(other);<br>
                  68         }<br>
                  69 <br>
                  70         ts_df1b2matrix(const ts_df1b2matrix
                  &other) {<br>
                  71             noaa::threads::Lock(mutex_);<br>
                  72               noaa::threads::Lock2(other.mutex_);<br>
                  73             df1b2matrix_(other.df1b2matrix_);<br>
                  74         }<br>
                  75 <br>
                  76         ts_df1b2matrix(int nrl, int nrh, const
                  index_type &ncl, const index_type &nch) {<br>
                  77             noaa::threads::Lock(mutex_);<br>
                  78             df1b2matrix(nrl, nrh, ncl, nch);<br>
                  79         }<br>
                  80 <br>
                  81          ts_df1b2matrix& operator=(const
                  df3_one_matrix &other) {<br>
                  82             noaa::threads::Lock(mutex_);<br>
                  83             this->df1b2matrix_ = other;<br>
                  84         }<br>
                  85  <br>
                  .<br>
                  .<br>
                  .<br>
                  .<br>
                  <br>
                  162 <br>
                  163     private:<br>
                  164         mutable noaa::threads::Mutex mutex_;<br>
                  165         df1b2matrix df1b2matrix_;<br>
                  166 <br>
                  167 <br>
                  168     };<br>
                  <br>
                  <br>
                  The call "noaa::threads::Lock(mutex_); " will lock the
                  function and then unlock it as it goes out of scope.<br>
                  I'll be happy to pass the finished product for review.<br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  Matthew Supernaw<br>
                  Scientific Programmer<br>
                  National Oceanic and Atmospheric Administration<br>
                  National Marine Fisheries Service<br>
                  Sustainable Fisheries Division<br>
                  St. Petersburg, FL, 33701<br>
                  Office 727-551-5606<br>
                  Fax 727-824-5300<br>
                  <br>
                  On Nov 29, 2012, at 3:00 PM,
                  <a class="moz-txt-link-abbreviated" href="mailto:developers-request@admb-project.org">developers-request@admb-project.org</a> wrote:<br>
                  <br>
                  <blockquote type="cite">Send Developers mailing list
                    submissions to<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-abbreviated" href="mailto:developers@admb-project.org">developers@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">To subscribe or unsubscribe
                    via the World Wide Web, visit<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                  </blockquote>
                  <blockquote type="cite">or, via email, send a message
                    with subject or body 'help' to<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-abbreviated" href="mailto:developers-request@admb-project.org">developers-request@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">You can reach the person
                    managing the list at<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-abbreviated" href="mailto:developers-owner@admb-project.org">developers-owner@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">When replying, please edit
                    your Subject line so it is more specific<br>
                  </blockquote>
                  <blockquote type="cite">than "Re: Contents of
                    Developers digest..."<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">Today's Topics:<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">  1. Re: admb threading (Mark
                    Maunder)<br>
                  </blockquote>
                  <blockquote type="cite">  2. Re: admb threading (dave
                    fournier)<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">----------------------------------------------------------------------<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">Message: 1<br>
                  </blockquote>
                  <blockquote type="cite">Date: Thu, 29 Nov 2012
                    17:50:41 +0000<br>
                  </blockquote>
                  <blockquote type="cite">From: Mark Maunder
                    <a class="moz-txt-link-rfc2396E" href="mailto:mmaunder@iattc.org"><mmaunder@iattc.org></a><br>
                  </blockquote>
                  <blockquote type="cite">To: dave fournier
                    <a class="moz-txt-link-rfc2396E" href="mailto:davef@otter-rsch.com"><davef@otter-rsch.com></a>,<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-rfc2396E" href="mailto:developers@admb-project.org">"developers@admb-project.org"</a><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-rfc2396E" href="mailto:developers@admb-project.org"><developers@admb-project.org></a><br>
                  </blockquote>
                  <blockquote type="cite">Subject: Re: [Developers] admb
                    threading<br>
                  </blockquote>
                  <blockquote type="cite">Message-ID:<br>
                  </blockquote>
                  <blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre"> </span><a class="moz-txt-link-rfc2396E" href="mailto:339913E1960AE142A9373DFCD849F3DA325FA148@mail1.lajolla.iattc.org"><339913E1960AE142A9373DFCD849F3DA325FA148@mail1.lajolla.iattc.org></a><br>
                  </blockquote>
                  <blockquote type="cite">Content-Type: text/plain;
                    charset="us-ascii"<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">What about the calculation of
                    the hessian, which can be quite long on parameter
                    rich models.<br>
                  </blockquote>
                  <blockquote type="cite">Profile likelihoods would also
                    be another easy one  <br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">-----Original Message-----<br>
                  </blockquote>
                  <blockquote type="cite">From:
                    <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                    [<a class="moz-txt-link-freetext" href="mailto:developers-bounces@admb-project.org">mailto:developers-bounces@admb-project.org</a>] On
                    Behalf Of dave fournier<br>
                  </blockquote>
                  <blockquote type="cite">Sent: Thursday, November 29,
                    2012 9:26 AM<br>
                  </blockquote>
                  <blockquote type="cite">To:
                    <a class="moz-txt-link-abbreviated" href="mailto:developers@admb-project.org">developers@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite">Subject: Re: [Developers] admb
                    threading<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">On 12-11-29 09:11 AM, Hans J.
                    Skaug wrote:<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">The obvious transparent one is
                    the -ndb (num der blocks) which was already set up
                    for mult-threading, and I recall Derek was doing
                    something with that, but I never heard about it
                    again, and it is not for separable models.  For
                    separable models one could split up the separable
                    function calls by different threads in a transparent
                    manner.  Both of these involve using the __thread
                    declaration to deal with some global data
                    structures.  The real point of my proof of concept
                    example was to demonstrate that this can be done
                    quite easily.<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Both are useful, but
                      currently "transparent to the user" is the most
                      important.<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">hans<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">-----Original Message-----<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">From:
                        <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                        [<a class="moz-txt-link-freetext" href="mailto:developers">mailto:developers</a>- <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:bounces@admb-project.org">bounces@admb-project.org</a>]
                        On Behalf Of Mark Maunder<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Sent: Thursday, November
                        29, 2012 8:23 AM<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">To: John Sibert; ADMB
                        Developers<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Subject: Re: [Developers]
                        admb threading<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">parallel code that is
                        "transparent" to the user<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">-----Original Message-----<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">From:
                        <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                        [<a class="moz-txt-link-freetext" href="mailto:developers">mailto:developers</a>- <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:bounces@admb-project.org">bounces@admb-project.org</a>]
                        On Behalf Of John Sibert<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Sent: Wednesday, November
                        28, 2012 4:30 PM<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">To: ADMB Developers<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Subject: [Developers] admb
                        threading<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Johnoel and I need some
                        feedback about how to approach threading. <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Dave has provided a nice
                        proof of concept using pthreads to implement <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">parallel processing on
                        larger chunks of code. This approach is likely <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">to have the biggest
                        performance improvement, but seems application <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">specific and would require
                        more expertize on the part of users.<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Alternatively it is
                        possible to implement threading internally in
                        the <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">ADMB libraries,
                        concentrating on smaller chunks of code, for
                        instance <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">the solve(...) function.
                        This approach would probably have smaller <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">performance payoff in most
                        applications, but would be more transparent to
                        users.<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">In principle, the two
                        approaches are not mutually exclusive.<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">So my question to the ADMB
                        Developer group is what did we mean when <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">we assigned a high
                        priority to parallelization?  Do we want
                        parallel <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">code that is "transparent"
                        to the user (if so what parts of the would <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">have the highest
                        priority)? Or do we want to develop tools that
                        allow <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">users to create their on
                        threaded code for specific applications? <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">(Don't tell me both.)<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Cheers,<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">John<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">PS enjoy the attached.<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">--<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">John Sibert<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Emeritus Researcher, SOEST<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">University of Hawaii at
                        Manoa<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Visit the ADMB project
                        <a class="moz-txt-link-freetext" href="http://admb-project.org/">http://admb-project.org/</a><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">_______________________________________________<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Developers mailing list<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">_______________________________________________<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Developers mailing list<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">_______________________________________________<br>
                  </blockquote>
                  <blockquote type="cite">Developers mailing list<br>
                  </blockquote>
                  <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">------------------------------<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">Message: 2<br>
                  </blockquote>
                  <blockquote type="cite">Date: Thu, 29 Nov 2012
                    09:53:45 -0800<br>
                  </blockquote>
                  <blockquote type="cite">From: dave fournier
                    <a class="moz-txt-link-rfc2396E" href="mailto:davef@otter-rsch.com"><davef@otter-rsch.com></a><br>
                  </blockquote>
                  <blockquote type="cite">To: Mark Maunder
                    <a class="moz-txt-link-rfc2396E" href="mailto:mmaunder@iattc.org"><mmaunder@iattc.org></a><br>
                  </blockquote>
                  <blockquote type="cite">Cc:
                    <a class="moz-txt-link-rfc2396E" href="mailto:developers@admb-project.org">"developers@admb-project.org"</a>
                    <a class="moz-txt-link-rfc2396E" href="mailto:developers@admb-project.org"><developers@admb-project.org></a><br>
                  </blockquote>
                  <blockquote type="cite">Subject: Re: [Developers] admb
                    threading<br>
                  </blockquote>
                  <blockquote type="cite">Message-ID:
                    <a class="moz-txt-link-rfc2396E" href="mailto:50B7A129.5030200@otter-rsch.com"><50B7A129.5030200@otter-rsch.com></a><br>
                  </blockquote>
                  <blockquote type="cite">Content-Type: text/plain;
                    charset=ISO-8859-1; format=flowed<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">On 12-11-29 09:50 AM, Mark
                    Maunder wrote:<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">The biggest improvement to the
                    profile likelihood would be to replace <br>
                  </blockquote>
                  <blockquote type="cite">the current<br>
                  </blockquote>
                  <blockquote type="cite">penalty function method with
                    the augmented Lagrangian.<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">What about the calculation
                      of the hessian, which can be quite long on
                      parameter rich models.<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Profile likelihoods would
                      also be another easy one<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">-----Original Message-----<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">From:
                      <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                      [<a class="moz-txt-link-freetext" href="mailto:developers-bounces@admb-project.org">mailto:developers-bounces@admb-project.org</a>] On
                      Behalf Of dave fournier<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Sent: Thursday, November 29,
                      2012 9:26 AM<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">To:
                      <a class="moz-txt-link-abbreviated" href="mailto:developers@admb-project.org">developers@admb-project.org</a><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Subject: Re: [Developers]
                      admb threading<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">On 12-11-29 09:11 AM, Hans
                      J. Skaug wrote:<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">The obvious transparent one
                      is the -ndb (num der blocks) which was already set
                      up for mult-threading, and I recall Derek was
                      doing something with that, but I never heard about
                      it again, and it is not for separable models.  For
                      separable models one could split up the separable
                      function calls by different threads in a
                      transparent manner.  Both of these involve using
                      the __thread declaration to deal with some global
                      data structures.  The real point of my proof of
                      concept example was to demonstrate that this can
                      be done quite easily.<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Both are useful, but
                        currently "transparent to the user" is the most
                        important.<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">hans<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">-----Original
                          Message-----<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">From:
                          <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                          [<a class="moz-txt-link-freetext" href="mailto:developers">mailto:developers</a>-<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:bounces@admb-project.org">bounces@admb-project.org</a>]
                          On Behalf Of Mark Maunder<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Sent: Thursday, November
                          29, 2012 8:23 AM<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">To: John Sibert; ADMB
                          Developers<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Subject: Re:
                          [Developers] admb threading<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">parallel code that is
                          "transparent" to the user<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">-----Original
                          Message-----<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">From:
                          <a class="moz-txt-link-abbreviated" href="mailto:developers-bounces@admb-project.org">developers-bounces@admb-project.org</a>
                          [<a class="moz-txt-link-freetext" href="mailto:developers">mailto:developers</a>-<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:bounces@admb-project.org">bounces@admb-project.org</a>]
                          On Behalf Of John Sibert<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Sent: Wednesday,
                          November 28, 2012 4:30 PM<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">To: ADMB Developers<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Subject: [Developers]
                          admb threading<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Johnoel and I need some
                          feedback about how to approach threading.<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Dave has provided a nice
                          proof of concept using pthreads to implement<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">parallel processing on
                          larger chunks of code. This approach is likely<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">to have the biggest
                          performance improvement, but seems application<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">specific and would
                          require more expertize on the part of users.<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Alternatively it is
                          possible to implement threading internally in
                          the<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">ADMB libraries,
                          concentrating on smaller chunks of code, for
                          instance<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">the solve(...) function.
                          This approach would probably have smaller<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">performance payoff in
                          most applications, but would be more
                          transparent to users.<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">In principle, the two
                          approaches are not mutually exclusive.<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">So my question to the
                          ADMB Developer group is what did we mean when<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">we assigned a high
                          priority to parallelization?  Do we want
                          parallel<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">code that is
                          "transparent" to the user (if so what parts of
                          the would<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">have the highest
                          priority)? Or do we want to develop tools that
                          allow<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">users to create their on
                          threaded code for specific applications?<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">(Don't tell me both.)<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Cheers,<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">John<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">PS enjoy the attached.<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">--<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">John Sibert<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Emeritus Researcher,
                          SOEST<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">University of Hawaii at
                          Manoa<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Visit the ADMB project
                          <a class="moz-txt-link-freetext" href="http://admb-project.org/">http://admb-project.org/</a><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">_______________________________________________<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite">Developers mailing list<br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">
                        <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                        </blockquote>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">_______________________________________________<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite">Developers mailing list<br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">
                      <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">_______________________________________________<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite">Developers mailing list<br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite">
                    <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                    </blockquote>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">------------------------------<br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">_______________________________________________<br>
                  </blockquote>
                  <blockquote type="cite">Developers mailing list<br>
                  </blockquote>
                  <blockquote type="cite"><a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
                  </blockquote>
                  <blockquote type="cite"><a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite"><br>
                  </blockquote>
                  <blockquote type="cite">End of Developers Digest, Vol
                    45, Issue 5<br>
                  </blockquote>
                  <blockquote type="cite">*****************************************<br>
                  </blockquote>
                  <br>
                  -------------- next part --------------<br>
                  An HTML attachment was scrubbed...<br>
                  URL:
<a class="moz-txt-link-rfc2396E" href="http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment.html"><http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment.html></a><br>
                  -------------- next part --------------<br>
                  A non-text attachment was scrubbed...<br>
                  Name: Threads.hpp<br>
                  Type: application/octet-stream<br>
                  Size: 27706 bytes<br>
                  Desc: not available<br>
                  URL:
<a class="moz-txt-link-rfc2396E" href="http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment.obj"><http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment.obj></a><br>
                  -------------- next part --------------<br>
                  An HTML attachment was scrubbed...<br>
                  URL:
<a class="moz-txt-link-rfc2396E" href="http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment-0001.html"><http://lists.admb-project.org/pipermail/developers/attachments/20121203/086c40d2/attachment-0001.html></a><br>
                  <br>
                  ------------------------------<br>
                  <br>
                  _______________________________________________<br>
                  Developers mailing list<br>
                  <a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a><br>
<a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a><br>
                  <br>
                  <br>
                  End of Developers Digest, Vol 46, Issue 3<br>
                  *****************************************<br>
                </div>
              </blockquote>
            </div>
            <br>
          </div>
        </blockquote>
      </div>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a>
</pre>
    </blockquote>
    <br>
  </div>

</blockquote></div><br></body></html>