MathGroup Archive 2009

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

Search the Archive

Re: A question about parallel computation in mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg103593] Re: [mg103472] A question about parallel computation in mathematica
  • From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
  • Date: Tue, 29 Sep 2009 07:39:49 -0400 (EDT)
  • References: <200909240350.XAA13384@smc.vnet.net>

Hi,

your code is completely useless since I don't see why one should compute
the same result eight times. But here is what you missed:

fun[n_] := First@AbsoluteTiming@N[Pi, n*10^6]
ParallelTable[fun[3], {i, 1, 4}] // AbsoluteTiming
DistributeDefinitions[fun];
ParallelTable[fun[3], {i, 1, 4}] // AbsoluteTiming

{29.608226, {6.893410, 6.849890, 6.845198, 6.848202}}

{10.246625, {9.339382, 10.221913, 9.790986, 9.587946}}

you should read ParallelTools/tutorial/Overview first!

Cheers
Patrick

On Wed, 2009-09-23 at 23:50 -0400, pratip wrote:
> Hi Everybody,
> 
> Recently I was looking through many parallel computation example in
> the documentation of Mathematica 7.0.1. If not very clear and adequate
> those documentation looks pretty impressive at the first glance. Hence
> I decided to do some Mathematica implementation of the small piece of
> software named Super Pi which is very famous among the common over
> clockers. It computes Pi up to a user defined decimal digits but in
> parallel using all the cores of your processor. Have look
> http://files.extremeoverclocking.com/file.php?f=36
> So my goal was to write a pure Mathematica code that computes Pi up to
> three million decimal digits eight times in parallel using the eight
> kernels available in my pc. However to compute this task once in my pc
> it requires just around 3.885 seconds (with Intel Core i7 975 extreme
> processor).
> 
> fun[n_]:=Module[{a,tic,toc},
> tic=TimeUsed[];
> a=N[Pi,n*10^6];
> toc=TimeUsed[];
> toc-tic
> ];
> (*For 3 million decimal digits*)
> In[24]:= fun[3]
> Out[24]= 3.885
> 
> Now let's see the parallel configuration of the PC. One can see that I
> indeed have eight kernels present in the system.
> 
> In[16]:= ParallelEvaluate[$ProcessID]
> Out[16]= {6712,6636,7928,4112,7196,5832,3992,7484}
> 
> In[17]:= ParallelEvaluate[$MachineName]
> Out[17]= {flowcrusher-pc,flowcrusher-pc,flowcrusher-pc,flowcrusher-
> pc,flowcrusher-pc,flowcrusher-pc,flowcrusher-pc,flowcrusher-pc}
> 
> Now to compute the same thing eight times but in parallel I tried the
> following combinations with no success at all. See yourself the
> disappointing timing results.
> 
> First:
> In[2]:= b=Table[3,{i,1,8}];tic=TimeUsed[];re=Parallelize[Map[fun[#]
> &,b],Method->"CoarsestGrained"];
> toc=TimeUsed[];
> toc-tic
> Out[4]= 30.935
> 
> Second:
> In[11]:= b=Table[3,{i,1,8}];tic=TimeUsed[];re=Parallelize[Map[fun[#=
> ]
> &,b],Method->"FinestGrained"];
> toc=TimeUsed[];
> toc-tic
> Out[13]= 30.872
> 
> Third:
> In[18]:= ParallelMap[fun[#] &, b] // Timing
> 
> Out[18]= {30.81, {3.884, 3.822, 3.854, 3.853, 3.837, 3.869, 3.822,
>  3.869}}
> 
> Fourth:
> In[21]:= ParallelTable[fun[3],{i,1,8}]//Timing
> Out[21]= {30.747,{3.868,3.807,3.837,3.838,3.806,3.854,3.884,3.853}}
> 
> Now finally to validate the fact that in spite of all these parallel
> commands only one single kernel is getting used by Mathematica we map
> our function over a list of eight threes b={3,3,3,3,3,3,3,3} and get
> the total time for the repetitive computation.
> 
> Validation of the claim:
> In[16]:= Map[fun[#]&,b]//Timing
> Out[16]= {30.748,{3.854,3.822,3.853,3.838,3.837,3.822,3.869,3.853}}
> 
> This shows that parallel commands used in the above codes had been
> simply useless.
> 
> I will highly appreciate if any of you guys can shade some light on
> this problem. It is very basic in nature but the idea involved is
> quite central in parallel computing. What I expect is that a neat and
> clean Mathematica code can be written for this problem that will bring
> the computation time to somewhere around 6-8 seconds in place of 30-31
> seconds as we have seen above. I will continue trying on the problem
> but in the mean time if any of you want to give it a try.
> 
> With best regards to all.
> 
> Pratip Chakraborty
> 



  • Prev by Date: Re: Re: Modifying Default Stylesheet?
  • Next by Date: Re: A question about parallel computation in mathematica
  • Previous by thread: A question about parallel computation in mathematica
  • Next by thread: Re: A question about parallel computation in mathematica