アクティブメッセージ(コンピューティング)は、独自に処理を実行できるメッセージングオブジェクトです。これは、バッファリングに関連するソフトウェアオーバーヘッドを削除し、アプリケーションにネットワークハードウェアへの直接ユーザーレベルのアクセスを提供することで、遅延を減らすことに重点を置いてネットワーク通信を最適化するために使用される軽量メッセージングプロトコルです。 [1] [2]これは、メッセージが処理能力を持たない受動的なエンティティである従来のコンピュータベースのメッセージングシステム とは対照的です。[3]
分散メモリプログラミング
アクティブ メッセージは、最新のコンピュータ相互接続の完全なパフォーマンスと柔軟性を活用するための通信プリミティブです。アクティブ メッセージは、分散メモリ プログラミングの 3 つの主要なタイプの 1 つとして分類されることが多く、他の 2 つはデータ並列とメッセージ パッシングです。アクティブ メッセージは、実際にはデータ並列またはメッセージ パッシングを効率的に実装するために使用できる低レベルのメカニズムであるという見方があります。
基本的な考え方は、各メッセージに、メッセージの到着時に実行されるユーザー空間ハンドラーのアドレスまたはインデックスを含むヘッダーがあり、メッセージの内容がハンドラーに引数として渡されるというものです。初期のアクティブ メッセージ システムでは、実際のリモート コード アドレスがネットワーク経由で渡されていましたが、このアプローチでは、メッセージを作成するときにイニシエーターがリモート ハンドラー関数のアドレスを知っている必要があり、SPMDプログラミング モデルのコンテキスト内でも非常に制限される可能性があります (また、一般的に、多くの最新のシステムには存在しないアドレス空間の均一性に依存しています)。新しいアクティブ メッセージ インターフェイスでは、クライアントが初期化時にソフトウェアにテーブルを登録する必要があります。このテーブルは、整数インデックスをハンドラー関数のローカル アドレスにマップします。これらのシステムでは、アクティブ メッセージの送信者がリモート ハンドラー テーブルにインデックスを提供し、アクティブ メッセージが到着すると、テーブルを使用して、このインデックスを、メッセージを処理するために呼び出されるハンドラー アドレスにマップします。 [4]
アクティブ メッセージの他のバリエーション[引用が必要]は、コードへのポインタではなく、実際のコード自体を運びます。メッセージは通常、何らかのデータを運びます。受信側に到着すると、さらにデータが取得され、アクティブ メッセージ内の計算が実行されます。この計算では、メッセージ内のデータと受信ノード内のデータが利用されます。この形式のアクティブ メッセージングは SPMDに限定されませんが、送信元と受信側は、受信ノードでアクセスできるデータについていくつかの概念を共有する必要があります。
統合、マイクロサービスの使用、オーケストレーション、ESB アーキテクチャ
アクティブ メッセージのより高レベルの実装は、SwarmESB プロジェクトでは Swarm 通信とも呼ばれています。アクティブ メッセージの基本モデルは新しい概念で拡張され、アクティブ メッセージのコードは Java Script を使用して表現されます。
参考文献
- ^ Thorsten von Eicken、David E. Culler、Seth Copen Goldstein、Klaus Erik Schauser、「アクティブ メッセージ: 統合された通信と計算のメカニズム」、第 19 回コンピュータ アーキテクチャ国際シンポジウム (ISCA'92) の議事録、1992 年 5 月、ACM。
- ^ Alan M. Mainwaring および David E. Culler、「アクティブ メッセージ アプリケーション プログラミング インターフェイスおよび通信サブシステムの構成」(AM-2 仕様)、EECS 部門、カリフォルニア大学バークレー校技術レポート No. UCB/CSD-96-918、1996 年 10 月。
- ^ 「アクティブ メッセージ システムの操作的意味論」、ACM ポータル。2009 年 7 月 20 日にアクセス
- ^ Dan Bonachea および Paul H. Hargrove。「GASNet 仕様、v1.8.1」。ローレンス・バークレー国立研究所技術レポート LBNL-2001064、2017 年 8 月。
情報源と外部リンク
- 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 - UDP経由のアクティブ メッセージ (AM-2) ( TCP/IP プロトコル スタックの標準コンポーネント)
- AMMPI - MPI経由のアクティブ メッセージ (AM-2)
