18

Possible Duplicate:
Can a single Virtual Core on a VM use more then 1 physical core?

I'm a co-owner of a Minecraft server that is getting rather large each day, but as we get bigger we're running into the limits of Minecraft and the way it's coded. The game isn't coded to use multiple cores, instead it only uses one core. So talking with a friend he suggested seeing if it was possible to have a virtual machine only have one virtual core yet use three of the four cores on the host machine. I've done some research and can't seem to find any answers. It doesn't matter if the host operating system is Windows or Linux, I'm just curious as to if it can be done.

If it can be done or is done automatically, can you provide links so that I can read upon this and learn more... I am new to virtual machines so go easy.

bradleyhilton
  • 307
  • 1
  • 5
  • I have a great amount of sympathy for minecraft admins, i used to be one myself... its a hard job, every update notch makes causes every mod to break, worlds to be abandoned and often ban lists get lost in the process too! – Silverfire Oct 17 '11 at 06:16
  • 4
    I think you should research on the basic workings of programs - namely parallelization. If it's hard for developers to do, it's impossible for programs to do automatically. – Mircea Chirea Oct 17 '11 at 13:58

5 Answers5

37

Nine women are unable to produce a baby in one month. Sorry, at least for now it's impossible to glue CPUs together in VM environment. But that's an interesting idea!

Janne Pikkarainen
  • 31,454
  • 4
  • 56
  • 78
8

No. Point. You can not magically make a super core out of physical cores. Hyper-Visors can not reqire your core.

TomTom
  • 50,857
  • 7
  • 52
  • 134
8

As of today all answer seem to be correct: No way to do it.

I would like to add some meat to those statements:

Wikipedia on "automatic parallelization".

Automatic parallelization would be the process to take a given serial algorithm and try to find command sequences that could be executed in parallel, then scheduling and dispatching those sequences to the available (hardware: cpu) resources, and then joining the outcome (=data) back for further processing.

The problem not only is in finding sequences that do not depend on each other and are therefore able to being worked on in parallel. But also the communication overhead may become prohibitive. Think about your particular problem where the one Minecraft world is going to be split in some way onto the different cpus: If you split the world geometrically, lets say in := 9 blocks, then at the borders the individual sub worlds need to exchange any world modifications or movements of inhabitants.

While the above is a typical "divide-and-conquer" approach, and geometrical split-up of a problem is a widespread solution to parallelization, it is normally handcoded, making use of the knowledge the problem designer - in this case - the game developer has.

Your proposed idea would involve some automation of an algorithm that is completely unknown, because the virtual "hyper" server has no way of knowing how Minecraft internally behaves. So the only angle to this problem is the executed assembly code. At this low a level it is very hard - and currently seems to be impossible - to come up with a solution that has any merit.

Google can search for scientific publications these days. And if you're really interested I'd look at the publications on related conferences. Organizations such as the IEEE and the ACM may be good starting points for that.

cfi
  • 248
  • 5
  • 14
6

No, there is no hypervisor (at least that I'm aware of) which can f.e. take two 2-GHz CPUs and create a virtual 4-Ghz CPU out of them.

Massimo
  • 68,714
  • 56
  • 196
  • 319
4

No.

MDMarra
  • 100,183
  • 32
  • 195
  • 326
  • 2
    -1 for absolutely 0 effort put into your answer. At least *try* to explain why – TheLQ Oct 17 '11 at 16:37
  • 3
    @TheLQ A low effort answer for a low effort question. – MDMarra Oct 17 '11 at 16:40
  • 1
    How is the question low effort? Its reasonably asked, reasonably detailed, and even asks for other documentation if possible. – TheLQ Oct 17 '11 at 16:50
  • @TheLQ Agree to disagree. 4 people +1'd my answer and only 1 -1'd it. Comments aren't the place to discuss it, though. I'm frequently in [chat] if you ever feel like discussing it further. – MDMarra Oct 17 '11 at 16:53
  • Sometimes a yes or no is all that's required. This is one of those times. – John Gardeniers Oct 17 '11 at 23:14