stringtranslate.com

Активное сообщение

Активное сообщениевычислительной технике ) — это объект обмена сообщениями, способный выполнять обработку самостоятельно. Это облегченный протокол обмена сообщениями, используемый для оптимизации сетевых коммуникаций с акцентом на сокращение задержек путем устранения программных издержек, связанных с буферизацией, и предоставления приложениям прямого доступа на уровне пользователя к сетевому оборудованию. [1] [2] Это контрастирует с традиционными компьютерными системами обмена сообщениями , в которых сообщения являются пассивными сущностями без вычислительной мощности. [3]

Программирование распределенной памяти

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

Основная идея заключается в том, что каждое сообщение имеет заголовок, содержащий адрес или индекс обработчика пользовательского пространства, который должен быть выполнен по прибытии сообщения, при этом содержимое сообщения передавалось обработчику в качестве аргумента. Ранние системы активных сообщений передавали фактический адрес удаленного кода по сети, однако этот подход требовал, чтобы инициатор знал адрес функции удаленного обработчика при составлении сообщения, что может быть довольно ограничивающим даже в контексте модели программирования SPMD (и, как правило, полагается на единообразие адресного пространства, которое отсутствует во многих современных системах). Более новые интерфейсы активных сообщений требуют, чтобы клиент регистрировал таблицу с программным обеспечением во время инициализации, которое сопоставляет целочисленный индекс с локальным адресом функции обработчика; в этих системах отправитель активного сообщения предоставляет индекс в таблицу удаленного обработчика, и по прибытии активного сообщения таблица используется для сопоставления этого индекса с адресом обработчика, который вызывается для обработки сообщения. [4]

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

Интеграция, использование для микросервисов, оркестровка, архитектура ESB

Реализация более высокого уровня для активных сообщений также называется Swarm communication в проекте SwarmESB. Базовая модель активных сообщений расширена новыми концепциями, а Java Script используется для выражения кода активных сообщений.

Ссылки

  1. ^ Торстен фон Эйкен, Дэвид Э. Каллер, Сет Копен Голдштейн, Клаус Эрик Шаузер, «Активные сообщения: механизм интегрированной коммуникации и вычислений», Труды 19-го ежегодного международного симпозиума по архитектуре компьютеров (ISCA'92), май 1992 г., ACM.
  2. ^ Алан М. Мэйнваринг и Дэвид Э. Каллер, «Программный интерфейс приложений активных сообщений и организация подсистемы связи» (спецификация AM-2), кафедра EECS, Калифорнийский университет, Технический отчет Беркли № UCB/CSD-96-918, октябрь 1996 г.
  3. ^ "Операционная семантика активной системы сообщений", ACM Portal. Доступ 20 июля 2009 г.
  4. ^ Дэн Боначеа и Пол Х. Харгроув. «Спецификация GASNet, v1.8.1». Технический отчет Национальной лаборатории Лоуренса в Беркли LBNL-2001064, август 2017 г.

Источники и внешние ссылки