🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

A curiosity about making a dual-processor system with two motherboards

Started by
4 comments, last by drakostar 16 years, 9 months ago
This came from a thought I had about the Wii, but it can be (i'm guessing) applied to any PC. I have a PC with a particular hardware configuration and I'm running an application that's uses threads liberally (for the sake of argument this app works correctly). (This is hard for me to articulate) Now say I have another board with the same processor, graphics card, and sound card (both cards with their respective xPUs and memory). Now how hard (and feasible) would it be to connect to the two, have the app (and OS) recognize the auxiliary board, and of course run properly? Forgive me if this question came out as drooling babble. [Edited by - Alpha_ProgDes on September 20, 2007 7:54:22 PM]

Beginner in Game Development?  Read here. And read here.

 

Advertisement
Tutorial: Building a Beowulf cluster I imagine a similar thing could be done with Windows if someone wrote the correct software to allow this stuff, but at this time, I'm not sure. The software will have to be specially programmed to take note of this though, and you can pretty much forget about making your graphics run faster (unless you calculate it all via software).
Quote: Original post by Nytegard
Tutorial: Building a Beowulf cluster

Looks more like instructions than a good explanation of how it works. But I'll reread to make sure I didn't miss anything.
Quote: I imagine a similar thing could be done with Windows if someone wrote the correct software to allow this stuff, but at this time, I'm not sure.

Dual-processors, dual-cores,... I don't see why dual-boards couldn't work for Windows.
Quote: The software will have to be specially programmed to take note of this though, and you can pretty much forget about making your graphics run faster (unless you calculate it all via software).

I am curious about the graphics portion of your comment. Why couldn't the GPUs "talk" to each other? Are you implying that they would run slower or won't take advantage of any of the hardware capabilities of the graphics card?

Beginner in Game Development?  Read here. And read here.

 

For how it works, that can be googled:)

Why dual boards couldn't work for windows? Perhaps it can, I just wouldn't be the person to ask. I'm sure somewhere, someone has gotten Microsoft to make such things. Afterall, you have Windows Server, so obviously it probably has been done.

Why graphics would be slower? PCI Express x16 has a throughput of 80 Gbps. Even assuming that an 8800 GTX barely saturates a PCI Express 8x, you're talking 40 Gbps. At the very best right now for PC's, you're talking 2 Gbps bandwidth, and you also have more than just the video card saturating it. What you'd end up having to do would require some hardware expertise to have each computer to independently render a specific portion of the screen, and then merge the signals into one which is displayed to the monitor. (Basically, you'd have to make your own external SLI interface hardware).

*EDIT*

You'll need a central computer for this.
For about $2000 per node, you could get a DVI Capture Card. You then take the captured signal per frame, merge it and output the signal through the central computer through it's video card. DVI-D has about a 1.5 GB/s throughput, so you can't just output the signal through your standard ethernet connection. With the capture card though, this can probably be done in real time. You're talking about about 15-20 ms lag per frame, but that's still 50 fps.

[Edited by - Nytegard on September 21, 2007 10:46:10 AM]
So, you're basically talking about clustering. Microsoft does make a Clustered version of its server OS, which is generally used for scientific computing. *nix offers beowolf (and probably several other solutions).

Clustering can also be performed at the application level where one instance of an application running on a machine acts as a server (or coordinator) doling out work units to other instances of the client (or processor) application running on one or more other machines. This is commonly called distributed processing, and some common examples would be distributed compilation systems, distributed ray-tracers, Folding-At-Home, SETI and other scientific applications.


As far as running a commodity OS as a cluster, *nix is probably the best bet, but it wouldn't do much good with a non-distributed application to take advantage. Sure you can hand off some processes to the second machine, but the processes best suited to this are back-ground type applications anyhow -- you'd do just as well logging into a second machine and leaving those processes running.

throw table_exception("(? ???)? ? ???");

Clustering has very specific applications. It sounds like what you want is simply a dual- or quad-processor board.

Otherwise, define "run properly". Because I don't see how an extra GPU or sound card is relevant.

This topic is closed to new replies.

Advertisement