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

Обновлено: 30.06.2024

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

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

5 ответов 5

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

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

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

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

Скажем, например, у меня 4 ГБ ОЗУ на моем ноутбуке и 4 ГБ на ПК. Позволит ли мне RDP виртуально запустить программу с 8 ГБ ОЗУ?

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

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

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

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

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

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

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

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

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

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

Что может быть быстрее одного ПК? Ну, два (или больше) ПК, верно?

Как это часто бывает, это зависит от ваших рабочих нагрузок.

И даже если ваши рабочие нагрузки подходят для работы на нескольких компьютерах, как вы можете объединить их вычислительную мощность?

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

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

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

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

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

Как сочетаются вычислительные мощности? (общий вид)

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

Ну, сочетание вычислительной мощности не совсем работает таким образом. Вы не собираете и не комбинируете оборудование физически.

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

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

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

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

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

Вам нужно будет соединить их и попросить поговорить друг с другом.

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

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

Задержка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вот наше руководство по сравнению рендеринга CPU и GPU.

Другое

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

Хранилище

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

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

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

ОЗУ/Випамяти

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

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

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

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

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

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

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

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

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

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

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

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

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

Поэтому наша главная цель – сократить количество разговоров по сети.

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

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

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

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

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

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

Визуализация 3D-анимации

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

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

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

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

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

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

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

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

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

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

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

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

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

Как насчет потоковой передачи?

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

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

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

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

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

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

Вот руководство Intel, в котором подробно рассматривается весь процесс.

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

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

По сети

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

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

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

Вот руководство по началу работы с любой настройкой оборудования/программного обеспечения для подключения к локальной сети.

Возможности программного обеспечения

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

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

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

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

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

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

Renderfarm управляется через Rendermanager, например Thinkbox Deadline

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

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

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

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

Параллельная виртуальная машина (PVM) и интерфейс передачи сообщений (MPI). Их немного сложнее настроить.

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

Для получения дополнительной информации по этому вопросу посетите сайт netlib, где вы найдете подходящее программное обеспечение и несколько подробных руководств.

Обратите внимание, что эти руководства носят технический характер.

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

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

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

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

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

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

Имеет ли смысл объединение производительности нескольких ПК?

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

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

Это ваш ответ.

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

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

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

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

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

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

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

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

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

Folding @home – это хорошо известный проект, в котором вы можете принять участие с минимальными настройками.

Существуют также рендер-фермы, работающие на домашних ПК. Например, Sheep-It Renderfarm.

С помощью Sheepit Renderfarm вы можете сделать ресурсы вашего ПК доступными для других

Однако в таких проектах оплата не всегда денежная. Вам могут быть предоставлены другие способы компенсации, например, баллы.

Используйте вычислительную мощность нескольких ПК с помощью онлайн-рендер-ферм

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

Рендер-ферма — это кластер компьютеров (рендер-узлов), которые подключены через сетевое соединение LAN и доступны удаленно.

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

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

Заключение

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

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

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

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

Приветствую вас

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

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

Представьте, что вам поручили толкать очень тяжелую машину в гору. Вам разрешено нанимать людей, которые ничем другим не занимаются, чтобы помочь вам перевезти машину. У вас есть два варианта: вы можете поискать одного большого и достаточно сильного человека, чтобы сделать все это самостоятельно, или вы можете взять несколько обычных людей, чтобы они объединились. Хотя в конечном итоге вы можете найти кого-то достаточно крупного, чтобы толкать машину в одиночку, в большинстве случаев будет проще просто собрать группу людей среднего размера. Это может показаться странным, но общие компьютерные системы используют тот же принцип.

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

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

В большинстве случаев ваш компьютер не использует все свои вычислительные ресурсы. Бывают и другие случаи, когда вы можете включить компьютер, но фактически им не пользуетесь. Общая вычислительная система использует преимущества этих ресурсов, которые в противном случае остались бы неиспользованными.

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

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

Общие вычислительные системы

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

Совместно используемая вычислительная система может быть столь же эффективной, но она не обязательно выглядит очень элегантно. Общая вычислительная система ограничена только программным обеспечением, на которое она опирается для соединения компьютеров. При правильном программном обеспечении общая вычислительная система может работать на разных типах компьютеров, работающих под управлением разных операционных систем. Сетевые подключения могут существовать через проводные сети, локальные сети (LAN), беспроводные сети (WAN) или Интернет. Самое большое преимущество общей вычислительной системы по сравнению с традиционными системами высокопроизводительных вычислений заключается в том, что в общую вычислительную систему проще добавить дополнительные ресурсы. Присоединиться может любой, у кого есть компьютер, на котором можно запустить программное обеспечение системы.

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

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

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

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

Каковы различные части общей вычислительной системы? Продолжайте читать, чтобы узнать.

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

Общая вычислительная архитектура

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

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

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

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

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

Что такое приложения для общих вычислений и зачем им нужно специализированное программное обеспечение? Узнайте в следующем разделе.

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

Общие вычислительные приложения

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

Одним из примеров общей компьютерной системы является Лаборатория грид-систем штата Висконсин (GLOW). Университет Висконсин-Мэдисон использует GLOW для нескольких проектов, что в некотором роде отличает его от большинства общих вычислительных систем. Один проект использует сеть GLOW для изучения генома человека. Другой использует ресурсы GLOW для исследования потенциальных методов лечения рака. В отличие от общих вычислительных систем, предназначенных для одной задачи, GLOW может работать с несколькими проектами.

Программное обеспечение, которое делает возможным GLOW, называется Condor. Задача Condor — искать незанятые процессоры в сети GLOW и использовать их для работы над отдельными проектами. Когда один проект неактивен, Condor заимствует ресурсы для других проектов. Однако, если какой-либо ранее неактивный проект возвращается в оперативный режим, Condor освобождает процессоры соответствующих компьютеров.

Некоторые другие общие вычислительные системы включают:

  • SETI@home: проект, который анализирует данные с радиотелескопов в поисках разумной внеземной жизни.
  • Африка@дома. В рамках этого проекта вычислительные мощности используются для исследовательских программ, направленных на улучшение качества жизни в Африке, с упором на инициативы по борьбе с малярией.
  • Proteins@home, Predictor@home, Rosetta@home и Folding@home: каждый из этих проектов изучает белки по-разному.
  • Einstein@home, Cosmology@home, Milkyway@home и Orbit@home: в этих проектах изучаются астрономические данные.

Другие проекты изучают все, от физики гидродинамики до моделирования нанотехнологических сред.

Таким образом, общие вычислительные системы могут быть действительно полезными, но есть ли в них опасность? Читайте дальше, если вам не страшно.

IBM, компания, которая инвестирует миллионы долларов в исследования в области компьютерных наук, в январе 2008 г. опубликовала отчет о проекте Kittyhawk. Цель проекта — построить глобальную вычислительную систему с общим доступом, настолько большую и мощную, что она сможет размещать Интернет в качестве приложения. Другими словами, система будет похожа на огромный компьютер, а Интернет будет просто программой на нем.

Опасения по поводу общих вычислений

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

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

Однако есть исключения. Зомби-компьютерная система или ботнет является примером вредоносной общей вычислительной системы. Возглавляемая хакером компьютерная система-зомби превращает невинных владельцев компьютеров в жертв. Во-первых, жертва должна установить на свой компьютер специальное программное обеспечение, прежде чем хакер сможет получить к нему доступ. Обычно такое программное приложение маскируется под безобидную программу. После установки хакер может получить доступ к компьютеру жертвы для выполнения вредоносных задач, таких как прямая атака типа «отказ в обслуживании» (DDoS) или рассылка большого количества спама. Ботнет может охватывать сотни или тысячи компьютеров, при этом жертвы не знают, что происходит.

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

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

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

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

Совместно используемая вычислительная система – это разновидность вычислительной системы с ограниченной сеткой. Общие вычислительные системы распределяют фрагменты данных для конкретной задачи по сети компьютеров, используя неиспользуемую мощность ЦП. В системе распределенных вычислений сетевые компьютеры совместно используют несколько ресурсов, включая вычислительную мощность, память и пространство для хранения. Общая вычислительная система обычно имеет конкретную цель. Как только эта цель будет достигнута, в системе отпадет необходимость. Будущие системы грид-вычислений будут ориентированы на организацию, а это означает, что они будут использоваться в качестве общего актива для организаций и корпораций, а не для какой-то одной конкретной цели.

николас929

Похвально

У меня есть несколько компьютерных систем, и я хотел бы иметь возможность использовать их для различных процессов. Можно ли как-то связать их для этого?

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

бамбибум

Великолепно

У меня есть несколько компьютерных систем, и я хотел бы иметь возможность использовать их для различных процессов. Можно ли как-то связать их для этого?

Ну, я решил использовать удаленное управление компьютерами для того, что мне нужно сделать, но теперь я не могу установить ОС на машину.

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

Если вы используете удаленный рабочий стол Windows, каждая система должна быть подключена к домашней/рабочей сети или может работать через Интернет. Похоже, что конфигурация означает, что каждая система настроена на независимую работу — имеет свою собственную ОС и программы, а WRD действует как своего рода супер KVM-переключатель — куда бы вы ни пошли, вы можете использовать клавиатуру, мышь и монитор перед собой. , выберите из списка и используйте систему на удаленном рабочем столе.

Это то, что вы хотели бы сделать?

бамбибум

Великолепно

У меня есть несколько компьютерных систем, и я хотел бы иметь возможность использовать их для различных процессов. Можно ли как-то связать их для этого?

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

николас929,

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

Я никогда этого не делал, но оказалось, что кластер проще всего (условие относительное) с использованием настроенного протокола Linux на всех системах или в качестве режима сети/параллелизации, поэтому отдельные системы могут быть Windows и действовать как узлы. . На эту тему есть полезные видео на YouTube.

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

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

Какие у вас программы, проекты и существующие системы?

<р>1. HP z420 (2015) > Xeon E5-1660 v2 (6 ядер, 3,7/4,0 ГГц) / 32 ГБ DDR3-1866 ECC RAM / Quadro K4200 (4 ГБ) / Samsung SM951 M.2 256 ГБ AHCI + Intel 730 480 ГБ (9SSDSC2BP480G4R5) + Western Digital Black WD1003FZEX 1 ТБ> Звуковая карта M-Audio 192 > Блок питания 600 Вт> > Windows 7 Professional 64-bit > Динамики Logitech z2300 > 2X Dell Ultrasharp U2715H (2560 X 1440)>
[ Passmark Rating = 5581 > CPU= 14046 / 2D = 838 / 3D = 4694 / Память = 2777 / Диск = 11559] [6.12.16]

<р>2. Dell Precision T5500 (2011 г.) (с изменениями) > 2X Xeon X5680 (6 ядер, 3,33/3,6 ГГц), 48 ГБ DDR3 1333 ECC Reg. > Quadro K2200 (4 ГБ) > PERC H310 / Samsung 840 250 ГБ / WD RE4 Enterprise 1 ТБ > Звуковая карта M-Audio 192 > Logitech z313 > Блок питания 875 Вт > Windows 7 Professional 64 > HP 2711x (27", 1920 X 1080)
[Системный рейтинг Passmark = 3844 > ЦП = 15047 / 2D = 662 / 3D = 3550 / Память = 1785 / Диск = 2649] (12.30.15)


Могли бы вы сделать так, чтобы у меня был паршивый ноутбук с высокоскоростным подключением к Интернету. У меня дома гораздо лучший компьютер с большей вычислительной мощностью, графической картой и т. д.

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

Поэтому, с моей точки зрения, я использую программное обеспечение без проблем.


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

Облачные игры делают именно это.

В Steam есть встроенная функция, которая называется In-Home Streaming.

Ага, именно об этом я и думал. хорошенькая!

Если бы я только подумал об этом 10 лет назад

Есть ли серверы или что-то еще, что вы можете арендовать или подписаться? Было бы здорово иметь возможность войти в систему в любом месте, где есть приличное подключение к Wi-Fi, и играть в высококлассные компьютерные игры, размещенные на потрясающем сервере-концентраторе ПК.

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

TL;DR Да, но с возможной задержкой

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

Если в одной сети, обратите внимание на следующее:

Вы подключены через Wi-Fi или Ethernet?

2) является ли игровой компьютер Wi-Fi или Ethernet?

3) Настройка маршрутизатора/коммутатора/концентратора

4) Используемые кабели (Cat 5 и Cat 6)

5) Максимальная скорость карты Ethernet

6) другие сетевые действия, использующие увеличение/уменьшение полосы пропускания в то время, когда вы хотите играть

У меня есть PS4, и они недавно выпустили Remote play, и это довольно удобно, за исключением миллисекундной задержки между нажатием кнопки прыжка и прыжком персонажа. Эта задержка не имеет значения для большинства игр, но для некоторых она может иметь огромное значение (примерно по той же причине, по которой люди покупают игровые мыши и/или клавиатуры, чтобы уменьшить этот тип задержки)

Читайте также: