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.

2
  • 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, 2011 at 6: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. Oct 17, 2011 at 13:58

5 Answers 5

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.

0
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!

6
  • 12
    +1 great and funny analogy!
    – nalply
    Oct 17, 2011 at 7:40
  • 3
    However, nine woman are able to produce a baby each month, pipe-lining ftw :). Oct 17, 2011 at 15:19
  • 2
    @SverreRabbelier Collectively they're still taking 81 months to produce 9 babies. It doesn't matter if they're working in parallel or serial.
    – Chris S
    Oct 17, 2011 at 15:23
  • 1
    @Chris S: True, but they're getting that 81 months worth of work done in 18.
    – afrazier
    Oct 17, 2011 at 16:14
  • 1
    What about multiple births? Would that be like multiprocessing? Oct 17, 2011 at 20:39
8

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

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.

4

No.

5
  • 2
    -1 for absolutely 0 effort put into your answer. At least try to explain why
    – TheLQ
    Oct 17, 2011 at 16:37
  • 3
    @TheLQ A low effort answer for a low effort question.
    – MDMarra
    Oct 17, 2011 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, 2011 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 Server Fault Chat if you ever feel like discussing it further.
    – MDMarra
    Oct 17, 2011 at 16:53
  • Sometimes a yes or no is all that's required. This is one of those times. Oct 17, 2011 at 23:14

Not the answer you're looking for? Browse other questions tagged .