Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Can I attach

  • 3 displays
  • 3 keyboards
  • 3 mice

to a powerful PC
and configure it to work as if it were 3 PCs or a 3 thin clients?

Which OS should it run?

Thin clients seem are unattractive as the work requires good performance of 3D graphics.

Background:

We are a group of 3 (by now) developers creating software that largely uses 3d. Most of the time each developer writes code, eventually compiles and tests the new functionality.

Thus, in a rare case all the 3 will start using the hardware heavily.

CPU load during the coding phase is pretty low, about 3-5%. GPU load is the same. Compiling and running the application is where the power is needed.

CPU time, GPU time and RAM are the resources that I want to be shared.

Our budget is not that low, but in case this solution is possible, we can buy one Intel i7 with 16 Gb of RAM and work like in heaven, whereas we can't buy 3 such PCs.

This solution will be very cost-effective (if it is possible). Even if another person joins our team, we can buy just a video-card, a monitor or two, +mouse, +keybord and hey — here is another working place.

P.S. Again, we're windows-bound.

share|improve this question
add comment

5 Answers

No not really, given your need for good 3D acceleration.

It also seems like an odd thing to skimp on, when programming and so on - the better the hardware is, the smoother and more responsive the creative and productive process becomes. And I'd want the most productiveness I could get from any person - hardware is cheap compared to most other stuff involved.

There's bound to be issues with responsiveness having three development environments fighting for system resources even on a monster machine even if it's not building - especially if you use static analysis tools while coding. CPU time isn't the only resource needed.

Step down a tad on the specs to enable three workstations to do the job on their own, and then if build times are an issue - consider a distributed build system that can utilize the idle cpu time across all machines without disturbing the UI.

If it's cutting edge, fit one of the machines with a better 3D graphics card and name an informal main tester?

share|improve this answer
add comment

This can go in two ways as I read this; do you want thin clients connecting to a server, or do you want to physically connect this hardware to a powerful server?

Technically you can do either one.

There is a proprietary product that lets you chain via long cables multiple displays, keyboards, etc. from one physical box from the vendor's card in the back of the server.

The alternative is to run X with X-terminals or Windows Terminal Service (depending on platform) to use thin clients over the network to your server.

BUT

given that you want to use 3D graphics, I'd strongly advise against it. Hardware is cheap compared to the headaches you're asking for in supporting this kind of setup, and you'll have more weird glitches to deal with in sound redirection and multimedia and graphics performance. Thin clients and such are best for office work...web browsing, email, word processing, etc...even then we had people kill a terminal server by looping an animated weather map that consumed so much memory everyone else's sessions became molasses and they thought it locked up (leading to corrupted profiles as they rebooted the terminal, thinking that rebooted the machine. Um...no.)

Purchase separate hardware. You're wasting your time if you think terminals are going to give performance with graphics stuff as a primary requirement.

EDIT: just saw your update

You may want to figure out if you can instead set up your compilations to be farmed out; i.e., upload to a repository on a powerful server and do the compilation there. I don't know how big your compilation is, or if it's an issue with testing, but I don't know if you'd want to test on the same machine you're developing on in practice anyway (I think it's a best practice to not do so but that doesn't mean developers care about best practices anyway). I know big places like MS have farms that compile things nightly and that developers upload their changes to a central place to have the compiles done, then if someone breaks the build they get beaten mercilessly. It centralizes the code base and allows for backups and source code versioning, as well as offloading some of your concerns about memory and speed for compiles.

Testing the actual software product...hrm...still not sure I would like that if I were developing (or managing developers) just because if something goes wrong it could kill what work they've done or hamper productivity because some bug in code causes a major problem. Others may disagree but I'd feel better separating the code and development from the testbeds.

share|improve this answer
add comment

Even with at thin client setup, you still need some sort of box for the clients to plug their monitors and keyboards into. Granted, these could be old throwaway boxes that aren't any good for anything else. Edubuntu is set up to do this easily (select LTSP install from the Alternate Install CD)

You can set up linux to serve separate X desktops to 3 separate video cards/monitors, and take input from 3 separate keyboards - and run windows Virtual machines on each of them - but it would not be trivial to set up or maintain, and seems to introduce more problems than it would solve.

Also, the cost of hardware goes up quite steeply when you get to the more powerful end of the spectrum.

I don't think it's any contest. Keep it simple. Buy 3 medium powered independent PCs.

share|improve this answer
add comment

About the best you could do is set up a terminal (or citrix) server (Windows 200x server) and have your dev's use remote desktop to work directly off of it. However, I don't know what the GPU limitations might be in this situation.

You are FAR better off giving the 3 dev's their own powerful machines. Ultimately it will be cheaper and faster.

share|improve this answer
add comment

Yes, most Linux distros could be configured this way but not whilst retaining GPU-acceleration.

EDIT - ah if you're Windows-bound you're out of luck sorry.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.