Разгрузка вычислений
Разгрузка вычислений — это перенос ресурсоемких вычислительных задач на отдельный процессор, например аппаратный ускоритель , или внешнюю платформу, например кластер , грид или облако . Разгрузку на сопроцессор можно использовать для ускорения приложений, включая рендеринг изображений и математические вычисления. Разгрузка вычислений на внешнюю платформу по сети может обеспечить вычислительную мощность и преодолеть аппаратные ограничения устройства, такие как ограниченная вычислительная мощность, хранилище и энергия.
История
[ редактировать ]Первые концепции компьютеров с хранимой программой были разработаны при разработке ENIAC , первого цифрового компьютера общего назначения. ENIAC был ограничен в производительности отдельными задачами, что привело к разработке EDVAC , который стал первым компьютером, предназначенным для выполнения инструкций различных типов. Развитие вычислительных технологий способствовало увеличению производительности компьютеров и впоследствии привело к разнообразию конфигураций и архитектур.
Первыми случаями разгрузки вычислений было использование простых подпроцессоров для обработки ввода/вывода через отдельную систему под названием Channel I/O . Эта концепция улучшила общую производительность системы, поскольку мэйнфрейму нужно было только устанавливать параметры для операций, в то время как процессоры каналов выполняли форматирование и обработку ввода-вывода. В 1970-х годах сопроцессоры начали использоваться для ускорения арифметики с плавающей запятой быстрее, чем более ранние 8-битные и 16-битные процессоры, в которых использовалось программное обеспечение. В результате математические сопроцессоры стали обычным явлением для научных и инженерных расчетов. Другой формой сопроцессора был графический сопроцессор. Поскольку обработка изображений стала более популярной, стали использоваться специализированные графические чипы, чтобы разгрузить создание изображений от ЦП. Сопроцессоры были распространены в большинстве компьютеров, однако их использование сократилось из-за развития микропроцессорных технологий, которые интегрировали многие функции сопроцессора. Однако выделенные графические процессоры по-прежнему широко используются благодаря своей эффективности во многих задачах, в том числе; обработка изображений, машинное обучение, параллельные вычисления, компьютерное зрение и физическое моделирование.
Концепция разделения времени, совместного использования вычислительных ресурсов, была впервые реализована Джоном Маккарти . В то время использование мэйнфреймов было непрактично из-за затрат, связанных с приобретением и обслуживанием мэйнфреймов. Разделение времени было жизнеспособным решением этой проблемы, поскольку вычислительное время могло быть доступно небольшим компаниям. В 1990-х годах телекоммуникационные компании начали предлагать услуги виртуальных частных сетей (VPN) . Это позволило компаниям сбалансировать трафик на серверах, что привело к эффективному использованию полосы пропускания. Символ облака стал синонимом взаимодействия между поставщиками и пользователями. Эти вычисления вышли за рамки сетевых серверов и позволили пользователям получить вычислительную мощность посредством разделения времени. Наличие виртуальных машин позволило пользователям разгрузить задачи с локального процессора. [1]
В 1997 году компания Distributed.net стремилась привлечь добровольцев для решения интенсивных вычислительных задач, используя производительность сетевых ПК. Эта концепция, известная как грид-вычисления, была связана с системами облачных вычислений.
Первая концепция объединения больших мэйнфреймов для обеспечения эффективной формы параллелизма была разработана в 1960-х годах компанией IBM . Кластерные вычисления использовались IBM для повышения производительности оборудования, операционной системы и программного обеспечения, позволяя пользователям запускать существующие приложения. Эта концепция получила распространение в 1980-х годах, когда появились высокопроизводительные микропроцессоры и высокоскоростные сети — инструменты для высокопроизводительных распределенных вычислений. Кластеры могут эффективно разделять и перегружать вычисления на отдельные узлы для повышения производительности и одновременного увеличения масштабируемости . [2]
Концепция
[ редактировать ]Вычислительные задачи обрабатываются центральным процессором , который выполняет инструкции, выполняя элементарную арифметику , логику управления и операции ввода/вывода. Эффективность вычислительных задач зависит от количества инструкций в секунду , которые может выполнить ЦП, которые различаются в зависимости от типа процессоров. [3] Некоторые процессы приложений можно ускорить, передав задачи с главного процессора на сопроцессор , в то время как для других процессов может потребоваться внешняя платформа обработки.
Аппаратное ускорение
[ редактировать ]Аппаратное обеспечение обеспечивает более высокую производительность для определенных задач по сравнению с программным обеспечением. Использование специализированного оборудования позволяет выполнять функции быстрее, чем программное обеспечение, обрабатываемое на ЦП. Аппаратное обеспечение имеет преимущество настройки, которая позволяет использовать специальные технологии для различных функций. Например, графический процессор (GPU) , который состоит из множества низкопроизводительных ядер, более эффективен при графических вычислениях, чем процессор, который имеет меньшее количество ядер высокой мощности. [4] Однако аппаратные ускорители менее универсальны по сравнению с ЦП.
Облачные вычисления
[ редактировать ]К облачным вычислениям относятся как приложения, передаваемые через Интернет, так и аппаратное и программное обеспечение в центрах обработки данных, предоставляющих услуги; которые включают хранение данных и вычисления. [5] Эта форма вычислений зависит от высокоскоростного доступа в Интернет и инвестиций в инфраструктуру. [6] Благодаря доступу к сети компьютер может перенести часть своих вычислений в облако. Этот процесс включает отправку данных в сеть центров обработки данных, которые имеют доступ к вычислительной мощности, необходимой для вычислений.
Кластерные вычисления
[ редактировать ]Кластерные вычисления — это тип системы параллельной обработки, которая объединяет взаимосвязанные автономные компьютеры для работы как единый вычислительный ресурс. [7] В кластерах используется модель параллельного программирования , которая требует технологий быстрого соединения для поддержки высокой пропускной способности и низкой задержки для связи между узлами. [2] В модели с общей памятью параллельные процессы имеют доступ ко всей памяти как к глобальному адресному пространству. Несколько процессоров могут работать независимо, но они используют одну и ту же память, поэтому изменения в памяти одного процессора отражаются на всех остальных процессорах. [7]
Грид-вычисления
[ редактировать ]Грид-вычисления — это группа сетевых компьютеров, которые работают вместе как виртуальный суперкомпьютер для выполнения интенсивных вычислительных задач, таких как анализ огромных наборов данных. Через облако можно создавать и использовать компьютерные сетки для целей и определенных периодов. Разделение вычислительных задач на несколько машин значительно сокращает время обработки, повышает эффективность и минимизирует потери ресурсов. В отличие от параллельных вычислений, задачи сетевых вычислений обычно не имеют связанной с ними зависимости от времени, вместо этого они используют компьютеры, которые являются частью сети, только во время простоя, и пользователи могут выполнять задачи, не связанные с сеткой, в любое время. [8]
Преимущества
[ редактировать ]Перенос вычислений на внешний процессор имеет несколько преимуществ:
- Внешние процессоры могут обеспечить большую вычислительную производительность, объем памяти и гибкость по сравнению с локальным компьютером.
- Вычислительные ограничения устройства можно игнорировать, переложив рабочую нагрузку на другие системы с более высокой производительностью и ресурсами. Другие аспекты устройства могут быть улучшены, в том числе; энергопотребление, стоимость и портативность. [9]
- Предприятиям, которым для ведения бизнеса требуется оборудование, не нужно выделять ресурсы на развитие информационных технологий и инфраструктуры.
- Кластерные вычисления более экономичны, чем один компьютер, и гораздо более гибки с точки зрения добавления большего количества процессоров.
Ограничения
[ редактировать ]Существует несколько ограничений при выгрузке вычислений на внешний процессор:
- У служб облачных вычислений возникают проблемы с простоями, поскольку сбои могут возникать, когда поставщики услуг перегружены задачами.
- Внешние вычисления требуют зависимости от сети, что может привести к простою, если с сетевым подключением возникнут проблемы.
- Вычисления по сети приводят к задержке, которая нежелательна для чувствительных к задержке приложений, включая автономное вождение и видеоаналитику. [10]
- Поставщики облачных услуг не всегда безопасны, и в случае нарушения безопасности важная информация может быть раскрыта.
- Современные компьютеры объединяют различные технологии, в том числе; графическое, звуковое оборудование и сеть внутри основной платы, что делает многие аппаратные ускорители ненужными.
- Использование облачных сервисов лишает индивидуального контроля над оборудованием и заставляет пользователей доверять тому, что поставщики облачных услуг будут поддерживать инфраструктуру и должным образом защищать их данные.
- Прикладное программное обеспечение может быть недоступно на целевом процессоре или операционной системе. Возможно, потребуется переписать программное обеспечение для целевой среды. Это может привести к дополнительной разработке программного обеспечения, тестированию и затратам.
Приложение
[ редактировать ]Облачные сервисы
[ редактировать ]Облачные сервисы можно описать тремя основными моделями облачных сервисов: SaaS , PaaS и IaaS . Программное обеспечение как услуга (SaaS) — это услуга, размещенная на внешнем сервере, к которой потребитель может легко получить доступ через веб-браузер. Платформа как услуга (PaaS) — это среда разработки, в которой программное обеспечение можно создавать, тестировать и развертывать, при этом пользователю не приходится концентрироваться на создании и обслуживании вычислительной инфраструктуры. Инфраструктура как услуга (IaaS) — это доступ к ресурсам инфраструктуры, сетевым технологиям и соблюдению требований безопасности, которые могут использоваться предприятиями для создания программного обеспечения. Услуги облачных вычислений предоставляют пользователям доступ к большим объемам вычислительной мощности и хранилищу, недоступным на локальных компьютерах, без значительных затрат. [6]
Мобильные облачные вычисления
[ редактировать ]Мобильные устройства, такие как смартфоны и носимые устройства, ограничены с точки зрения вычислительной мощности, памяти и энергии. Несмотря на постоянное развитие ключевых компонентов, в том числе; Технологии процессора, графического процессора, памяти и беспроводного доступа; мобильные устройства должны быть портативными и энергоэффективными. Мобильные облачные вычисления — это комбинация облачных вычислений и мобильных вычислений, при которой мобильные устройства выполняют разгрузку вычислений, чтобы сбалансировать мощность облака для ускорения выполнения приложений и экономии энергопотребления. При такой разгрузке вычислений мобильное устройство переносит часть своих вычислений в облако. Этот процесс включает в себя разделение приложений, принятие решений по разгрузке и распределенное выполнение задач. [11] [12]
Видеоигры
[ редактировать ]Видеоигры — это электронные игры, которые включают ввод данных, взаимодействие с пользовательским интерфейсом и генерацию вывода, обычно визуальной обратной связи на устройстве отображения видео. Эти операции ввода-вывода зависят от компьютера и его компонентов, включая процессор, графический процессор, оперативную память и хранилище. Файлы игры хранятся во вторичной памяти , которая затем при выполнении загружается в основную память . ЦП отвечает за обработку ввода пользователя и передачу информации в графический процессор. Графический процессор не имеет доступа к основной памяти компьютера, поэтому графические ресурсы необходимо загружать в VRAM , которая является памятью графического процессора. ЦП отвечает за инструктирование графического процессора, в то время как графический процессор использует информацию для рендеринга изображения на устройство вывода. ЦП могут запускать игры без графического процессора посредством программного рендеринга, однако передача рендеринга на графический процессор, имеющий специализированное оборудование, приводит к повышению производительности. [13]
Ссылки
[ редактировать ]- ^ Фут, Кейт Д. (22 июня 2017 г.). «Краткая история облачных вычислений» . ДАННЫЕ . Проверено 17 октября 2019 г.
- ^ Jump up to: а б Йео, Чин; Буйя, Раджкумар; Пурреза, Хоссен; Эскичиоглу, Расит; Питер, Грэм; Соммерс, Фрэнк (10 января 2006 г.). Кластерные вычисления: высокая производительность, высокая доступность и высокая пропускная способность обработки в сети компьютеров . Бостон, Массачусетс: Спрингер. ISBN 978-0-387-40532-2 .
- ^ «Частота процессора» . www.cpu-world.com . Проверено 16 октября 2019 г.
- ^ КАРДОЗО, Жуан; Габриэль, Хосе; Педро, Диниз (15 июня 2017 г.). Встроенные вычисления для высокой производительности . Морган Кауфманн. ISBN 9780128041994 .
- ^ Армбруст, Майкл; Фокс, Армондо; Гриффит, Риан; Джозеф, Энтони; Кац, Рэнди; Конвински, Эндрю; Ли, Гунхо; Паттерсон, Дэвид; Рабкин, Ариэль (10 февраля 2009 г.). Над облаками: взгляд Беркли на облачные вычисления .
- ^ Jump up to: а б «Как работают облачные вычисления? | Блог Cloud Academy» . Облачная академия . 25 марта 2019 г. Проверено 22 октября 2019 г.
- ^ Jump up to: а б «Введение в кластерные вычисления — основы распределенных вычислений» . selkie.macalester.edu . Проверено 22 октября 2019 г.
- ^ «Что такое грид-вычисления — определение | Microsoft Azure» . azure.microsoft.com . Проверено 22 октября 2019 г.
- ^ Ахерфи, Хадиджа; Герндт, Майкл; Харруд, Хамид (01 января 2018 г.). «Мобильные облачные вычисления для разгрузки вычислений: проблемы и задачи» . Прикладная вычислительная техника и информатика . 14 (1): 1–16. дои : 10.1016/j.aci.2016.11.002 . ISSN 2210-8327 .
- ^ Анантанараянан, Ганеша; Бахл, Парамвир; Бодик, Питер; Чинталапуди, Кришна; Филиппос, Маттаи; Равиндранат, Ленин; Синха, Судипта (2017). «Видеоаналитика в реальном времени: потрясающее приложение для периферийных вычислений». Компьютер . 50 (10): 58–67. дои : 10.1109/mc.2017.3641638 . ISSN 0018-9162 . S2CID 206449115 .
- ^ Лин, Л.; Ляо, X.; Джин, Х.; Ли, П. (август 2019 г.). «Разгрузка вычислений в сторону периферийных вычислений». Труды IEEE . 107 (8): 1584–1607. дои : 10.1109/JPROC.2019.2922285 . S2CID 199017142 .
- ^ Ма, Х.; Чжао, Ю.; Чжан, Л.; Ван, Х.; Пэн, Л. (сентябрь 2013 г.). «Когда мобильные терминалы встречаются с облаком: разгрузка вычислений как мост». Сеть IEEE . 27 (5): 28–33. дои : 10.1109/MNET.2013.6616112 . S2CID 16674645 .
- ^ «Как работают видеокарты — ExtremeTech» . www.extremetech.com . Проверено 11 ноября 2019 г.