Можно ли комбинировать вычислительную мощность 2 компьютеров?

Вот несколько вопросов, я хочу, чтобы вы могли просветить меня.

  1. Можно ли комбинировать вычислительную мощность 2 компьютеров?
  2. Как мне это сделать?

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

Это не означает, что вы не можете комбинировать вычислительную мощность:

  1. У конкретного программного обеспечения могут быть компоненты, которые могут выполняться на других машинах, например, сгибание белка, SETI @ home. Они, как правило, специализированы, т. Е. Вы не можете запустить Excel и сказать ему использовать другой компьютер для вычисления.
  2. Если вы выполняете интенсивные задачи с процессором, вы можете использовать дополнительный компьютер для их запуска, например, кодирование / перекодирование видеопотока.

Если вы хотите каким-либо образом ухаживать за вторичным компьютером, то возможность дистанционного управления имеет решающее значение. Два способа сделать это – через какой-то удаленный доступ (RDP, VNC) или, что-то вроде синергии +.

Одна из моих самых используемых линий – Да и Нет!

Да, это возможно – для определенных приложений, которые предназначены для работы таким образом. (Обычно известный как кластер – Дальнейшее чтение здесь )

Нет, это невозможно (по крайней мере, насколько я знаю), чтобы взять два компьютера с полки, «связать» их вместе и получить объединенную память, вычислительную мощность и все остальное.

Это очень возможно! Но, судя по простоте вашего вопроса, я предполагаю, что вы хотели бы просто запустить программу, которая волшебным образом сделает ваш компьютер в два раза быстрее, что невозможно.

Вы должны понимать, что при запуске программы она поддерживает свое состояние, заставляя ЦП перемещать память между регистрами HDD, RAM и CPU, а также адресами на различные компоненты (например, видеокарты или сетевые карты). Проблема с использованием процессора с другого компьютера, чтобы помочь вам в том, что ему нужен доступ к одной и той же памяти. И поддержание зеркального изображения вашей памяти компьютеров на другом компьютере требует столько накладных расходов, что легко побеждает цель попытки добавить еще один компьютер для повышения производительности 🙂

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

Если то, что вы ищете, представляет собой метод комбинирования вычислительной мощности двух ПК в одном, «самый простой» способ сделать это – настроить оба из них в качестве хостов виртуальных машин с использованием программного обеспечения, такого как VMWare ESXi (необходимо предупредить, что это потребует Устройство для совместимого оборудования) и создание группы ресурсов или кластера и создание виртуальной машины, использующей ресурсы обоих компьютеров. Это НЕ даст вам полную 2x-скорость (вы потеряете ресурсы из-за виртуализации) и является ограниченным решением из-за вероятных требований совместимости, но это самый «правильный» ответ на ваш вопрос. Виртуальная машина будет действовать как один ПК с вычислительной мощностью обоих хостов за вычетом накладных расходов, необходимых для поддержки виртуализации.

Я согласен с другими ответами:

  • Если у вас огромная многостраничная книга Excel, и вы хотите иметь возможность запускать Excel в два раза быстрее (обновление формул и сценариев, запуск макросов и т. Д.), Вам не повезло.
  • Если у вас есть настраиваемое приложение, которое легко разбивается на разделы, например, нахождение квадратного корня из каждого целого числа от 1 до 1 000 000, вам должно быть легко разбить проблему на части и распределить их.
  • Если у вас есть настраиваемое приложение, например, вычисление первых 1 000 000 цифр π (pi), вы можете это сделать, если вы хорошо понимаете проблемное пространство.

Если вы говорите о разработке программного обеспечения для работы в распределенной (многокомпьютерной) среде, вот несколько предложений:

  • Используйте удаленные вызовы процедур (RPC) . Так же, как вы можете сделать хост файловым сервером или веб-сервером, RPC позволяют вам сделать машину, по сути, сервером ЦП. По идее, у вас будет одна мастер-машина, которая будет клиентом RPC, и вызовет функции библиотеки, которые будут прозрачно выполняться на сервере. В своей простейшей форме эта архитектура не принесет вам каких-либо преимуществ в производительности, поскольку только один процессор будет выполняться в любой момент. Однако в асинхронной модели клиент может запустить удаленную процедуру на сервере, а затем выполнять другие действия во время работы сервера.
  • Используйте язык, предназначенный для параллельной обработки, такой как Unified Parallel C (UPC) . Это расширение языка C с возможностями распределенных данных и одновременного выполнения. Рекомендации:
    • Страница Unified Parallel C в Университете Джорджа Вашингтона.
    • Страница набора инструментов GNU UPC .
  • Не удается установить iTunes, так как не удалось получить доступ к службе установщика Windows
  • Что такое пользователь NT AUTHORITY \ SYSTEM?
  • Средство для без трекбола с прокруткой?
  • Открыть программу вместо системных свойств - windows 7
  • Невозможно выбрать форму программы по умолчанию, открытую с помощью контекстного меню в Windows 7
  • Есть ли известная проблема, связанная с символами ядра Windows 7?
  • Как узнать файлы «.automaticDestinations-ms», к которым относится приложение?
  • Экспортировать результаты поиска Windows 7 в текстовый файл
  • Восстановить или восстановить раздел после "diskpart clean"
  • Случайно удалил папку «Загрузки», окно «Специальная папка», как восстановить?
  • Инструмент, который определяет, какой процесс вызывает тяжелую работу жесткого диска?
  • Давайте будем гением компьютера.