Объединение ресурсов нескольких компьютеров

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

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

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

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

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

Одна из моих наиболее часто используемых строк — Да и Нет!

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

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

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

Необходимо понимать, что при запуске программы она поддерживает свое состояние, провоцируя ЦП перемещать память между регистрами жесткого диска, ОЗУ и ЦП, а также адреса различных компонентов (таких как видеокарты или сетевые карты). Проблема с использованием процессора с другого компьютера, чтобы помочь вам, что ему нужен доступ к той же памяти. А поддержание зеркального отображения памяти вашего компьютера на другом компьютере требует таких больших накладных расходов, что это легко побеждает цель добавления другого компьютера для повышения производительности 🙂

Читайте также:  Это сетевой протокол передачи гипертекста web страниц

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

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

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

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

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

  • Используйте удаленные вызовы процедур (RPC). Подобно тому, как вы можете сделать хост файловым сервером или веб-сервером, RPC позволяют вам сделать машину, по сути, сервером ЦП. Концептуально у вас будет один главный компьютер, который будет RPC-клиентом, и он будет вызывать библиотечные функции, которые будут прозрачно выполняться на сервере. В своей простейшей форме эта архитектура не даст вам никакого выигрыша в производительности, поскольку в любой момент будет выполняться только один процессор. Однако в асинхронной модели клиент может запустить удаленную процедуру на сервере, а затем выполнять другие действия во время работы сервера.
  • Используйте язык, разработанный для параллельной обработки, такой как Unified Parallel C (UPC). Это расширение языка C с возможностями для распределенных данных и одновременного выполнения. Рекомендации:
    • Унифицированная параллельная страница C в Университете Джорджа Вашингтона.
    • Страница набора инструментов GNU UPC.

    Источник

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

    Avaya_ERS-5520-48T-PWR-Front.jpg

    У меня родилась «гениальная» идея: создать соединить мощности двух компов.
    Погуглил, такая технология есть, существует и активно используется людьми со всего мира.
    Погуглил ещё, оказывается, что это можно сделать на Windows Server и Linux
    Ну и соответственно, вопросы:
    1.1 Можно ли комфортно работать на Сервере — играть в игры, отвечать на Тостере, смотреть кино? В том числе на кластеризированном?
    1.2 Будет ли на кластеризированном линуксе нормально работать Wine и\или подобные средства запуска windows — программ?
    Погуглил еще — оказывается, что скорости моего инета для нормального функционирования кластера не хватит, а надо для таких вещей кабельного сообщения компьютеров.
    Ну и вопросы:
    2.1 Можно ли просто напрямую соединить два компа каким-нибудь таким lan кабелем?
    2.2 Если я захочу к этой бандуре подключить еще нетбук, то можно ли просто всё присоединить к подобному свитчу и радоваться жизни?

    Хар-ки компьютеров:
    2.40 Ghz | 2.27 Ghz — оба двухядерные, от intel
    4 Gb RAM- одинаково
    512 Mb GPU — одинаково, от nvidia
    Dell|Asus

    Для того, для чего вы хотите — никак не создать.
    Кластер — это даже согласно статье из Википедии, которую вы приводите — это слабо связанная вычислительная система.
    Попробую объяснить, используя аналогию.
    Вы считаете, что компьютеры можно объединять также, как можно объединять усилия людей, наполняющих бочку водой, таская ее ведрами. Один человек наполнит за час, два — за полчаса, и так далее. Но это процесс, который распараллеливается элементарно.

    А на самом деле, кластер работает подобно команде сценаристов, которые пишут сценарий сериала из двадцати серий, работая удаленно по бумажной почте: сначала главный сценарист придумывает персонажей и общий сюжет, записывает это, потом ему нужно разбить его на серии и отослать каждому из сценаристов, указав, какую серию тому нужно прописать в подробностях. Если бы он писал все сам, ему бы понадобилось по неделе на серию, итого — двадцать недель. А съемки можно начинать, когда готова первая серия (через неделю). Поскольку съемки одной серии занимают три дня, съемочная группа будет простаивать четыре дня из каждой недели, пока не будет готова следующая серия (деньги во время простоя тоже расходуются, хотя ничего не производится). Съемки будут, таким образом, завершены через 20*7+3=143 дня.

    Наемным сценаристам тоже нужно по неделе на написании серий, но начальная работа главного сценариста тоже занимает неделю, плюс — три дня на доставку «каркаса сценария» наемным сценаристам, три дня на доставку сценария серий обратно, еще пять дней на проверку и исправление нестыковок. Итог — начинать съемки можно только через 25 дней, а не через семь, но продолжать их можно уже непрерывно. Съемки будут завершены через 25+3*20=85 дней.

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

    Чтобы всё «летало» в реальном времени в игре, вам нужен один мощный компьютер с многоядерным процессором, мощной видеокартой и быстрой шиной, которая всех их объединяет. А собрать кластер из сотни древних ноутов на медленном Ethernet и получить производительность в сто раз больше в играх — это фантастика из дурацких фильмов про хакеров.

    Источник

    Читайте также:  Компьютерная сеть в космосе
Оцените статью
Adblock
detector