# [Beowulf] coprocessor to do "physics calculations"

Robert G. Brown rgb at phy.duke.edu
Fri May 5 06:47:03 PDT 2006

On Thu, 4 May 2006, Jim Lux wrote:

> Ran across an interesting device:
> http://physx.ageia.com/
>
> It's some sort of coprocessor (marketed to the gaming community) that looks
> like its designed to efficiently numerically integrate equations of motion.
> Clever idea.  Not much substantive info in the whitepaper.
> http://physx.ageia.com/whitepaper_avanced_gaming_physics.pdf

I agree -- some sort of coupled ODE solver, maybe with some firmware
support for things like gravitation and drag forces built on top of a
DSP/vector processor?

That could certainly be useful to physics simulations depending on a)
its speed; and b) its programmability.  If it is all in the card
firmware with a high level API, you may not be able to do real physics
with it (at least in a way that would be useful to most folks).  As in
\vec{F} = -mg\hat{z} won't work for cosmologists, dynamics on the moon
(unless g is adjustable), and so on.

There is also the issue of speed.  The reason to have it do physics as a
coprocessor task in gaming is that the CPU has other things to do --
e.g. process the interactive I/O stream, manage the graphical
presentation of the objects in the game field of view, implement the
game's basic logic, play sounds in real time while doing all of this.
Offloading ODE solution clearly leaves it better able to manage all of
this (much of which is interrupt driven) with less chance of game
jerkiness as it swaps sub-tasks in and out (often a problem with WinXX
to my own experience, at least -- it has gotten better as CPUs have
gotten SO fast they smooth out issues with the scheduler, but as WinXX
boxes have to manage relatively intense multitasking and interrupt
processing they can still crump a bit).  So the coprocessor doesn't have
to be "fast", just fast enough to keep up while freeing the main CPU to
have a good effect, with the best effect being on the oldest/slowest
hardware or with games with a really nasty set of I/O streams.

For a real physics simulation, though, it is all about speed.  I'll bet
many a dime that an AMD 64 or Opteron doing the ODEs native would beat
the same machine solving the same ODEs with the attached engine, and
you've got all sorts of new I/O issues to deal with as the CPU has to
tell it what to do and collect the results.  I think that there will
likely be only a very narrow range of real computations that might
benefit although (as always) I would be perfectly happy to be proven
wrong.

This may be yet another version of the famed "let's make a sony
playstation (or Xbox, or DSP, or whatever) cluster" discussion.  They,
too, have (or "are") integrated "physics" engines.  Yet it never quite
makes sense compared to just going with the best general purpose CPU.

rgb

>
> James Lux, P.E.
> Spacecraft Radio Frequency Subsystems Group
> Flight Communications Systems Section
> Jet Propulsion Laboratory, Mail Stop 161-213
> 4800 Oak Grove Drive
> tel: (818)354-2075
> fax: (818)393-6875
>
>
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf
>

--
Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb at phy.duke.edu