[R] using mclapply (multi core apply) to do matrix multiplication

Rainer M Krug r.m.krug at gmail.com
Tue Feb 7 12:08:32 CET 2012


On 07/02/12 12:02, Alaios wrote:
> Thank you very much for your point...
> I hope I can find some easy to follow instructions as I do not have root
> permission

Me neither on pur cluster - but that won't stop you from compiling and 
installing R in your home directory. By doing this, you have even more 
control.

Cheers and good luck,

Rainer

for the many cores system and our system administrator want
> to have easy instructions to follow.
> Thanks a gain.
>
> ------------------------------------------------------------------------
> *From:* Rainer M Krug <r.m.krug at gmail.com>
> *To:* Alaios <alaios at yahoo.com>
> *Cc:* Ernest Adrogué <nfdisco at gmail.com>; "r-help at r-project.org"
> <r-help at r-project.org>
> *Sent:* Tuesday, February 7, 2012 11:44 AM
> *Subject:* Re: [R] using mclapply (multi core apply) to do matrix
> multiplication
>
> On 07/02/12 11:31, Alaios wrote:
>  > I would like to thank you Ernest for your answer. I guess that this
>  > is gonna be faster as right now R only sees one core. In my work
>  > there is a system with 64 cores and you can see only one working. If
>  > I understand it right a [m,n][n,k] matrix multiplication can be split
>  > into rows (from first matrice) and columns (from the second matrice)
>  > and then combine all the local results of each cpu together.
>
> You definitaly can go this way, but I would STRONGLY recommend to search
> for "parallel BLAS", check in the R-admin manual the section "Linear
> Algebra" which deals with BLAS et al, and e.g.
> http://www.r-bloggers.com/compiling-64-bit-r-2-10-1-with-mkl-in-linux/
>
> My guess is that a paralelization on the C level in the BLAS et al.
> library will be MUCH faster then a paralelization on R level.
>
> Also, there is a R-sig-hpc mailing list for these kind of questions.
>
> Cheers,
>
> Rainer
>  >
>  > Would that be too weird for mclapply to handle?
>  >
>  > B.R Alex
>  >
>  >
>  >
>  > ________________________________ From: Ernest
>  > Adrogué<nfdisco at gmail.com <mailto:nfdisco at gmail.com>> To:
> r-help at r-project.org <mailto:r-help at r-project.org> Sent: Tuesday,
>  > February 7, 2012 11:02 AM Subject: Re: [R] using mclapply (multi core
>  > apply) to do matrix multiplication
>  >
>  > 7-02-2012, 00:29 (-0800); Alaios escriu:
>  >> Dear all, I am trying to multiply three different matrices and
>  >> each matrice is of size 16384,16384 the normal %*% multiplciation
>  >> operator has not finished one day now. As I am running a system
>  >> with many cores (and it seems that R is using only one of those) I
>  >> would like to write fast a brief function that converts the typical
>  >> for loops of a matrix multiplication to a set of lapply sets
>  >> (mclapply uses the lapply syntax but it applies the work to many
>  >> cores).
>  >>
>  >> If my thinking is correct , in the sense that this will speed up
>  >> things a lot, I want you to help me covert the first matrix in
>  >> rows the second in columns and convert those in a format that
>  >> lapply would like to work with.
>  >
>  > If I understand correctly, R uses a specialized library called BLAS
>  > to do matrix multiplications. I doubt re-implementing the matrix
>  > multiplication code at R-level would be any faster. What you can try
>  > is replace BLAS with a multicore version of BLAS although it's not
>  > easy if you have to compile it yourself.
>  >
>  > Also, you may try to re-think the problem you're trying to solve.
>  > Maybe there's a different approach that is less
>  > computation-intensive.
>  >
>  >
>  >
>  >
>  > ______________________________________________ R-help at r-project.org
> <mailto:R-help at r-project.org>
>  > 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.
>
>
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
> Biology, UCT), Dipl. Phys. (Germany)
>
> Centre of Excellence for Invasion Biology
> Stellenbosch University
> South Africa
>
> Tel : +33 - (0)9 53 10 27 44
> Cell: +33 - (0)6 85 62 59 98
> Fax : +33 - (0)9 58 10 27 44
>
> Fax (D): +49 - (0)3 21 21 25 22 44
>
> email: Rainer at krugs.de <mailto:Rainer at krugs.de>
>
> Skype: RMkrug
>
>


-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation 
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer at krugs.de

Skype:      RMkrug



More information about the R-help mailing list