Thanks Barry and thanks to others who applied off-list. I can see that I should have given more details about my motives for wanting to replace a Fortran program by an R one.

At this stage I want to get something working in pure R because it is easier to fool around with and tweak with than Fortran and I have a few things that I want to try out that will involve perturbing the original code and I think I'd rather be doing them in R than in a 3GL.

Now that I have publicly asked the question I find that the answer to it occurs to me:

The program that I want to port to R is an ML estimation by the EM algorithm. The iterative steps are fairly simple except they need to be repeated a large number of times. What I have noticed is that I can replace (maybe) the within-step loops by matrix multiplications. This means that I will, by using %*%, be effectively handing a lot of the work to external Fortran (or similar) routines without calling .Fortran().

OK, I know that you can see though me and I accept that I am just rationalising my reluctance to get into package-writing. I will bite the bullet on that in due course but for the meantime I'm just going to fool around with straight R.

Barry came closest to answering my real question and I will formulate a follow-up question as follows:

Does anyone know of a helpful set of examples of the vectorization of code?

Cheers,  Murray


On 6/01/2011 12:32 a.m., Barry Rowlingson wrote:
On Wed, Jan 5, 2011 at 7:33 AM, lcn<[email protected]>  wrote:

As for your actual requirement to do the "convertion", I guess there'd not
exist any quick ways. You have to be both familiar with R and the other
language to make the rewrite work.

  To make the rewrite work _well_ is the bigger problem! The easiest
way to big performance wins is going to be spotting vectorisation
possibilities in the Fortran code. Any time you see a DO K=1,N loop
then look to see if its just a single vector operation in R.

  Another way to big wins is to write test code, so you can check if
your R code gives the same results as the Fortran (C/C++) code at
every stage of the rewrite. Don't just write it all in one go and then
hope it works! Small steps....

Barry

--
Dr Murray Jorgensen      http://www.stats.waikato.ac.nz/Staff/maj.html
Department of Statistics, University of Waikato, Hamilton, New Zealand
Email: [email protected]                                Fax 7 838 4155
Phone  +64 7 838 4773 wk    Home +64 7 825 0441   Mobile 021 0200 8350

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to