MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Any idea how to parallelize this small code construct

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110892] Re: Any idea how to parallelize this small code construct
  • From: "Jon Harrop" <usenet at ffconsultancy.com>
  • Date: Sat, 10 Jul 2010 04:01:36 -0400 (EDT)
  • References: <i13tso$7j1$1@smc.vnet.net>

"pratip" <pratip.chakraborty at gmail.com> wrote in message 
news:i13tso$7j1$1 at smc.vnet.net...
> Dear Group,
>
> Here is a simple code to solve linear systems. It is motivated from
> Fullerton University numerics example. Now if someone can suggest how
> to parallelize this code.
>
> SORmethod[A0_, B0_, P0_, omega_, max_] :=
> Module[{A = N[A0], B = N[B0], i, j, k = 0, n = Length[P0], P = P0,
>   oldP = P0},
>  While[ k < max,
>   Do[P[[i]] = (1 - omega) oldP[[i]] +
>      omega/A[[i,
>        i]] (B[[i]] - Sum[A[[i, j]] P[[j]], {j, 1, i - 1}] -
>         Sum[A[[i, j]] oldP[[j]], {j, 1 + i, n}]) , {i, 1, n}];
>   oldP = P;
>   k = k + 1; ];
>  Return[P] ]

Frigo et al. described a cache oblivious divide-and-conquer algorithm that 
parallelizes such functions effectively but you'll need modern 
infrastructure for load-balanced parallelism on multicores.

I don't really see the point of parallelizing that in Mathematica. The 
serial implementation might be useful as an educational exercise but it will 
be orders of magnitude slower than necessary and Mathematica cannot express 
an efficient parallel solution.

Cheers,
Jon.



  • Prev by Date: Re: replacement x->y except in Exp[x]
  • Next by Date: Re: image is not graphics
  • Previous by thread: Any idea how to parallelize this small code construct
  • Next by thread: Displaying cylinders