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." "
Matrox G200 is about as close as you're going to get. It's still alpha/beta, though, and Matrox hasn't given out ALL the specs, so it's never going to be very fast, but it's the closest thing to what you describe (without buying stuff from a commercial driver vendor). Maybe NVidia will have a driver soon, and all will be well. About AGP, though, Intel refuses to release the specs on that, so you stand no chance of using it unless you're on a VIA chipset (even then there's no actual support yet, just specs)
I thought Carmack already posted something explaining that the gain would be too small to warrant an SMP version and abandoned his previous attempt.
But, this does look authentic. Perhaps someone can help me out. I truly seem to remember some months ago carmack suggesting and then abandoning SMP support for Q3. Am i crazy?
-matt
another game to use SMP.
Falcon 4.0 supports SMP as well.
Now I upgrade my puney 400 to 466 celerons for Q3.
Isn't it funny that the only compelling reason to upgrade my computer is for games?
Voodoo [1,2,3] cards are all 3D only accelerators. You must have a 2d card in order to have 2d graphics :) (well actually there *are* XFree drivers so that you can use a voodoo2 as a 2d card but there is no reason to do this unless you only have 2 voodoo2's.) A combination voodoo2 (called Voodoo2 SLI) is where the voodoo2's are combined for a higher frame rate and greater resolution. A single voodoo2 can only do 800x600 @ so many frames per second (limited by your CPU). A voodoo2 SLI allows you to nearly double (again depending on your system) your frame rates and run quake for instance in 1024x768. A voodoo3 allows you to run 1024x768 also. Again, voodoo2 SLI does not necessarily mean twice the fps (frames per second) or resolution. If you have a 450 MHz or 500+ then you will reach the limit of the voodoo2 series. I'm not sure what maxes out the voodoo3 line or which one. There are multiple different types of voodoo3's...both PCI and AGP versions as well. I would be wary of the voodoo[1,2,3] line because of the 16 bit colors. Take a good look at the TNT2 cards. They are 32 bit color and are better. The trade off is of course the drivers. Not as many people support the TNT2 and most everyone supports voodoo[1,2,3]. Case in point is the Quake3Arena test which when it first came out would only run on 3DFX chips (voodoo series). The diamond v770 ultra TNT2 is rumored to be fully supported by Linux because diamond is working with XFree86. I wouldn't hold my breath though. Check out www.sharkyextreme.com for an article on the hurcules TNT2 card. For any hardware need, no one beats: www.tomshardware.com
Imagine what that will do for SMP system sales - that will be the breakthrough that will put SMP systems on every desktop.
No. No. Don't laugh.
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.
If Linux doesn't run well overclocked chances are that other applications will suffer as well. Anyway, I've heard that it is much more difficult to overclock a PPGA Celeron in a S370-S1 converter than a PPGA Celeron in a pure S370 configuration.
/AE
You can get about two PII@400 for the price of one PIII@500...
The mother board is a bit more expensive of course, but you get my point...
/AE
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.
*sigh*
Read his post again. Your reply has nothing to do with his post. His post is saying that an SMP system will speed up even a single-threaded game, as long as the OS itself is multi-threaded. The game can run on one CPU, while the OS uses the other CPU for the network, disk, and video overhead.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Posted by Soco:
BeOS shall own you especially when it comes to SMP.
Posted by ekauq:
Well, heh , what scares me now is that its to much games , and they are controlling the development . Instead of makin the games after the (for example in this case the processors) the industry is makin the processors after the games.
And it is that way with all computer stuffs. The games have taken controll now. I`m a good example , I play Quake1 4 houres aday so I waste my time that should sit down and programmin on. It`s just to much games.
Games like nethack,Pacman and Moria was ok cause those were "nice" while games like quake just are , nice in a strange kind of way.
More like a drug.
scary.
I'd like to build a dual PII-450 system, but Intel's MoBo prices are somewhat out of line, and I don't want to get stuck with a flaky board that hangs every half hour.
Suggestions?
TedC
Now I finally can justify converting my Dual P2 from NT to Linux and running Q3test on it. And to think my friends told me to yank one CPU and go with 95.
I browse with my threshold at 2 so I can't read my own comments :-)
After getting past the "Cool" response above, I thought a little more...
If the underlying OS supports SMP and is written to a threaded model, then any application running on top of it is going to benefit from the extra horsepower - moreso if the app itself is also threaded...
I can't believe that JC didn't write Q3 using threads, so is the new version going to subvert the OS's thread-to-CPU allocation process, or what?
Any thoughts?
This sig left unintentionally blank.
IIRC, JC tried to dedicate one CPU to "game" and the other to "render", but the overhead of pushing state information around ate up any performance gains, and then some...
This sig left unintentionally blank.
What I was trying to say (but missed out half a sentence) is that all the other "background" OS stuff, like the disk I/O, network stack, and perhaps even the video driver will get to run without the OS having to interfere with the game.
This sig left unintentionally blank.
SuperMicro (www.supermicro.com) do a wide variety of dual CPU capable mobos, with varing degrees of on-board goodness.
I have a P6DBS from them with (currently) a single P2-400. No problems, and not too expensive (about $300 18 months ago) given the built-in, dual channel Adaptec SCSI.
The down side of boards like this is that they are engineered to work, rather than to facilitate over-clocking. Don't expect BIOS-based voltage or FSB control.
However, I've ordered a pair of the Celery 333's I mentioned earlier, as they should just plug in and work...
This sig left unintentionally blank.
...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.
XFree says my Banshee is accelerated but the doc clearly says there is no 3D acceleration yet (like with the PCI 3DFx).
;)
But it should not be too long before we get full support for the beasts.
And my SMP box will be so happy to outperform all Win9x users of Quake III
Black holes occur when God divides by zero.
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.
Doesn't exist.
Even if the app itself is single-threaded, the rest of the OS is multithreaded. That means that the OS can be processing tasks on the 2nd CPU while the app runs on the 1st. Granted, it's not as good as a multithreaded app, but there is still an overall speed improvement because the app can truly own a CPU. In a non-SMP system, the app has to share the CPU with the rest of the system.
--
Timur Tabi
Remove "nospam_" from email address
There are Intel HX socket 7 boards that can do SMP with intel chips.
As for Super7, according to Via's website, the(M)VP3 supports SMP - presumably Intel's MP standard, but no board maker has ever implemented it.
The K6 supports SMP aswell, or rather it is OpenPIC compliant. But there are no socket7 boards that implement it. OpenPIC is cross platform however, and is used on PowerPC SMP boards. Also, Digital Equipment was another developer of OpenPIC, so it's possible that they implemented it somewhere as well.
(what kind of PIC standard does the Alpha 21164 adhere to - anyone know?)
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
AFAIK:
Intel implements the PIC on P6's on the CPU core. Previously on socket7 the interrupt controller was integrated into the chipset. (and before PIC's got integrated they were a seperate chip).
OpenPIC specifies an external PIC, so as long as a CPU can work with an external PIC, then that CPU is SMP capable with openpic.
So if the K6 works now with the PIC in your Via/intel/ALi chipset, there's no reason it shouldn't work with an OpenPIC compliant PIC. The K6 doesn't need to care much that the PIC is also interrupting a second/third/fourth CPU.
the K6-III would make a great SMP chip i think. The problem with Socket7 SMP was always the shared L2 cache. But with k6-III you have an even better cache structure than P6 SMP, ie fast, chip specific L2 cache, plus a large global cache - P6 SMP lacks a global L3 cache.
just a shame no super7 chipset maker wants to build OpenPIc into their chipset.
ah well...
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
Alpha info, straight from Brian Hook's .plan:
May 12, 1999, part 5
--------------------
We still want to support DEC Alpha processors, but we can't find any
3D accelerators for the AXP that will run Q3TEST well. If any hardware
vendors are willing to rev their AXP drivers to support Q3TEST, please
let me know.
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...)
Check out the newsgroup 3dfx.glide.linux at news.3dfx.com or do a www.dejanes.com search for
any recent postngs from Daryll Strauss (The 3D code man)
The drivers are currently alpha, but some have them running on the Voodoo 3.
The 2D X server has been around for a while and works great, supposedly.
Ed
Seems that they've released a LOT of the specs for the chip- a chip that includes 80% of the MPEG2 decoding pipe in hardware (read: DVD support...)
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
I think that it is real cool what John is doing. I see him as an artist or musician who is never satisfied with his work, and keeps pushing the envelope. I do however think that someone has lost touch with the "average" gamer. With a majority of people still running P200's, who is this being done for? I personally have 6 computers here at the house, 2 of which are Sparcs, and I would love to see SMP Quake3. I just can't help but thinking of the 16 year old going to a store and reading the side panel of a game...
Minimun System Requirements:
PIII500 (Dual PII400 Recommended)
96 Megs of Ram (128 Recommended)
12 Meg Frame Buffer (32 Recommended)
Hell and I thought $49 dollars was steep for a game.
Awesome!
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!?
It's never the lack of processor that produces lag, I should know, I run a quake2 server. My quake server never goes above 40% CPU usage on a PII 266, and that is a fully loaded 16 player match. It is always the bandwidth of the service provider. And in addition to that, I run X and compile stuff during matches. I never hear a complaint..... Or maybe it's just the NT servers that are really laggy.... :)
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...
How about Beowulf cluster support?
0 1 - just my two bits
Yep, I guess he was in 'Future Crew'
Also made Scream Tracker
Unless Sami Tammilehto is a common name of course...
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!
The popular Voodoo 1 and 2 cards are 3DFX accelerators... meaning, they work in conjunction with regular video cards to do all the nifty 3D rendering and so on... what he said about using 2 Voodoo2's is called SLI (i forget what the anacronym stands for, maybe someone can inform), and that's where you basically use 2 3DFX accelerators that work together to do all the 3D rendering... This makes for quite a nice setup...
...A view of the Universe functioning...
However, the Voodoo3's are a 3DFX accelerator and a regular 2D video card all-in-one combo card. Personally, I'll stick with Voodoo2 for now for the opportunity to add another in SLI for 24 MB of video RAM goodness...
There are other great/decent/good 3DFX accelerators/cards out there like NVidia's stuff, but I won't get into that since you just mentioned Voodoo's....
----------------------------------------
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").
Seems to me, if this kind of stuff catches on...
2 K6-2 300s = ~$100
1 P2 400 = ~$200
But now to make the motherboards cheaper...
I know you can't SMP Amd processors, that is why I took the time to reply to my own message, correcting myself.
I still say it makes sense.
Win 98 isnt multi threaded like NT is. Don't plug in a second CPU into a Win 98 system unless you want a naughty kernel failure.
I'm a loner Dottie, a Rebel.
The problem is, in a game like quake, you can split off things like network communications, and other little shit like that, but it is hard to split up the process (meaning thing you're doing, not a 'user space process') that does most of the work: taking a memory representation of where things are and converting that into rendering information, and the CPU does have to help render some, even on a system with mad-assed cool 3d accelleration. Granted it can be done, as Carmack's success attests, but as you see, you can never do a full 50/50 split of the processor time, so you're very unlikely to get a 100% performance increase (even if there weren't any bacground/OS tasks running at the same time)
-Cheetah
I agree. Although, I can see "needing" hardware dedicated to 3D. It involves a lot of floating point (well, fixed point if you really want speed) math and some trig.
As far as bad code, I think it may be more of "Well, now most people have 200MHz machines... we don't need to spend so much time optimizing." Of course, having faster machines means getting you existing code to fly rather than an opportunity to become lazy.
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.
Tekram has a decent dual board thats about $170, and claims to work up to dual 700mhz p3's. its also got an award bios which i like very much. I don't remember the product code, but its their only dual board.
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.
Just a thought.
If you were working in game programming around the time that Direct3D came out, you would been yelled at by Alex St. John about how much better Direct3D's brain dead "Execute Buffer" scheme was than OpenGL. If it wasn't for Chris Hecker at M$ and John Carmack, OpenGL wouldn't be nearly as well supported as it is today, despite being superior in EVERY way to Direct3D. Funny side note: In D3D v5, they ditched execute buffers for a OpenGL style interface, but they couldn't admit ogl was better and start using that, they had to clone it (poorly) and use that. Microsoft set the 3D gaming world back by at least a year.
Nope.
They don't exist. However, the K7 should make a limited appearance in June.
--Al
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*
I have to admit, the possibility of Quake3 on a quad G4 is a good enough reason for Johnnie to support SMP.
rm -rf ms/*
I'm seriously considering buying a dual-cpu motherboard in my next PC. The only thing is, I don't want to use Windows NT! Hardly any games run on it, and it's slowwwww. Heh...maybe if I could dual boot 98 and NT I could justify a 2-cpu gaming machine...
Blar.
Seeing as I just bought a new 19", my old 15" can now have a purpose! Well...the game looks better on 19"...and I won't be paying any attention to the non-quake screen...but it'll still be cool have 2 monitors! woohoo!
Blar.
SLI stands for Scan Line Interleave. One card gets a scan line, the other the next, then the first gets the next after that, ad infinitum. It's effectively like having a single card with 4 texture units on it, each having their own private 4 megs of texture memory. And I agree, voodoo2 SLI is the way to go right now, if you can afford it.
As far as I can tell, it doesn't have all the
instructions necessary for a full accelerated opengl. I ran quake 2 with it, and it seems to slow to a crawl whenever there is a muzzleflash on the screen.
Form follows function.
Id graphics were created on SGI, pre-playing & testing the games on a PC with an OpenGL video card was a natural.
It wasn't a virtue of Id, just plain laziness.
BN
It is important that a system match the job it is tasked with.
If networking doen't cause too much latency, then often a network of single processor machines is easier than one multiprocessor machine.
Depends on the appliation.
BN
Hmm quakeIII with SMP support for linux and NT. Looks like one of these two systems due to this fact alone could become the new gaming standard. (assuming rumors of hardware support are true) Guess which one.. I'll give you 2 guesses and the first one doesn't count
Are you sure you're not thinking of tnt2 drivers for linux? I remember that one a couple weeks ago on ./ but not anyting on voodoo3.
Does anybody know of any super 7 smp boards? Is there even a chipset that can do that?
---
Play Six Pack Man. I
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.
The last two systems I've built are duals (P166, P2-300) and both run NT and Linux quite well. I'm quite pleased to see an SMP version of Q3A since it will help to extend the life of my dual P2 for a while longer. Thanks to John Carmack from one of the 1%!!!
Now, if Matrox would just release an NT OpenGL ICD for the G200 before I buy a TNT2 Ultra...
---- Politics: Kissing ass and pointing blames.
As far as I know the only socket 7 processors(including Super7) that support SMP are the original Intel Pentium and Pentium MMX processors. AMD K6, K6-2 and K6-III specifically do not support SMP, according to AMD they never will. I don't know about Cyrix but I'd hate to have two processors with the FPU power of half a PII.
-mudge
-mudge
Remove the non-food to email.
I play Q3Test on a P2-300 (not OCd) with an original TNT card (Graphics Blaster Riva TNT) and a Sound Blaster Live, and it's more than playable at 1024x768x32 under NT (I was extremely impressed, since Unreal is so poor). An TNT 2 Ultra with 2xCelery 450s should do considerably better than my "modest" configuration.
With some AGP cards you never have to use system memory anyway. Two examples are the ATI Rage Fury and the Number Nine Ticket to Ride IV, both offer versions with 32 MB of video memory, more than enough for current games. And they aren't that expensive either(Last I checked you could get a Number Nine for about US$169.00)
It is a mistake to think you can solve any major problems just with potatoes -- Douglas Adam -- Life, The Universe and E
I just finished build a dual proc 300a
celeron system using a tekram motherboard and
the new version 1.1 msi slockets. It kick major
ass.. Each chip is overclocked to 463 mhz
getting well over 900 bogomips..
And churning out 1.5 million rc5 keys per sec.
I cant wait for quake 3 SMP.
The tekram board is cheap..well documented..and
nice quality. Screw the intel boards.. stick
with the other brands.. good dual proc boards IMHO
are tekram, epox, and asus (pricy though).
Malice95
personally, i think its preaty cool that q3 will support smp. with my smp box, i often run a program and just wonder how much faster it would go if it was written to take advantage of my dual processors.
the biggest bonus is that you can buy an smp motherboard w/ one processor and upgrade to a second when they are dirt cheap.
later.
not that I can tell for a voodoo one its faster than the 3dfxgl mini port. and only a little slower on my voodoo2. It runs quake2 and quake3test just great. And the portal looks right in q3test while with the full opengl drivers that 3dfx provides don't get that scence right.
It has been statistically shown that helmets increase the risk of head injury.
This si only 2d support. The drivers work O.K. as they are beta. They ship with all of the major disributions SuSe, Rh, etc...
- Kill Yourself, spare us all! -
K6, k?-2 and k6-III all have SMP, but it's OpenPIC standard instead of the Intel one (don't remember the name). Since Intel was the only company to design affordable Socket 7 SMP chipset (that good old 430HX chipset) there are no SMP k6, but it is theorically feasible.
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->