Разгрузка вычислений

Перенос вычислительных задач на отдельный процессор или внешнюю платформу

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

История

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

Первыми примерами разгрузки вычислений были использование простых подпроцессоров для обработки ввода/вывода через отдельную систему, называемую Channel I/O . Эта концепция улучшила общую производительность системы, поскольку мэйнфрейму требовалось только задать параметры для операций, в то время как канальные процессоры выполняли форматирование и обработку ввода/вывода. В 1970-х годах сопроцессоры начали использоваться для ускорения арифметики с плавающей точкой быстрее, чем более ранние 8- и 16-битные процессоры, которые использовали программное обеспечение. В результате математические сопроцессоры стали обычным явлением для научных и инженерных расчетов. Другой формой сопроцессора стал графический сопроцессор. По мере того, как обработка изображений становилась все более популярной, специализированные графические чипы начали использоваться для разгрузки создания изображений от центрального процессора. Сопроцессоры были распространены в большинстве компьютеров, однако их использование сократилось из-за развития микропроцессорных технологий, которые интегрировали многие функции сопроцессора. Однако выделенные графические процессоры по-прежнему широко используются из-за их эффективности во многих задачах, включая обработку изображений, машинное обучение, параллельные вычисления, компьютерное зрение и физическое моделирование.

Концепция разделения времени, совместного использования вычислительных ресурсов, была впервые реализована Джоном Маккарти . В то время вычисления на мэйнфреймах были непрактичны из-за расходов, связанных с покупкой и обслуживанием мэйнфреймов. Разделение времени было жизнеспособным решением этой проблемы, поскольку вычислительное время могло быть доступно для небольших компаний. В 1990-х годах телекоммуникационные компании начали предлагать услуги виртуальной частной сети (VPN) . Это позволило компаниям сбалансировать трафик на серверах, что привело к эффективному использованию полосы пропускания. Символ облака стал синонимом взаимодействия между поставщиками и пользователями. Эти вычисления вышли за рамки сетевых серверов и позволили сделать вычислительную мощность доступной пользователям посредством разделения времени. Наличие виртуальных компьютеров позволило пользователям разгружать задачи с локального процессора. [1]

В 1997 году distributed.net стремился получить добровольные вычисления для решения вычислительно-интенсивных задач, используя производительность сетевых ПК. Эта концепция, известная как grid computing, была связана с системами облачных вычислений.

Первая концепция объединения больших мэйнфреймов для обеспечения эффективной формы параллелизма была разработана в 1960-х годах IBM . Кластерные вычисления использовались IBM для повышения производительности оборудования, операционной системы и программного обеспечения, позволяя пользователям запускать существующие приложения. Эта концепция получила распространение в 1980-х годах, когда появились высокопроизводительные микропроцессоры и высокоскоростные сети, инструменты для высокопроизводительных распределенных вычислений. Кластеры могли эффективно разделять и разгружать вычисления на отдельные узлы для повышения производительности, а также для получения масштабируемости . [2]

Концепция

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

Аппаратное ускорение

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

Облачные вычисления

Облачные вычисления относятся как к приложениям, передаваемым через Интернет, так и к оборудованию и программному обеспечению в центрах обработки данных, которые предоставляют услуги; которые включают хранение данных и вычисления. [5] Эта форма вычислений зависит от высокоскоростного доступа в Интернет и инвестиций в инфраструктуру. [6] Благодаря сетевому доступу компьютер может перенести часть своих вычислений в облако. Этот процесс включает отправку данных в сеть центров обработки данных, которые имеют доступ к вычислительной мощности, необходимой для вычислений.

Кластерные вычисления

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

Сетевые вычисления

Grid computing — это группа сетевых компьютеров, которые работают вместе как виртуальный суперкомпьютер для выполнения интенсивных вычислительных задач, таких как анализ огромных наборов данных. С помощью облака можно создавать и использовать компьютерные сетки для определенных целей и периодов. Разделение вычислительных задач на несколько машин значительно сокращает время обработки, повышая эффективность и минимизируя ненужные ресурсы. В отличие от параллельных вычислений, задачи grid computing обычно не имеют зависимости от времени, связанной с ними, но вместо этого они используют компьютеры, которые являются частью сетки, только когда они простаивают, и пользователи могут выполнять задачи, не связанные с сеткой, в любое время. [8]

Преимущества

Передача вычислений внешнему процессору имеет ряд преимуществ:

  • Внешние процессоры могут обеспечить большую вычислительную производительность, объем памяти и гибкость по сравнению с локальным компьютером.
  • Вычислительные ограничения устройства можно игнорировать, переложив рабочую нагрузку на другие системы с лучшей производительностью и ресурсами. Другие аспекты устройства можно улучшить, включая: потребление энергии, стоимость и портативность. [9]
  • Предприятиям, которым для ведения бизнеса требуется оборудование, не нужно выделять ресурсы на развитие информационных технологий и инфраструктуры.
  • Кластерные вычисления более экономичны, чем одиночный компьютер, и гораздо более гибки с точки зрения добавления дополнительных процессорных блоков.

Ограничения

Существует несколько ограничений при передаче вычислений внешнему процессору:

  • У служб облачных вычислений есть проблемы с простоями, поскольку сбои могут возникать, когда поставщики услуг перегружены задачами.
  • Внешние вычисления требуют сетевой зависимости, что может привести к простоям в случае возникновения проблем с сетевым подключением.
  • Вычисления по сети приводят к задержке, которая нежелательна для приложений, чувствительных к задержке, включая автономное вождение и видеоаналитику. [10]
  • Поставщики облачных услуг не всегда безопасны, и в случае нарушения безопасности важная информация может быть раскрыта.
  • Современные компьютеры объединяют в себе различные технологии, включая графику, звуковое оборудование и сетевое оборудование на основной печатной плате, что делает многие аппаратные ускорители ненужными.
  • Использование облачных сервисов лишает пользователей индивидуального контроля над оборудованием и заставляет их полагаться на то, что поставщики облачных услуг будут поддерживать инфраструктуру и надежно защищать их данные.
  • Прикладное программное обеспечение может быть недоступно на целевом процессоре или операционной системе. Возможно, программное обеспечение необходимо переписать для целевой среды. Это может привести к дополнительной разработке программного обеспечения, тестированию и расходам.

Приложение

Облачные сервисы

Облачные сервисы можно описать тремя основными моделями облачных сервисов: SaaS , PaaS и IaaS . Программное обеспечение как услуга (SaaS) — это внешне размещенная услуга, к которой потребитель может легко получить доступ через веб-браузер. Платформа как услуга (PaaS) — это среда разработки, в которой программное обеспечение может быть создано, протестировано и развернуто без необходимости пользователю сосредотачиваться на создании и поддержании вычислительной инфраструктуры. Инфраструктура как услуга (IaaS) — это доступ к ресурсам инфраструктуры, сетевым технологиям и соблюдению требований безопасности, которые могут использоваться предприятиями для создания программного обеспечения. Сервисы облачных вычислений предоставляют пользователям доступ к большим объемам вычислительной мощности и хранилища, которые нежизнеспособны на локальных компьютерах, без значительных затрат. [6]

Мобильные облачные вычисления

Мобильные устройства, такие как смартфоны и носимые устройства, ограничены в плане вычислительной мощности, хранения и энергии. Несмотря на постоянное развитие ключевых компонентов, включая: ЦП, ГП, память и технологии беспроводного доступа, мобильные устройства должны быть портативными и энергоэффективными. Мобильные облачные вычисления представляют собой комбинацию облачных вычислений и мобильных вычислений, в которых мобильные устройства выполняют разгрузку вычислений, чтобы сбалансировать мощность облака для ускорения выполнения приложений и экономии потребления энергии. При этой разгрузке вычислений мобильное устройство переносит часть своих вычислений в облако. Этот процесс включает в себя разбиение приложений, разгрузку решений и распределенное выполнение задач. [11] [12]

Видеоигры

Видеоигры — это электронные игры, которые включают ввод, взаимодействие с пользовательским интерфейсом и генерацию вывода, обычно визуальной обратной связи на устройстве отображения видео. Эти операции ввода/вывода зависят от компьютера и его компонентов, включая ЦП, ГП, ОЗУ и хранилище. Файлы игр хранятся в форме вторичной памяти , которая затем загружается в основную память при выполнении. ЦП отвечает за обработку ввода от пользователя и передачу информации в ГП. ГП не имеет доступа к основной памяти компьютера, поэтому вместо этого графические ресурсы должны быть загружены в VRAM, которая является памятью ГП. ЦП отвечает за инструктирование ГП, в то время как ГП использует информацию для рендеринга изображения на устройстве вывода. ЦП могут запускать игры без ГП с помощью программного рендеринга, однако, выгрузка рендеринга на ГП, который имеет специализированное оборудование, приводит к повышению производительности. [13]

Ссылки

  1. ^ Фут, Кит Д. (2017-06-22). «Краткая история облачных вычислений». DATAVERSITY . Получено 2019-10-17 .
  2. ^ ab Yeo, Chin; Buyya, Rajkumar; Pourreza, Hossien; Eskicioglu, Rasit; Peter, Graham; Sommers, Frank (2006-01-10). Кластерные вычисления: высокопроизводительная, высокодоступная и высокопроизводительная обработка в сети компьютеров . Бостон, Массачусетс: Springer. ISBN 978-0-387-40532-2.
  3. ^ "Частота ЦП". www.cpu-world.com . Получено 2019-10-16 .
  4. ^ Кардозу, Жоао; Габриэль, Хосе; Педро, Диниз (15 июня 2017 г.). Встроенные вычисления для высокой производительности . Морган Кауфманн. ISBN 9780128041994.
  5. ^ Армбруст, Майкл; Фокс, Армондо; Гриффит, Рин; Джозеф, Энтони; Кац, Рэнди; Конвински, Эндрю; Ли, Гунхо; Паттерсон, Дэвид; Рабкин, Ариэль (10 февраля 2009 г.). Выше облаков: взгляд Беркли на облачные вычисления .
  6. ^ ab "Как работают облачные вычисления? | Блог Cloud Academy". Cloud Academy . 2019-03-25 . Получено 2019-10-22 .
  7. ^ ab "Введение в кластерные вычисления — основы распределенных вычислений". selkie.macalester.edu . Получено 22.10.2019 .
  8. ^ "Что такое Grid Computing - Определение | Microsoft Azure". azure.microsoft.com . Получено 22.10.2019 .
  9. ^ Ахерфи, Хадиджа; Герндт, Майкл; Харроуд, Хамид (01.01.2018). «Мобильные облачные вычисления для разгрузки вычислений: проблемы и задачи». Прикладные вычисления и информатика . 14 (1): 1– 16. doi : 10.1016/j.aci.2016.11.002 . ISSN  2210-8327.
  10. ^ Анантанараянан, Ганеш; Бахл, Парамвир; Бодик, Питер; Чинталапуди, Кришна; Филиппос, Маттаи; Равиндранат, Ленин; Синха, Судипта (2017). «Видеоаналитика в реальном времени: потрясающее приложение для периферийных вычислений». Компьютер . 50 (10): 58–67 . doi :10.1109/mc.2017.3641638. ISSN  0018-9162. S2CID  206449115.
  11. ^ Линь, Л.; Ляо, С.; Цзинь, Х.; Ли, П. (август 2019 г.). «Вычисления разгрузки в сторону периферийных вычислений». Труды IEEE . 107 (8): 1584– 1607. doi :10.1109/JPROC.2019.2922285. S2CID  199017142.
  12. ^ Ma, X.; Zhao, Y.; Zhang, L.; Wang, H.; Peng, L. (сентябрь 2013 г.). «Когда мобильные терминалы встречаются с облаком: разгрузка вычислений как мост». IEEE Network . 27 (5): 28– 33. doi :10.1109/MNET.2013.6616112. S2CID  16674645.
  13. ^ "Как работают видеокарты - ExtremeTech". www.extremetech.com . Получено 11 ноября 2019 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Вычисление_выгрузки&oldid=1223705777"