Можно ли комбинировать вычислительную мощность 2 компьютеров?
Вот несколько вопросов, я хочу, чтобы вы могли просветить меня.
- Можно ли комбинировать вычислительную мощность 2 компьютеров?
- Как мне это сделать?
- Как показать панель меню в Slack для Windows
- Как запустить программу, когда запускается другой
- Устранение неполадок Window7 .exe не открывается
- Могу ли я удалить файлы в каталоге c: \ windows \ installer?
- Программа установки не смогла создать новый системный раздел или найти существующий системный раздел - Не удается установить Windows 7
- Как определить фоновую программу (в Windows 7), которая автоматически крадет активную фокус?
- Как запустить скрипт как администратор?
- Windows 7 Автоматический вход в систему с учетной записью пользователя по умолчанию?
- Сжатие раздела в Windows 7
- Код исключения Windows 7: 0xc0000005
- Как добавить приложение для не-программных файлов в диалоговое окно OpenWith?
- В Windows 7, как узнать, когда компьютер планируется завершить?
- Что пробуждает мой компьютер?
Непрозрачно, когда работающая программа может каким-то образом использовать второй компьютер для выполнения кода, поскольку они логически разделены, и процессор не может связываться или получать доступ к памяти другого пользователя.
Это не означает, что вы не можете комбинировать вычислительную мощность:
- У конкретного программного обеспечения могут быть компоненты, которые могут выполняться на других машинах, например, сгибание белка, SETI @ home. Они, как правило, специализированы, т. Е. Вы не можете запустить Excel и сказать ему использовать другой компьютер для вычисления.
- Если вы выполняете интенсивные задачи с процессором, вы можете использовать дополнительный компьютер для их запуска, например, кодирование / перекодирование видеопотока.
Если вы хотите каким-либо образом ухаживать за вторичным компьютером, то возможность дистанционного управления имеет решающее значение. Два способа сделать это – через какой-то удаленный доступ (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 .