Активное сообщение
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Активное сообщение (в вычислениях ) — это объект обмена сообщениями, способный выполнять обработку самостоятельно. Это облегченный протокол обмена сообщениями, используемый для оптимизации сетевых коммуникаций с упором на сокращение задержек за счет устранения накладных расходов программного обеспечения, связанных с буферизацией, и предоставления приложениям прямого доступа на уровне пользователя к сетевому оборудованию. [1] [2] Это контрастирует с традиционными компьютерными системами обмена сообщениями , в которых сообщения являются пассивными объектами без вычислительной мощности. [3]
Программирование распределенной памяти
[ редактировать ]Активные сообщения — это примитивные средства связи, позволяющие использовать полную производительность и гибкость современных компьютерных соединений. Их часто классифицируют как один из трех основных типов программирования с распределенной памятью, два других — параллелизация данных и передача сообщений . Считается, что активные сообщения на самом деле являются механизмом более низкого уровня, который можно использовать для эффективной реализации параллельного обмена данными или эффективной передачи сообщений.
Основная идея заключается в том, что каждое сообщение имеет заголовок, содержащий адрес или индекс обработчика пользовательского пространства , который будет выполняться по прибытии сообщения, а содержимое сообщения передается в качестве аргумента обработчику. Ранние системы активных сообщений передавали фактический адрес удаленного кода по сети, однако этот подход требовал, чтобы инициатор знал адрес функции удаленного обработчика при составлении сообщения, что может быть весьма ограничивающим фактором даже в контексте модели программирования SPMD (и обычно полагается на однородность адресного пространства, которая отсутствует во многих современных системах). Новые интерфейсы активных сообщений требуют, чтобы клиент зарегистрировал таблицу в программном обеспечении во время инициализации, которая сопоставляет целочисленный индекс с локальным адресом функции-обработчика; в этих системах отправитель активного сообщения предоставляет индекс в таблицу удаленных обработчиков, и по прибытии активного сообщения таблица используется для сопоставления этого индекса с адресом обработчика, который вызывается для обработки сообщения. [4]
Другие варианты активных сообщений [ нужна ссылка ] нести сам код, а не указатель на код. Сообщение обычно содержит некоторые данные. По прибытии на принимающую сторону собирается больше данных и выполняются вычисления в активном сообщении, используя данные в сообщении, а также данные в принимающем узле. Эта форма активного обмена сообщениями не ограничивается SPMD , хотя отправитель и получатель должны разделять некоторые представления о том, к каким данным можно получить доступ на принимающем узле.
Интеграция, использование микросервисов, оркестровка, архитектура ESB.
[ редактировать ]Реализация более высокого уровня для активных сообщений также называется Swarm communication в проекте SwarmESB. Базовая модель активных сообщений расширена новыми концепциями, а для выражения кода активных сообщений используется Java Script.
Ссылки
[ редактировать ]- ^ Торстен фон Эйкен, Дэвид Э. Каллер, Сет Копен Гольдштейн, Клаус Эрик Шоузер, « Активные сообщения: механизм интегрированной связи и вычислений », Труды 19-го ежегодного международного симпозиума по компьютерной архитектуре (ISCA'92), май 1992 г., АКМ.
- ^ Алан М. Мэйнваринг и Дэвид Э. Каллер, «Интерфейс программирования приложений активных сообщений и организация подсистемы связи» (спецификация AM-2), Департамент EECS, Калифорнийский университет, Беркли, технический отчет № UCB/CSD-96-918 , октябрь 1996.
- ^ «Операционная семантика активной системы сообщений» , Портал ACM. По состоянию на 20 июля 2009 г.
- ^ Дэн Боначеа и Пол Х. Харгроув. «Спецификация GASNet, v1.8.1» . Технический отчет Национальной лаборатории Лоуренса Беркли LBNL-2001064 , август 2017 г.
Источники и внешние ссылки
[ редактировать ]- https://web.archive.org/web/20070610055547/http://www.tc.cornell.edu/Services/Education/Topics/Parallel/Distributed/%2B6.3%2BActive%2BMessages.htm
- https://github.com/salboaie/SwarmESB/
- GASNet — уровень промежуточного программного обеспечения связи, включающий активные сообщения и удаленный доступ к памяти (RMA), реализованный на широком спектре сетевого оборудования.
- AMUDP — активные сообщения (AM-2) через UDP (стандартный компонент стека протоколов TCP/IP ).
- AMMPI — активные сообщения (AM-2) через MPI