Вот несколько вопросов, я бы хотел, чтобы вы меня просветили.
- Можно ли объединить вычислительную мощность 2 компьютеров?
- Как это сделать?
Вот несколько вопросов, я бы хотел, чтобы вы меня просветили.
Ответы:
Непрозрачно, когда работающая программа может каким-то образом использовать второй компьютер для выполнения кода, поскольку они логически разделены, и процессор не может обмениваться данными или получать доступ к памяти друг друга.
Это не значит, что вы не можете объединить вычислительную мощность:
Если вы хотите каким-либо образом использовать дополнительный компьютер, крайне важно иметь возможность удаленного управления. Два способа сделать это через некоторый вид удаленного доступа (RDP, VNC) или альтернативно что-то вроде синергии +.
Одна из моих наиболее часто используемых строк - Да и Нет!
Да, это возможно - для определенных приложений, которые предназначены для работы таким образом. (Обычно известный как кластер - Дальнейшее чтение здесь )
Нет, невозможно (по крайней мере, насколько я знаю) взять два готовых компьютера, «связать» их вместе и получить объединенную память, вычислительную мощность и все остальное.
Это очень возможно! Но, судя по простоте вашего вопроса, я предполагаю, что вы хотели бы просто запустить программу, которая волшебным образом сделает ваш компьютер в два раза быстрее, что невозможно.
Вы должны понимать, что при запуске программы она поддерживает свое состояние, провоцируя ЦП перемещать память между регистрами жесткого диска, ОЗУ и ЦП, а также адреса различных компонентов (таких как видеокарты или сетевые карты). Проблема с использованием процессора с другого компьютера в том, что ему нужен доступ к той же памяти. А поддержание зеркального отображения памяти вашего компьютера на другом компьютере требует таких больших накладных расходов, что это легко побеждает цель добавления другого компьютера для повышения производительности :)
Но тип вещей, которые можно разделить между несколькими компьютерами, - это рендеринг изображений или некоторые математические вычисления, которые могут работать независимо.
Если вам нужен способ объединения вычислительных мощностей двух ПК в один, самый простой способ сделать это - настроить их оба в качестве хостов виртуальных машин с использованием программного обеспечения, такого как VMWare ESXi (предупреждаем, что для этого потребуется устройство с совместимым оборудованием) и создание группы ресурсов или кластера и создание виртуальной машины, которая использует ресурсы обоих компьютеров. Это НЕ даст вам полной скорости в 2 раза (вы потеряете ресурсы из-за виртуализации) и является ограниченным решением из-за вероятных требований совместимости, но это самый «правильный» ответ на ваш вопрос. Виртуальная машина будет работать как один ПК с вычислительной мощностью обоих хостов минус накладные расходы, необходимые для поддержки виртуализации.
Я согласен с другими ответами:
Если вы говорите о разработке программного обеспечения для работы в распределенной (с несколькими компьютерами) среде, вот несколько советов: