<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-size: 16px; "></div><div style="font-size: 16px; "><br></div><div style="font-size: 16px; "><br></div><div style="font-size: 16px; "><br></div><div><br></div><br><div apple-content-edited="true">
<div><div>Matthew Supernaw</div><div>Scientific Programmer</div><div>National Oceanic and Atmospheric Administration</div><div>National Marine Fisheries Service</div><div>Sustainable Fisheries Division</div><div>St. Petersburg, FL, 33701</div><div>Office 727-551-5606</div><div>Fax 727-824-5300</div></div>
</div>
<br><div><div>On Nov 29, 2012, at 3:00 PM, <a 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 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>http://lists.admb-project.org/mailman/listinfo/developers<br>or, via email, send a message with subject or body 'help' to<br><span class="Apple-tab-span" style="white-space:pre">   </span>developers-request@admb-project.org<br><br>You can reach the person managing the list at<br><span class="Apple-tab-span" style="white-space:pre">      </span>developers-owner@admb-project.org<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 (Mark Maunder)<br>   2. Re: admb threading (dave fournier)<br><br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Thu, 29 Nov 2012 17:50:41 +0000<br>From: Mark Maunder <mmaunder@iattc.org><br>To: dave fournier <davef@otter-rsch.com>,<br><span class="Apple-tab-span" style="white-space:pre">    </span>"developers@admb-project.org"<span class="Apple-tab-span" style="white-space:pre">     </span><developers@admb-project.org><br>Subject: Re: [Developers] admb threading<br>Message-ID:<br><span class="Apple-tab-span" style="white-space:pre">        </span><339913E1960AE142A9373DFCD849F3DA325FA148@mail1.lajolla.iattc.org><br>Content-Type: text/plain; charset="us-ascii"<br><br>What about the calculation of the hessian, which can be quite long on parameter rich models.<br>Profile likelihoods would also be another easy one  <br><br><br>-----Original Message-----<br>From: developers-bounces@admb-project.org [mailto:developers-bounces@admb-project.org] On Behalf Of dave fournier<br>Sent: Thursday, November 29, 2012 9:26 AM<br>To: developers@admb-project.org<br>Subject: Re: [Developers] admb threading<br><br>On 12-11-29 09:11 AM, Hans J. Skaug wrote:<br><br>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><br><br><br><blockquote type="cite">Both are useful, but currently "transparent to the user" is the most important.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">hans<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">-----Original Message-----<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">From: developers-bounces@admb-project.org [mailto:developers- <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">bounces@admb-project.org] On Behalf Of Mark Maunder<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Sent: Thursday, November 29, 2012 8:23 AM<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: John Sibert; ADMB Developers<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">parallel code that is "transparent" to the user<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: developers-bounces@admb-project.org [mailto:developers- <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">bounces@admb-project.org] On Behalf Of John Sibert<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Sent: Wednesday, November 28, 2012 4:30 PM<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">To: ADMB Developers<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Subject: [Developers] admb threading<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Johnoel and I need some feedback about how to approach threading. <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Dave has provided a nice proof of concept using pthreads to implement <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">parallel processing on larger chunks of code. This approach is likely <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">to have the biggest performance improvement, but seems application <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">specific and would require more expertize on the part of users.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Alternatively it is possible to implement threading internally in the <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ADMB libraries, concentrating on smaller chunks of code, for instance <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">the solve(...) function. This approach would probably have smaller <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">performance payoff in most applications, but would be more transparent to users.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">In principle, the two approaches are not mutually exclusive.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">So my question to the ADMB Developer group is what did we mean when <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">we assigned a high priority to parallelization?  Do we want parallel <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">code that is "transparent" to the user (if so what parts of the would <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">have the highest priority)? Or do we want to develop tools that allow <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">users to create their on threaded code for specific applications? <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(Don't tell me both.)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Cheers,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">John<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">PS enjoy the attached.<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">John Sibert<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Emeritus Researcher, SOEST<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">University of Hawaii at Manoa<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Visit the ADMB project http://admb-project.org/<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">Developers mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Developers@admb-project.org<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">http://lists.admb-project.org/mailman/listinfo/developers<br></blockquote></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Developers mailing list<br></blockquote><blockquote type="cite">Developers@admb-project.org<br></blockquote><blockquote type="cite">http://lists.admb-project.org/mailman/listinfo/developers<br></blockquote><br>_______________________________________________<br>Developers mailing list<br>Developers@admb-project.org<br>http://lists.admb-project.org/mailman/listinfo/developers<br><br><br>------------------------------<br><br>Message: 2<br>Date: Thu, 29 Nov 2012 09:53:45 -0800<br>From: dave fournier <davef@otter-rsch.com><br>To: Mark Maunder <mmaunder@iattc.org><br>Cc: "developers@admb-project.org" <developers@admb-project.org><br>Subject: Re: [Developers] admb threading<br>Message-ID: <50B7A129.5030200@otter-rsch.com><br>Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br><br>On 12-11-29 09:50 AM, Mark Maunder wrote:<br><br>The biggest improvement to the profile likelihood would be to replace <br>the current<br>penalty function method with the augmented Lagrangian.<br><br><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: developers-bounces@admb-project.org [mailto:developers-bounces@admb-project.org] On Behalf Of dave fournier<br></blockquote><blockquote type="cite">Sent: Thursday, November 29, 2012 9:26 AM<br></blockquote><blockquote type="cite">To: developers@admb-project.org<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: developers-bounces@admb-project.org [mailto:developers-<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">bounces@admb-project.org] 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: developers-bounces@admb-project.org [mailto:developers-<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">bounces@admb-project.org] 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 http://admb-project.org/<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">Developers@admb-project.org<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">http://lists.admb-project.org/mailman/listinfo/developers<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">Developers@admb-project.org<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">http://lists.admb-project.org/mailman/listinfo/developers<br></blockquote></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Developers mailing list<br></blockquote><blockquote type="cite">Developers@admb-project.org<br></blockquote><blockquote type="cite">http://lists.admb-project.org/mailman/listinfo/developers<br></blockquote><br><br><br>------------------------------<br><br>_______________________________________________<br>Developers mailing list<br>Developers@admb-project.org<br>http://lists.admb-project.org/mailman/listinfo/developers<br><br><br>End of Developers Digest, Vol 45, Issue 5<br>*****************************************<br></div></blockquote></div><br></body></html>