MathGroup Archive 2007

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

Search the Archive

Re: Slow Show/Graphics in v6.0

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80941] Re: Slow Show/Graphics in v6.0
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Thu, 6 Sep 2007 05:21:18 -0400 (EDT)
  • Organization: Uni Leipzig
  • References: <fbljvd$qf5$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de

Hi,

for the first statement try

Timing[
  With[{mr = 350, mt = 350},
   xar = Table[((ir - 1.)/(mr - 1.))*
      Cos[Pi*((it - 1.)/(mt - 1.))], {it, 1, mt}, {ir, 1, mr}];
   yar = Table[((ir - 1.)/(mr - 1.))*
      Sin[Pi*((it - 1.)/(mt - 1.))], {it, 1, mt}, {ir, 1, mr}];
   ]]

and it will be faster.

For the second part, Timing[] is absolute wrong, because the time is 
spend by the rendering of the Frontend and Timing[] measure only the 
time spend by the kernel. Anyway

Timing[
  With[{mr = 350, mt = 350},
   data = Table[{
       ((ir - 1.)/(mr - 1.))*Cos[Pi*((it - 1.)/(mt - 1.))],
       ((ir - 1.)/(mr - 1.))*Sin[Pi*((it - 1.)/(mt - 1.))]}, {it, 1,
       mt}, {ir, 1, mr}];
   ]]


Timing[
  i = 0;
  idx = Map[++i &, data, {2}];
  gc = GraphicsComplex[Flatten[data, 1],
    Line[Flatten[
      Drop[Drop[#, -1] & /@
        Transpose[{idx, RotateLeft [idx],
          RotateLeft  /@ RotateLeft [idx], RotateLeft /@ idx}, {3, 1,
          2}], -1], 1]]];
  Graphics[{Hue[0.7], AbsoluteThickness[0.1], gc},
   PlotRange -> {{-1, 1}, {0, 1}}, AspectRatio -> 1/2, Axes -> True,
   DisplayFunction -> $DisplayFunction, ImageSize -> 800]]

will be 3 times faster in the kernel.
But the true effect comes from the  rendering in the Frontend.

Regards
   Jens


Alex Shvydky wrote:
> Hello,
> 
> Just wanted to share my puzzlement (utter disappointment/
> frastration) with a ridiculously slow speed of Show/Graphics
> routines in the v6.0 of Mathematica as compared to 5.2,
> which to me at this point makes v6.0 plain unusable.
> 
> Working with hydrodynamic simulations I need to
> visualize the computational grid. So I wrote
> simple Mathematica routines to draw a simulation grid.
> In 5.2 they worked fabulously for the past couple of
> years.
> 
> Here's an example.
> First, set up two 2dimensional x- and y-coordinate
> arrays.
> 
> Timing[
>    mr = 350;
>    mt = 350;
>    xar = Table[((ir - 1.)/(mr - 1.))*Cos[Pi*((it - 1.)/(mt - 1.))],
>                {it, 1, mt}, {ir, 1, mr}];
>    yar = Table[((ir - 1.)/(mr - 1.))*Sin[Pi*((it - 1.)/(mt - 1.))],
>                {it, 1, mt}, {ir, 1, mr}];
> ]
> 
> In v6.0 it took
> Out[3]= {2.312, Null}
> In v5.2 it took
> {0.281 Second, Null}
> 
> Which is an order of magnitude difference, but hold on.
> Now let's plot the mesh by simply constructing table
> of edges of all the cells (I am aware that the algorithm
> below is very unoptimized and can be made faster etc. etc.
> It was not my intention to discuss here what should be the
> fastest algorithm to plot a 2-d mesh,
> nor was it my intention to debate the issue why one
> would need to plot such a large mesh in the first place...,
> but rather to compare the execution time for an IDENTICAL
> code on v6.0 and v5.2. and get some confirmation/explanation
> of such a suspiciously slow execution speed!).:
> 
> Timing[
> Show[
>     Graphics[{Hue[0.7], AbsoluteThickness[0.1],
> 	Table[{Line[{{xar[[it,ir]], yar[[it,ir]]},
>                       {xar[[it,ir + 1]],yar[[it,ir + 1]]},
>                       {xar[[it + 1,ir + 1]], yar[[it + 1,ir + 1]]},
>                       {xar[[it + 1,ir]], yar[[it + 1,ir]]}}]},
>          {ir, 1, mr - 1}, {it, 1, mt - 1}]
>     }],
> PlotRange -> {{-1, 1}, {0, 1}}, AspectRatio -> 1/2, Axes -> True, 
> DisplayFunction -> $DisplayFunction, ImageSize -> 800]]
> 
> While the timing as, it is returned by the Timing[] function,
> is smaller in the v6.0:
> {1.703, <Here goes the actual graphics>}
> vs.
> {2.094 Second, -Graphics-}
> in v5.2
> 
> 
> The actual cell evaluation time in v.6.0 is 124.11 seconds
> vs. 2.22 seconds in v 5.2. ???!!!!!!!
> 
> Could anybody please confirm this. Also it would be helpful
> if someone from Wolfram Research would explain if
> that is intended (unavoidable) by design or maybe
> a simple setting (which I am unaware of) or a future patch
> will be able to fix it.
> 
> Also, it is horribly slow to resize the above graphics
> in v5.2 you just grab the corned and drag. In v6.0 you
> must do it 10-100 times slower (is it possible
> that I just have a very poor graphics card?).
> 
> 
> Thanks,
> Alex Shvydky
> 


  • Prev by Date: Re: strange rounding result
  • Next by Date: Re: How to compile this module?
  • Previous by thread: Re: Slow Show/Graphics in v6.0
  • Next by thread: Re: Slow Show/Graphics in v6.0