Что такое распределенные вычисления?
Распределенные вычисления – это способ объединения нескольких компьютеров для решения общей проблемы. Он превращает компьютерную сеть в мощный единый компьютер, который предоставляет широкомасштабные ресурсы для решения сложных задач.
Например, распределенные вычисления могут шифровать большие объемы данных; решать физические или химические уравнения со многими переменными и выводить высококачественную трехмерную видеоанимацию. Распределенные системы, распределенное программирование и распределенные алгоритмы – это еще несколько терминов, относящихся к распределенным вычислениям.
Каковы преимущества распределенных вычислений?
Распределенные системы имеют множество преимуществ перед вычислениями на отдельных компьютерах. Ниже приведены некоторые примеры.
Возможности масштабирования
Распределенные системы могут расти с ростом рабочих нагрузок и требований. При необходимости вы можете добавлять в распределенные вычислительные сети новые узлы, то есть, дополнительные вычислительные устройства.
Доступность
Ваша распределенная вычислительная система не даст сбоя, если даст сбой один из компьютеров. Эта структура характеризуется отказоустойчивостью, поскольку она может продолжать работать, даже если даст сбой отдельный компьютер.
Согласованность
Компьютеры в распределенной системе совместно используют информацию и хранят дубликаты данных, но система автоматически управляет целостностью данных на всех различных компьютерах. Поэтому вы получаете преимущество в виде отказоустойчивости без нарушения согласованности данных.
Прозрачность
Распределенные вычислительные системы обеспечивают логическое разделение между пользователем и физическими устройствами. Вы можете взаимодействовать с системой, как будто это отдельный компьютер, не заботясь о настройке и конфигурации отдельных компьютеров. Вы можете использовать различные аппаратное и программное обеспечение, промежуточное программное обеспечение и операционные системы, которые будут совместно работать над тем, чтобы обеспечить бесперебойную работу системы.
Эффективность
Распределенные системы обеспечивают повышенную производительность и оптимальное использование ресурсов базового программного обеспечения. В результате вы можете управлять любой рабочей нагрузкой, не заботясь о сбоях экосистемы из-за всплесков объемов или недостаточного использования дорогостоящего оборудования.
Каковы примеры использования распределенных вычислений?
Распределенные архитектуры сегодня используются повсюду. Мобильные и интернет-приложения являются примерами распределенных вычислений, поскольку несколько компьютеров совместно работают над тем, чтобы предоставить вам правильную информацию. Однако при вертикальном масштабировании распределенных систем вверх они могут решать более сложные проблемы. Рассмотрим, как различные отрасли используют высокопроизводительные распределенные приложения.
Здравоохранение и медико‑биологические разработки
В сфере здравоохранения и медико‑биологических разработок распределенные вычисления используются для моделирования и имитации сложных биологических данных. Аналитика изображений, исследование медицинских препаратов и аналитика генной структуры стали быстрее благодаря распределенным системам. Ниже приведено несколько примеров.
- Ускорение проектирования медицинских препаратов на основе структуры путем визуализации молекулярных моделей в трех измерениях.
- Сокращение сроков обработки геномных данных для раннего обнаружения рака, муковисцидоза и болезни Альцгеймера.
- Разработка интеллектуальных систем, которые помогают докторам ставить диагнозы пациентам, обрабатывая крупные объемы сложных изображений, например МРТ, рентгеновских снимков и КТ.
Инженерные исследования
С помощью распределенных систем инженеры могут имитировать сложные физические и механические концепции. Они используют эти решения для улучшения дизайна продуктов, создания сложных структур и проектирования более быстрых транспортных средств. Ниже приведено несколько примеров.
- Вычислительная гидродинамика исследует поведение жидкостей и реализует эти концепции в конструкциях летательных аппаратов и гоночных автомобилей.
- Для машинного моделирования нужны инструменты имитации с расширенными вычислительными ресурсами, чтобы тестировать новинки в области производственного оборудования, электроники и потребительских товаров.
Финансовые сервисы
Компании в отрасли финансовых услуг используют распределенные системы для выполнения высокоскоростных экономических имитаций по оценке рисков портфелей, прогнозирования рыночных тенденций и поддержки принятия финансовых решений. Они могут создавать интернет-приложения, которые пользуются преимуществами распределенных систем для достижения следующих целей:
- предоставление персонализированных страховых взносов при низких затратах;
- использование распределенных баз данных для безопасной поддержки очень большого объема финансовых транзакций;
- аутентификация пользователей и защита клиентов от мошенничества.
Энергетика и экология
Компаниям из энергетической отрасли необходимо анализировать большие объемы данных для улучшения операций и перехода к устойчивому развитию и безопасным для климата решениям. Они используют распределенные системы для анализа крупных потоков данных, поступающих от множества датчиков и других интеллектуальных устройств. Ниже перечислены некоторые задачи, которые они могут выполнять:
- потоковая передача и консолидация сейсмических данных для структурного проектирования электростанций;
- мониторинг нефтяных скважин в режиме реального времени для активного управления рисками.
Какие существуют типы распределенной вычислительной архитектуры?
При распределенных вычислениях вы проектируете приложения, которые могут выполняться на нескольких компьютерах, а не только на одном. Это достигается за счет такого проектирования программного обеспечения, при котором различные компьютеры выполняют различные функции и связываются между собой с целью получения окончательного решения. Существует четыре основных типа распределенной архитектуры.
Клиент-серверная архитектура
Клиент-серверная архитектура – это самый распространенный способ организации распределенной системы. Компьютеры выполняют две роли: клиенты и серверы.
Клиенты
Количество информации и вычислительные возможности клиентов ограничены. При этом, они отправляют запросы серверам, которые управляют большей частью данных и других ресурсов. Вы можете отправлять запросы к клиентам, и те будут связываться с серверами от вашего имени.
Серверы
Серверы синхронизируют ресурсы и управляют доступом к ним. Они отвечают на запросы клиентов, отправляя данные или информацию о состоянии. Обычно один сервер может обрабатывать запросы от нескольких компьютеров.
Преимущества и ограничения
Преимуществами клиент-серверной архитектуры являются безопасность и простота текущего обслуживания. Вам нужно уделять основное внимание только защите серверов. Кроме того, любые изменения в системах баз данных требуют изменений только на сервере.
Ограничением клиент-серверной архитектуры является то, что серверы могут стать узким местом в связи, особенно когда несколько компьютеров отправляют запросы одновременно.
Трехуровневая архитектура
В трехуровневых распределенных системах клиентские компьютеры остаются на первом уровне доступа. С другой стороны, серверные компьютеры делятся еще на две категории.
Серверы приложений
Серверы приложений – это средний уровень связи. Они содержат логику приложений или основные функции, для выполнения которых предназначена распределенная система.
Серверы баз данных
Серверы баз данных – это третий уровень, на котором осуществляется хранение данных и управление ими. Они отвечают за получение данных и их целостность.
Благодаря разделению ответственности на сервере трехуровневая распределенная система сокращает количество узких мест в связи и повышает производительность распределенных вычислений.
N-уровневая архитектура
N-уровневые модели состоят из нескольких различных клиент-серверных систем, которые взаимодействуют между собой для решения одной и той же проблемы. Большинство современных распределенных систем используют n-уровневую архитектуру, в которой разные корпоративные приложения совместно работают за кулисами как одна система.
Пиринговая архитектура
Пиринговые распределенные системы возлагают на все компьютеры в сети одинаковые обязанности. Разделение на клиентские и серверные компьютеры отсутствует, и любой компьютер может выполнять все функции. Пиринговая архитектура стала популярной в сфере совместного использования контента, потоковой передачи файлов и сетях блокчейн.
Как работают распределенные вычисления?
В распределенных вычислениях компьютеры передают сообщения друг другу в архитектуре распределенных систем. Протоколы связи или правила создают зависимости между компонентами распределенной системы. Эта взаимосвязь называется взаимозависимостью. Существует два основных типа взаимозависимости.
Слабая взаимозависимость
При слабой взаимозависимости компоненты связаны слабо, и изменения в одном из них не влияют на другой. Например, между клиентом и сервером может быть слабая взаимосвязь по времени. Сообщения от клиента добавляются в очередь на сервере, и клиент может продолжать выполнять другие функции, пока сервер не ответит на его сообщение.
Сильная взаимозависимость
В высокопроизводительных распределенных системах часто используется сильная взаимозависимость. Быстрые локальные сети обычно охватывают несколько компьютеров, составляющих кластер. В кластерных вычислениях все компьютеры выполняют одну и ту же задачу. Центральные системы управления, называемые кластерным промежуточным программным обеспечением, управляют выполнением задач, планируют их и координируют связь между разными компьютерами.
Что такое параллельные вычисления?
Параллельные вычисления – это тип вычислений, в котором один или несколько компьютеров в сети проводят многие вычисления или выполняют многие процессы одновременно. Несмотря на то, что термины параллельные вычисления и распределенные вычисления часто используются как взаимозаменяемые, между ними есть некоторые различия.
Параллельные вычисления и распределенные вычисления
Параллельные вычисления – это форма распределенных вычислений с особо сильной взаимозависимостью. При параллельной обработке все процессоры имеют доступ к общей памяти для обмена информацией друг с другом. С другой стороны, при распределенных вычислениях каждый процессор пользуется собственной памятью (распределенной памятью). Процессоры используют для обмена информацией передачу сообщений.
Что такое сетевые распределенные вычисления?
В сетевых распределенных вычислениях географически распределенные компьютерные сети совместно работают над выполнением общих задач. Отличительной чертой распределенных сетей является то, что их можно сформировать из вычислительных ресурсов, принадлежащих нескольким лицам или организациям.
Сетевые распределенные вычисления и распределенные вычисления
Сетевые распределенные вычисления – это распределенные вычисления с высокой степенью масштабирования, в которых акцент сделан на производительности и координировании нескольких сетей. На внутреннем уровне каждая распределенная сеть работает как вычислительная система с сильной взаимозависимостью. Однако на внешнем уровне взаимозависимость между сетями слабее. Каждая распределенная сеть выполняет отдельные функции и сообщает результаты другим сетям.
Что такое высокопроизводительные вычисления AWS?
С помощью Высокопроизводительных вычислений AWS (HPC) вы можете ускорить внедрение инноваций благодаря высокой скорости сети и практически неограниченной инфраструктуре распределенных вычислений. Например, вы можете воспользоваться указанными ниже сервисами.
- Amazon Elastic Cloud Compute (EC2) для поддержки практически любой рабочей нагрузки за счет безопасного компьютерного пространства с возможностью изменения размера.
- Пакет AWS для масштабирования сотен тысяч вычислительных задач с целью их обработки различными вычислительными сервисами AWS.
- AWS ParallelCluster для быстрого создания сред высокопроизводительных вычислений и кластеров.
Начните работу с распределенными вычислениями в AWS, создав бесплатный аккаунт уже сегодня.
Распределенные вычисления AWS: дальнейшие шаги
Получите мгновенный доступ к уровню бесплатного пользования AWS.