[Developers] admb threading

dave fournier davef at otter-rsch.com
Wed Nov 28 18:20:40 PST 2012


On 12-11-28 04:30 PM, John Sibert wrote:

The problem is that it is a moving target.  ADMB-RE was originally 
intended to
deal with RE's stuck into an arbitrary  nonlinear model without any 
special structure.

These models generally have highly confounded parameters so can not be 
handled
easily with the usual MCMC stuff. In fact I don't think there was any 
other package that
could begin to deal with them. Downside from that is that the 
cognoscenti  actively
discourage any discussion of such so that the unwashed have no concept 
of moving in this
direction. As a result ADMB-RE was dumbed down to deal mostly with 
separable models.
The kind of multi-threading opportunities are quite different. I'm not 
sure where to go with
that.  I see little value in dealing with models so trivial that they 
can be done in R, but that
seems to be where the uninformed market is.

I have perused the code for the multi-threaded LU decomposition in 
Lapack / openblas.

It is very fast but suffers from the fact that this was written by 
unrepentant FORTRASH
programmers with no idea of using the correct data structures for the 
problem.
As a result taking that code and producing adjoint code from it or df1 
code for use in
large spatial models would be very difficult and probably a waste of time.

I have developed some ideas for what I think could be a successful 
approach to this
but have yet to be convinced that anyone is interested.



> Johnoel and I need some feedback about how to approach threading. Dave 
> has provided a nice proof of concept using pthreads to implement 
> parallel processing on larger chunks of code. This approach is likely 
> to have the biggest performance improvement, but seems application 
> specific and would require more expertize on the part of users.
>
> Alternatively it is possible to implement threading internally in the 
> ADMB libraries, concentrating on smaller chunks of code, for instance 
> the solve(...) function. This approach would probably have smaller 
> performance payoff in most applications, but would be more transparent 
> to users.
>
> In principle, the two approaches are not mutually exclusive.
>
> So my question to the ADMB Developer group is what did we mean when we 
> assigned a high priority to parallelization?  Do we want parallel code 
> that is "transparent" to the user (if so what parts of the would have 
> the highest priority)? Or do we want to develop tools that allow users 
> to create their on threaded code for specific applications? (Don't 
> tell me both.)
>
> Cheers,
> John
> PS enjoy the attached.
>
>
>
> _______________________________________________
> Developers mailing list
> Developers at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/developers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/developers/attachments/20121128/b0c737ec/attachment.html>


More information about the Developers mailing list