From: jimh@surreal.asd.sgi.com (Jim Helman)
Subject: Re: TECH:  VR Operating systems and languages
Date: Tue, 23 Jun 1992 21:48:52 GMT
Organization: Home for Degenerate Physicists


In article <l4047rINNgcl@exodus.Eng.Sun.COM> deering@deering.Eng.Sun.COM (Michael F. Deering) writes:

   For example, UNIX is not necessarly a single lock kernal.  As
   multi-processor UNIX HW and SW becomes widely available, re-entrent
   UNIX kernals are quite possible.  On the other hand, `real-time''
   support is just plain hard in any general purpose system, but the real
   needs of multimedia will put far more fininacial presure on companies
   to fix this long before VR is large enough to.

Michael is dead on about the utility of multiprocessing for VR work.
And a reentrant, highly-preemptable Unix kernel with fine-grained
locks is not a mere possibility.  IRIX has been this way for several
years.

There's no doubt that multiprocessing will play a larger role in the
future of VR and multimedia.  Multiprocessing buys you two very
important things: reliable scheduling and high throughput.

Scheduling: With all the stuff happening even on a relatively
quiescent Unix machine, you'll get hiccups when some daemon or the X
server needs to run.  For many demanding training applications,
hiccups are simply not allowed: the real world does not drop frames.
One processor for the VR application and one for Unix fixes this
nicely.  With the ability to set non-degrading priorities and lock
processes to processors, everything can happen when its supposed to.

Throughput: CPUs are cheaper than the sort of graphics hardware
required for realistic VR whether we're talking about a 486 with DVI
boards or a 4/440 VGXT.  It's an expensive waste of gfx hardware to
have just one CPU which spends half its time doing collision detection
or culling and just leaves the gfx hardware idle.  In a
multiprocessing model, one processor can be dedicated to sending
commands down the graphics pipe while the other processors set things
up for the next frame doing culling, intersection tests, physics,
sound, device I/O, etc.

One of the challenges for writing a high performance VR rendering
toolkit is to make as much of the multiprocessing (scheduling, shared
memory, ring buffers, updating of multibuffered copies) as transparent
as possible.

rgds,

-jim helman

jimh@surreal.asd.sgi.com
415/390-1151
