Можно ли комбинировать вычислительную мощность 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 .
  • Как определить фоновую программу (в Windows 7), которая автоматически крадет активную фокус?
  • Клонирование / создание образа диска
  • Отсутствует Open-With при щелчке правой кнопкой мыши по файлу в Windows 7
  • Открыть программу вместо системных свойств - windows 7
  • Мой Dell Inspiron N5050 не подключается к беспроводной сети
  • Как разделить один диск без потери данных в нем для Windows 7
  • Как запустить программу, когда запускается другой
  • Windows 7: невозможно открыть открытое окно на панели задач, просмотреть ОК
  • Открытое / бесплатное приложение для Windows 7 для создания образов ISO
  • Выиграть 7, показать две папки как одну?
  • Запустить программу как admin без ввода учетных данных? (Автоматическая высота Win7)
  • Interesting Posts

    Как объединить цвета, стиль и легенды формы в ggplot

    gdb не работает с ошибкой «Не удалось найти Mach task port for process-id»

    Я хочу изменить DPI с помощью ImageMagick без изменения фактического размера байтов данных изображения

    Как преобразовать миллисекунды в читаемую человеком форму?

    Установка Windows 8.1 Я получаю «Вы не можете установить Windows на флэш-накопитель USB из программы установки»

    Android: как обновить содержимое ListView?

    Двойной расчет, создающий нечетный результат

    Как включить cookies в веб-браузере Android?

    Оценка имени столбца и целевого значения в выражении `j` в` data.table`

    Чтобы нарисовать подчеркивание под TextView в Android

    Как удалить несколько значений из вектора?

    как отображать извлеченные данные json в listview с использованием baseadapter

    Как увеличить максимальные соединения в postgres?

    SSD AES-256 аппаратное шифрование – как настроить?

    Как сделать панель инструментов в Google Chrome?

    Давайте будем гением компьютера.