[Rd] idea for GSoC: an R package for fitting Bayesian Hierarchical Models

Antonio, Fabio Di Narzo antonio.fabio at gmail.com
Mon Mar 24 14:16:00 CET 2008


2008/3/24, hadley wickham <h.wickham at gmail.com>:
> >  Ya. But speeds are rather different.
>  >  I admittely missed a comparison with Umacs in my short demo.
>  >  However, from some early experiments (I'm doing while I'm writing), as
>  >  I suspected, my approach results being many times faster than Umacs,
>  >  even if one doesn't specify samplers as C code. Things goes even
>  >  better for my demo implementation if one tries to plug in samplers
>  >  specified as pure C code, which would further eliminate a lot of
>  >  memory allocations/deallocations behind those "rnorm()".
>  >
>
> There is some interesting work being done on this topic in computer
>  science - e.g.
>
>  @inproceedings{keller:2008,
>         Author = {Keller, Gabriele and Chaffey-Millar, Hugh and Chakravarty,
>  Manuel M. T. and Stewart, Don and Barner-Kowollik, Christopher},
>         Booktitle = {Proceedings of the Tenth International Symposium on
>  Practical Aspects of Declarative Languages},
>         Title = {Specialising Simulator Generators for High-Performance
>  Monte-Carlo Methods},
>         Url = {http://www.cse.unsw.edu.au/~chak/project/polysim/},
>         Year = {2008}
>  }
>
>  which explores a way to define a simulation at a high-level and then
>  compile it down to fast low-level primitives.  This seems like an
>  interesting approach, but I suspect you would struggle to find
>  students with the requisite statistical and computational backgrounds.
>
>  Hadley

Tnx for the reference: that's surely an interesting reading.

Instead of inventing a specialised meta-language for this kind of task
(I don't ever have the knowledge for doing something like that) I've
explored in the recent past the direct use of higher level languages
that can be compiled into native code. I've got most interesting
results in Steel Bank Common Lisp and OCaml. They really seem to do
what they claim :-)

However, writing something like a general purpose Gibbs sampler
framework in these languages seems to be a waste of time, as one
misses a lot of things which are already available in R. Not least:
random number generators from a lot of common distributions! Ok, one
can write wrapper code to the R standalone library, but this all looks
as extra-work.

So, waiting for an R-to-native code compiler, I think a feasible
approach can be to write R functions with pass-by-reference semantics
and a bounch of small C routines. In that respect, I was inspired by
the lush project:
http://lush.sourceforge.net
where mix of high level and C code is encouraged (note that lush at
the end has a native code compiler too).

Antonio.



More information about the R-devel mailing list