MathGroup Archive 2011

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

Search the Archive

Timing graphics in the real world

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122978] Timing graphics in the real world
  • From: Ralph Dratman <ralph.dratman at gmail.com>
  • Date: Sat, 19 Nov 2011 06:45:59 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

I am trying to find out why a piece of 3D graphics code takes a long
time when scaled up to a lot of little objects. For this purpose I
begin by timing ten runs of a small instance. Here's what my function
calls look like:

noneOfThat[] :=
 Module[{}, {drawSolidCube[], drawSolidCube[], drawSolidCube[],
   drawSolidCube[], drawSolidCube[], drawSolidCube[], drawSolidCube[],
    drawSolidCube[], drawSolidCube[], drawSolidCube[]}]

where SolidCube is actually not solid, but rather an aggregate of
about 20 cubelets per image in this first test case.

AbsoluteTiming[noneOfThat[]]
{0.072105,  ...}

or if you prefer,

Timing[noneOfThat[]]
{0.071197,  ...}

The timing answers are consistent within about 10% across several tries. Nice.

Just one problem: here in my universe, on a Core Duo Mac Mini at 2.4
GHz with about 2 GB of free memory, the actual process described above
takes about 10 seconds. The cores stay at around 50% usage (each)
while this is happening. Drawing is taking about 140 times longer than
Mathematica says!

Next I try the same task with a 2x increase in linear size of the
cube, leading to an 8x increase in volume and number of objects, with
again 10 repetitions in straight-line Mathematica code.

AbsoluteTiming then says 0.62970 while Timing says 0.574067, both in
the neighborhood of 8 times the earlier figures. Real-world time is
about 85 seconds, also in line with the 8x scaling.

Again the processors seem to be about half busy, and once again it
takes about 140 times as long to do the real drawing as Mathematica
reports.

I'm speculating all this means Mathematica is sending my graphics
hardware a bunch of asynchronous drawing calls while simultaneously
announcing, "Done!"

I infer that a faster graphics card might make a world of difference.
To make that possible, I could switch to a Windows or Linux system if
necessary.

If possible, I would like the new real-world drawing time to be at
least ten times better than the figures reported here.

Comments, please? I would be particularly interested to learn about
any specific hardware that might improve the speed.

Thank you very much.

Ralph Dratman



  • Prev by Date: Re: NIntegrate to compute LegendreP approximations to functions
  • Next by Date: Re: Problem displaying user-created .cdf files
  • Previous by thread: Re: What is the point of having Initializations in DynamicModule and Manipulate?
  • Next by thread: Re: Timing graphics in the real world