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.

In VMWare you can use multiple CPU, but only as much as present on the host. Is there a way to use more CPU than physically available ?

It would be to :

  • test software designed to run on an expensive 16-way box on commodity 2-way boxes.
  • Use an image designed for 2-way on a 1-way host
  • test software on not-power-of-2-way (think 3) (Although this could eventually be done on a 4-way box)

In VMWare you can use multiple CPU, but only as much as present on the host. Is there a way to use more CPU than physically available ?

It would be to :

  • test software designed to run on an expensive 16-way box on commodity 2-way boxes.
  • Use an image designed for 2-way on a 1-way host
  • test software on not-power-of-2-way (think 3) (Although this could eventually be done on a 4-way box)

Update:

I specifically want be able to run a 16-way configured OS on a 2-way hardware, not basic over-subscribing (like 16 2-way on a 4-way hardware) that is effectively handled by almost every virtualization software currently available.

I also don't really want to invest in a very specific solution if I don't have to since the idea is to limit the investements required.

And I cannot just increase the number of the threads as it has been cleverly suggested since :

  • In one application, I would like to be able to test the self-regulation of process numbers.
  • I want also to be able to see the impact of having a few number of big SMP (16+ way) hosts over a big number of small hosts (1 or 2 way).

Update(bis):

I finally found out that QEMU does exactly this.

share|improve this question
    
Can you refine your question? Do you want to run one Windows (or Unix or whatever) 16-way instance on a 2-way box under virtualization? The way your question is written, it might be interpreted as running 8 2-way instances on a 2-way box, which is what Chopper3 was thinking. Just trying to make it more clear so others don't make the same mistake. –  Brent Ozar May 18 '09 at 11:30
    
You got it right : one 16-way on one 2-way. –  Steve Schnepp May 18 '09 at 12:28

5 Answers 5

Even if you do find an emulator that will do this, the reality is that you won't be able to fully test in this scenario - race conditions, locks, and such can't be fully tested to work in a parallel environment if you are still running everything essentially sequentially.

-Adam

share|improve this answer
up vote 3 down vote accepted

Actually QEMU offers the -smp X launch option that does exactly what I need.

share|improve this answer

VMWare DOES let you oversubscribe CPUs though, i.e. if you have dual quad-core Xeons (i.e. 8 cores total) you can have 6 x dual vCPU VMs. Obviously if all 6 VMs 'go white' at 100% CPU you're going to run into performance issues but that is, hopefully, unlikely to happen. Same goes for memory too by the way. Hope this answers your question.

share|improve this answer
1  
No, he specifically asked to run a 16-way machine on a 2-way box, not run 8 2-way machines on a 2-way box. –  Brent Ozar May 18 '09 at 11:29
    
Brent, I answered his question before he updated with that information - downvoting was a bit harsh! –  Chopper3 May 18 '09 at 13:46
    
In the spirit of - uhhh, Christmas? - I upvoted it. ;-) –  Brent Ozar May 18 '09 at 13:51
1  
it's always the problem when you answer quickly - you can be proved wrong with further edits :( –  Chopper3 May 18 '09 at 13:54

I think you need some serious simulation to do that, like Simics or similar.

When it comes to simple testing just using more threads than there are cores would provide at least some useful data, right?

It sounds like it would be ludicrously cpu-demanding to emulate more cores - at least in any meaningful way. But I could be wrong ^^

share|improve this answer
    
Simics gets the idea, hence +1, but is quite... overkill ? :-) I thought about a more "mainstream" solution... I edited the question to reflect your remarks –  Steve Schnepp May 18 '09 at 12:38
    
If it's worth doing, it's worth over-doing ^^ –  Oskar Duveborn May 18 '09 at 12:52

No, you can't run a 16-way image on a 2-way box. If you don't mind spending a little money, get a few used IBM 440's off Ebay. You can daisy-chain them together to build one 16-way box, and they're absurdly cheap, like sub-$200. They weigh a ton, and they're loud, and they use a lot of power, and they're not particularly fast (all single-core) but they will achieve what you're after. Plus they run VMware ESX - I've used them since v2.5.

The daisy-chaining cable isn't usually included, so you'll need to find a source for those. And you have to make sure that all of the 440's have the same CPU speed.

If you're in the South Florida area, let me know and I can hook you up with a shop that might sell theirs.

share|improve this answer

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.