Назад | Перейти на главную страницу

Есть ли способ, чтобы виртуальная машина имела только одно ядро, но использовала три ядра на хост-машине?

Возможный дубликат:
Может ли одно виртуальное ядро ​​на виртуальной машине использовать более одного физического ядра?

Я совладелец сервера Minecraft, который становится все больше с каждым днем, но по мере того, как мы становимся больше, мы сталкиваемся с ограничениями Minecraft и его кодирования. В игре не предусмотрено использование нескольких ядер, вместо этого используется только одно ядро. Поэтому в разговоре с другом он предложил посмотреть, возможно ли, чтобы виртуальная машина имела только одно виртуальное ядро, но использовала три из четырех ядер на хост-машине. Я провел небольшое исследование и, похоже, не нашел ответов. Не имеет значения, является ли операционная система хоста Windows или Linux, мне просто любопытно, можно ли это сделать.

Если это можно сделать или делается автоматически, не могли бы вы предоставить ссылки, чтобы я мог прочитать это и узнать больше ... Я новичок в виртуальных машинах, так что не беспокойтесь.

Девять женщин не могут родить ребенка за один месяц. Извините, по крайней мере, сейчас невозможно склеить процессоры в среде виртуальной машины. Но это интересная идея!

Нет смысла. Вы не можете волшебным образом сделать супер-ядро из физических ядер. Hyper-Visors может не требовать вашего ядра.

На сегодняшний день все ответы кажутся правильными: это невозможно сделать.

Я хотел бы добавить немного мяса к этим утверждениям:

Википедия по «автоматическому распараллеливанию».

Автоматическое распараллеливание - это процесс использования заданного последовательного алгоритма и попытки найти последовательности команд, которые могут выполняться параллельно, затем планирование и отправка этих последовательностей доступным (аппаратным: ЦП) ресурсам, а затем объединение результата (= данные) обратно для дальнейшей обработки.

Проблема не только в том, чтобы найти последовательности, которые не зависят друг от друга и, следовательно, над которыми можно работать параллельно. Но также могут стать недопустимыми накладные расходы на связь. Подумайте о своей конкретной проблеме, когда один мир Minecraft будет каким-то образом разделен на разные процессоры: если вы разделите мир геометрически, допустим, в: = 9 блоков, тогда на границах отдельные суб-миры должны обменять любые изменения мира или перемещения жителей.

Хотя вышеупомянутое является типичным подходом «разделяй и властвуй», а геометрическое разделение проблемы является широко распространенным решением распараллеливания, обычно оно кодируется вручную с использованием знаний разработчика задачи - в данном случае - игры. разработчик.

Предлагаемая вами идея будет включать некоторую автоматизацию алгоритма, который совершенно неизвестен, потому что виртуальный «гипер» сервер не имеет возможности узнать, как Minecraft ведет себя внутри. Таким образом, единственный аспект этой проблемы - это исполняемый ассемблерный код. На этом низком уровне очень сложно - и в настоящее время кажется невозможным - найти решение, которое имеет какие-либо достоинства.

Google может искать научные публикации Эти дни. И если вам действительно интересно, я посмотрю публикации на соответствующих конференциях. Такие организации, как IEEE и ACM может быть хорошей отправной точкой для этого.

Нет, не существует гипервизора (по крайней мере, насколько я знаю), который, например, может возьмем два процессора с частотой 2 ГГц и создадим из них виртуальный процессор с частотой 4 ГГц.

Нет.