Как объединить два (или больше) компьютера для увеличения производительности

Россия+7 (910) 990-43-11
Обновлено: 2022-11-15

Что быстрее одного ПК? Два (или больше) ПК? И да, и нет. Как это часто бывает, всё зависит от ваших рабочих нагрузок. И даже если ваши рабочие нагрузки подходят для работы на нескольких ПК, как вы можете объединить их вычислительную мощность?

В этой статье мы рассмотрим различные рабочие нагрузки – от рендеринга до игр – и посмотрим, когда вам выгодно объединять несколько ПК – и как это сделать.

Преимущества объединения вычислительной мощности нескольких ПК

Давайте посмотрим, что вы можете получить от использования ресурсов нескольких ПК, и стоит ли это того для ваших вариантов использования.

Соединение компьютеров и объединение их ресурсов вместе осуществляется по трём основным причинам:

  1. Вы можете продолжать использовать свой основной компьютер без замедлений. То есть, вы можете продолжать работать над своим следующим проектом или даже играть, в то время как, например, рендеринг или другие задачи обработки выполняются на вспомогательном компьютере.
  2. Чтобы ускорить чрезвычайно трудоемкие задачи. Некоторые задачи могут выполняться ужасно долго. На ум сразу приходят «Визуализация» и «Моделирование». Такие задачи обычно можно разделить на подзадачи и назначить их на одновременный запуск на разных компьютерах, что часто приводит к почти линейному уменьшению времени обработки. Однако, узким местом здесь является задержка сетевого подключения, но для хорошо распараллеленных рабочих нагрузок ею можно пренебречь.
  3. Из соображений безопасности и надёжности. Может быть вы ведёте процесс, который вы не хотите прерывать, так почему бы не иметь дополнительный компьютер, который может взять на себя управление, если первый выйдет из строя? Это может уберечь вас от любой потенциальной потери данных или временных задержек, которые могут замедлить проект или текущий процесс (например, сеанс прямой трансляции).

Как объединяется вычислительная мощность (на высоком уровне)

Слово «объединяется» здесь немного вводит в заблуждение. Если бы я действительно объединил 2 ПК, я бы ожидал, что в результате один ПК будет в два раза мощнее. Но, объединение вычислительной мощности не работает таким образом. Вы не собираете и не комбинируете оборудование физически.

Это больше похоже на соединение двух или более ПК, чтобы вы могли «использовать производительность обоих отдельных ПК максимально эффективно, с некоторой простотой использования».

Для простоты мы будем измерять вычислительную мощность ПК тем, сколько времени требуется для выполнения одной задачи. Этой задачей может быть, например, рендеринг видео (последовательности изображений).

Если одному ПК требуется 1 час для рендеринга нашего видео, то двум ПК оптимально потребуется всего 30 минут для завершения рендеринга. Если у вас 10 ПК, то рендеринг видео будет выполнен всего за 6 минут.

Это оптимальный случай.

Теперь, если вы запустите рендеринг видео на своём первом ПК, все остальные ПК не узнают, что они должны помочь с этой задачей. Вам нужно будет соединить их и сказать им, чтобы они говорили друг с другом.

Существует множество способов объединения ПК, но наиболее часто используемым и самым простым является сетевое подключение. Вы идёте, покупаете коммутатор и несколько LAN-кабелей и подключаете их друг к другу.

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

Задержка сетевого соединения

Конечно, сетевое (или любое другое) соединение приводит к задержке.

Чем дальше данные должны перемещаться, тем больше становится задержка (с точки зрения непрофессионала).

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

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

Это также означает, что не все задачи можно легко распараллелить. Только задачи, которые можно легко разделить на независимые подзадачи. Подробнее об этом позже.

Какие виды производительности можно совмещать

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

Варианты использования установки на основе двух компьютеров

Процессор объединенного ПК

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

Лучший процессор для рендеринга – это процессор с большим количеством ядер и высокой тактовой частотой.

Если у вас есть второй компьютер, который стоит без дела, вы можете использовать то, что у вас уже есть, даже если у него нет процессора, специально созданного с учетом ваших рабочих нагрузок.

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

Вот тут и пригодится статья о лучших процессорах для рендеринга.

Резюмируем: вы сможете использовать CPU второго ПК, но, в зависимости от его производительности, польза может быть не такой уж большой.

Видеокарта объединенного ПК

Если ваши рабочие нагрузки зависят от производительности графического процессора (например, рендеринг на GPU), то второй, неиспользуемый графический процессор может очень помочь вам в сокращении ресурсов или добавлении ресурсов к вашему основному ПК.

ПК могут управлять более чем одним графическим процессором. С помощью сборок рабочей станции HEDT, которые могут функционировать как узлы рендеринга, вы можете добавить до 4 видеокарт на (настольный) ПК.

Если рабочие нагрузки рендеринга входят в ваш список ежедневных задач, вы будете рады узнать, что некоторые механизмы рендеринга даже поддерживают гибридный рендеринг. Это означает, что в дополнение к производительности графических процессоров второго ПК вы также можете использовать вычислительную мощность центрального процессора.

Рендеринг на CPU и GPU – что выбрать

Другие элементы объединенного ПК

Хотя вторичный ПК, скорее всего, будет использоваться либо из-за его ЦП, либо из-за видеокарты, в некоторых случаях могут использоваться аппаратные компоненты без прямой обработки.

Хранилище объединенного ПК

Например, вы можете использовать дополнительные устройства хранения для создания системы сетевого хранилища (NAS), конфигурации RAID или того и другого через соединение Ethernet.

Конфигурации хранилища по типам RAID

Кроме того, использование ПК в качестве файлового сервера позволит вам получить доступ к своим данным через несколько устройств и создать избыточность, которая обеспечит безопасность ваших файлов.

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

ОЗУ / видеопамять объединенного ПК

В некоторых случаях вы также можете использовать ОЗУ (память) дополнительного устройства.

Оперативная память подключена к ЦП через высокоскоростную шину, поэтому к ней можно получить доступ в одно мгновение.

Если бы ЦП одного компьютера обращался к ОЗУ другого, это заняло бы значительное количество времени, что сделало бы весь процесс бессмысленным.

Однако, если вы назначаете подзадачу второму ПК и ЦП использует ОЗУ этого ПК для выполнения задачи, вы можете освободить память ОЗУ на своём основном компьютере.

Это делается автоматически и идёт рука об руку с использованием вычислительной мощности ЦП или GPU (и его видеопамяти) дополнительного ПК.

Таким образом, косвенно вы также можете использовать системную память или графическую память дополнительного ПК.

Какие рабочие нагрузки можно запускать на нескольких ПК

Давайте рассмотрим некоторые из наиболее распространенных задач, которые можно выполнять, используя несколько компьютеров:

  • 3D визуализация
  • Рендеринг видео
  • Симуляторы
  • Пакетная обработка
  • Майнинг криптовалюты
  • Последовательная обработка изображений
  • Машинное обучение
  • Потоковая трансляция

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

Почему подзадачи?

Помните, что мы говорили о задержке выше? Чем меньше «разговоров в сети», тем быстрее могут выполняться процессы.

Если простой задаче требуется 1 секунда для передачи данных по сети, то задача, состоящая из 1 миллиона таких простых задач, займёт целую вечность.

Вот если бы эта простая задача получала данные не через сеть, а из своей локальной памяти, этот запрос занял бы всего 10 наносекунд! В 100000000 раз быстрее.

Таким образом, наша главная цель должна состоять в том, чтобы уменьшить количество разговоров по сети.

Мы можем сделать это, взяв большую задачу и разделив её на независимые подзадачи.

Независимые, так что отдельный ПК может работать над этой подзадачей без необходимости какого-либо доступа к сети (до тех пор, пока задание не будет завершено и результат не будет отправлен обратно на хост).

Давайте сделаем пример. Рабочая нагрузка/задача, которую можно легко распараллелить:

Обработка изображений (например, пакетное масштабирование изображений до другого разрешения)

Если вы хотите изменить размер 1000 изображений на 4 компьютерах, нет ничего проще, чем изменить размер 250 изображений на каждом компьютере.

Задачу изменения размера 1000 изображений можно легко разделить на 1000 подзадач. Каждое изменение размера изображения является одной подзадачей.

Рендеринг 3D-анимации

Это работает так же. Рендеринг анимации, состоящей из 100 кадров, можно легко разделить на 100 отдельных подзадач. Рендеринг 1 кадра является подзадачей.

Если бы у вас было 100 ПК, эта анимация из 100 кадров отображалась бы в 100 раз быстрее, чем на одном ПК (оптимально).

Что, если бы у нас был 101 ПК? Или 1000 ПК? Поможет ли это?

Нет!

Поскольку подзадачи не могут быть легко разделены дальше, наличие большего количества компьютеров, чем количество подзадач, не поможет ускорить процесс.

Это подводит нас к следующему разделу:

Можно ли объединить вычислительную мощность двух ПК для игр

Это пример задачи, которую нельзя разделить на подзадачи:

Вы не можете разделить запуск игры на подзадачи, которые выиграют от запуска на нескольких ПК. Из-за задержки.

Допустим, вы хотите использовать видеокарту на дополнительном ПК для графических вычислений, а не на основном ПК, на котором запущена ваша игра.

Поскольку графическому процессору требуется доступ к данным 3D-модели, данным сцены, текстурам, анимации заданного уровня в режиме реального времени, 60 раз (или более) в секунду, ваше сетевое соединение слишком медленное и имеет неподходящую задержку для отправки требуемых данных. Вы столкнётесь с ужасным отставанием.

Любая задача, требующая взаимодействия в реальном времени, обычно не подходит для выполнения на нескольких ПК.

Конечно, вы можете просто запустить игру на своём втором ПК, а также удаленно / совместно использовать экран и управлять этим вторым ПК с вашего первого ПК, но это не объединяет вычислительную мощность. Это просто игра на втором ПК и управление им с первого.

Задержка намного меньше, но некоторая задержка всё же есть, так как готовые отрендеренные кадры все равно должны быть отправлены вам по сети для отображения на мониторе вашего первого ПК. Кстати, именно так работают онлайн-игры.

Что насчёт стриминга?

Есть случай, когда подключение двух ПК может быть полезно для геймеров. Если вы любите транслировать свои игровые достижения аудитории, делегирование задачи потоковой передачи на второй компьютер может быть невероятно полезным.

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

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

Как настроить дополнительный ПК для потоковой трансляции

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

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

Как объединить вычислительную мощность нескольких ПК

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

Объединение компьютеров через сеть

Мы уже немного говорили о сетевых соединениях.

Это, пожалуй, самый простой способ соединить несколько компьютеров друг с другом. Вы можете использовать устройства в сети домашней группы (Windows), чтобы обмениваться файлами и периферийными устройствами.

Это также шаг, который позволяет определенному специализированному программному обеспечению (например, Render Manager Thinkbox Deadline) использовать вычислительную мощность обоих ваших ПК за счёт возможностей конкретного приложения.

Программные возможности для объединения ПК

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

Например, некоторые механизмы 3D-рендеринга, такие как OctaneRender, будут иметь опцию «сетевой рендеринг». Использование этой опции в настройках позволит вам отправлять задачи рендеринга на второй компьютер одним нажатием кнопки (после некоторой настройки).

Менеджеры рендеринга

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

Менеджеры рендеринга – это инструменты, которые могут управлять заданиями по обработке для самых разных программ. Они ставят в очередь, распределяют и назначают задания на основе вычислительных возможностей различных ПК и собирают результат для дальнейшего использования.

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

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

Одним из таких приложений Render Manager является Deadline от Thinkbox.

Параллельная виртуальная машина

Две широко используемые формы распределенных вычислений: параллельная виртуальная машина (PVM) и интерфейс передачи сообщений (MPI). Они немного сложнее и сложны в настройке.

PVM позволяет вам подключать разнородные компьютеры (в основном, ПК с разной аппаратной архитектурой, например, AMD или Intel) для параллельных операций.

Интерфейс передачи сообщений

Когда дело доходит до MPI, VirtualBox находится там, где он есть. Вы можете использовать это приложение для подключения нескольких гостевых машин к единой виртуальной машине.

VirtualBox также позволяет создавать гостевые операционные системы на устройстве, что даёт вам возможность тестировать приложения в разных операционных системах (если есть проблема совместимости).

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

Я знаю, это звучит сложно, но на самом деле это проще, чем кажется.

В конце концов, вы всегда ограничены узким местом, которое создает сетевое подключение.

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

Как уже говорилось, это зависит от выполняемых вами рабочих нагрузок.

Спросите себя:

  • Можно ли разделить вашу рабочую нагрузку на независимые подзадачи? (это хорошо для распределения между несколькими ПК). Примеры – пассивные задачи, такие как рендеринг, пакетная обработка.
  • Или ваши рабочие нагрузки сильно зависят от задержки? (это плохо для распределения между несколькими ПК). Примеры – активные задачи, такие как игры, активная работа в программном приложении.

Можно ли объединить ноутбук и ПК

Конечно! Ноутбуки – это просто ПК в другом форм-факторе, поэтому всё вышесказанное относится и к ним.

Однако, их более низкая производительность по сравнению с настольными ПК или серверами не делает их моим первым выбором.

Если у вас уже есть ноутбук, смело используйте его, но не покупайте дополнительный ноутбук для повышения производительности.

Производительность на рубль всегда будет хуже в ноутбуках. Они сделаны, в первую очередь, из соображений мобильности.


Выводы

Объединение вычислительной мощности двух или более ПК может значительно повысить вашу эффективность, ускорить рабочие нагрузки и снизить риск потери данных или потери времени.

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

Просто помните: это метод, используемый в основном для разделения процесса на подзадачи и распределения их по разным машинам, чтобы они могли выполняться одновременно.

Это не сделает ваш основной компьютер более мощным.


3.4/8