Quake3 to go SMP
schmack writes "Surfing the Id plans, John Carmack mentions he's working on SMP support for Quake 3. Although initially developed for NT, he says "it should
definately make its way to the linux port...".
Look for a speed up of 20% [worst case] to 80% in frame rate over a single CPU. This will mean "it will also be possible to build a reletively cheap SMP system (say, dual 400's) that outperforms the best single processor system." "
I love how people discuss making a truly multi-threaded game as if it's not much harder. In truth, coding a fully threaded game is INCREDIBLY difficult. You might be suprised to know that most games today are not threaded. It's hard enough as it is.
In true /. style the "story" is incomplete: Carmack goes on to say "I know SMP is a que for all the BeOS folks to ask about ports, so I'm going to head that off: Be has all the code for Q3 (and Q2, for that matter), and a version of Q3test should be available by the time they ship a release OS with OpenGL hardware acceleration. "
This release is due in the next 3-4 weeks BTW so hopefully a month from now we'll be playing SMP Quake 2&3 on BeOS. Apparently a basic quick and dirty Quake->BeOS port was done in 1 day, and the full port in a week. I don't know if this was a port to a UNIX-like single thread process or if it takes advantage of any of the BeOS features. However given the ease of use of the Be API im sure it will be relatively easy to at least divide the rendering into 2 or more threads to take advantage of SMP.
So then how do you explain why all the video card manufacturers are now coming out with OpenGL drivers? I'm sure it's not M$ pushing them to do it. Quite the contrary, M$ wants to push Direct3D. ID broke the ice with glquake, and ID's games and derivatives have had enough market share to get the video card manufacturer's attention. Add to that Carmack's donation to the Mesa project, and I'd say that one single game comany is making a change in the industry.
...now that companies are starting to offer combos of Celeron 300a and 333 PPGAs, together with an MSI-6905 Slot 1 adapter card (that supports SMP) and absurd cooling - guaranteed to run at 450Mhz and 500Mhz respectively.
Hands up who wants a 1000Mhz workstation for less than a grand?
This sig left unintentionally blank.
I don't think so!
I have a dual PPGA 300A Celeron running at 450 flawlessly...
The only problem when going dual is that you have to use the lowest working frequence of your CPUs.
So if you have 70% chances of getting your overclocked CPU to run at a given frequency, you will have only 49% to get a dual running at the same speed.
Black holes occur when God divides by zero.
It's already there in large corporations. My last company was rolling out dual PIIs on every desktop throughout Europe (~4000 seats).
"The invisible and the non-existent look very much alike." -- Delos B. McKown
I blew most of my morning getting the tatterd remains of a rarely-used Windows98 partition working again, just so I could play the Quake3 Test since there's such lousy 3-D support among hardware vendors under Linux.
;)
Does anyone know if there are any AGP video cards that have accelerated X-windows support and OpenGL support under Linux? It seems the Voodoo3 boards don't, and I'll be damned if I can find anyone who makes all-in-one Voodoo 2 cards that are confirmed to work under Linux.
(I can say though, that I DO miss playing those quake-type games sometimes...)
Bohn's first rule for scalability. If you're worried about bottlenecking the master node, try not to have a master node -- decentralize the supervisor functions. ... set some minimum grain to avoid conjesting the network. I think a single room would be the absolute minimum.
I suppose you could try to set up a QuakeWorld server on a cluster. If you're going to think in terms of "objects," though, you might be better off using a shared-object library such as a CORBA implementation instead of an MPI implementation.
I also think you'd be smart to be careful about how you distribute the "world" -- a static distribution would make poor use of the processors (consider the case where all players are in the same general part of the world). But you don't want to go overboard with dynamic distribution
Christopher A. Bohn
cb
Oooh! What does this button do!?
(sigh) ... but that wouldn't be using the cluster as a Beowulf.
Not too likely. The degree of rewriting alone would probably kill such a project. That it would probably slow down execution would not make it terribly popular. I'm assuming you're talking about using the cluster for a single player. You could, of course, use the cluster for multiple players (one per node), which is already built-in to Quake
FWIW, we're putting together a long-overdue Beowulf FAQ that answers this and other questions.
Christopher A. Bohn
cb
Oooh! What does this button do!?
Cool though it is... you have to wonder if its getting a little out of hand. Multiple processors for a game? How long before we make that leap of *needing* multiple processors, just as it now *needs* 3D acceleration. Scary...
ok here it is..
.. available in a PCI or AGP format (no agp texturing though) and the 2d graphics processor has a 300mhz ramdac (I think)
Voodoo 1 (voodoo graphics) is a 3d only card that works with an existing 2d video card to provid 3d hardware acceleration in glide and opengl (now)
Voodoo 2 boards are also 3d only, and work in conjunction with an existing 2d video card.. these also are only avaiable in a pci card, however they support more ram then the origingal voodoo boards (8 or 12mb) and can be configured with 2 boards in an SLI (scan line interleave) mode (one board draws the even lines, the other the odd lines)
Voodoo 3 is the latest product, its a single board solution 2d AND 3d
its available in 3 grades -
The 2000 (pci or agp - 3d processor running at 143mhz)
The 3000 (agp only - 3d @ 166 mhz I think)
The 3500 (agp only, tv tuner - 3d @ 184mhz I think)
They're pretty nice cards.. I just bought a pci version of the V3 2000 and I love it!
True. However, if I understand correctly, you won't be able to use system memory for texturing without explicit AGP support. This is one of the primary benefits of AGP (especially with cards that let you read triangle setup data from AGP memory; bus-limit bottlenecks just got a lot wider).
I don't know what kind of support this requires OS-side, but the previous post implied that AGP chipset specs are needed. Certainly the OS needs to be able to lock and unlock sections of memory for use with AGP. The graphics-card side AGP support isn't a problem if you have proper specs for the card (though that's a big "if").
It's a bit surprising that the app isn't multithreaded. I haven't played Quake 3, and I hear that it's all net-play (e.g. no AI opponents) but I would still expect that there's plenty of things to parallelize. I guess Carmack never bothered to deal with it -- but now he is!! Hooray!
I guess multithreading would have made more sense back before 3D hardware was common and the CPU had to draw everything. I always though Wolf3D would really fly if only I had a CPU to raycast every pixel. ;-)
This is actually extremely cool, as it should draw more attention to SMP systems. If SMP gets a bit more entranched, multithreaded apps will become the norm. :-) Seriously, "little" things like this are what causes long-term trends. The x86 would probably be a thing of the past if it weren't for Id Software's earlier titles. ;-P
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
They really do *everything* right. ;)
- Release the source of old games.
- Port to Linux/Mac/BeOS/Irix.
- Piss of Microsoft by using OpenGL.
- Make decent games.
- And now, do SMP.
Me like ID Software. Great people do great things.
So you grab and OC 2 Celery 300As to 450, pop in two PGP(?) linked Ultra TNT2s to further accelerate the system, a 3d PCI sound card to deal with all the sound effects and processing, and pop in Quake3Arena at 1600x1280 or something...
*Should* be playable. Otherwise, just drop down to 1280x1024 or something =)
Gosh, but this is so incredibly cool.
-AS
-AS
*Pikachu*
Even better would be a network type environment where you could install a client on other machines throughout the office and to suck their idle CPU time from their systems and turn it into a hyper-reality gaming experience for you. :)
"Don't use your computer's idle time to search for aliens... use it to kill them!" -- Quake's new marketing line.
You can't use the AMD processors in dual processor configurations. Intel uses a different interrupt controller (APIC) which lets them use multiple processor configurations.
SMP functionality for quake iii:arena was alluded
... earlier in his research.
to over a year ago. you may want to look at the
may 19, 1999 update at
http://www.scs.ryerson.ca/~h2jang/trinity.html
for further details. and, yes, Carmack did
later mention some disappointment about the
"marginal" improvment of an n-processor
configuration over a single processor machine. but that was many months ago
=-hin->