Active message

In computing, an active message is a messaging object capable of performing processing on its own. This contrasts with traditional computer-based messaging systems in which messages are passive entities with no processing power.[1]

For example, an active message may send not only the data "5" but also the function that determines what to do with that 5 (such as multiply it by 2).

Active messages can be used to optimize network communications, such as reducing latency by removing software overheads associated with buffering and providing applications with direct user-level access to the network hardware.[2][3]

Distributed memory programming

Active messages are communications primitive for exploiting the full performance and flexibility of modern computer interconnects. They are often classified as one of the three main types of distributed memory programming, the other two being data parallel and message passing. The view is that Active Messages are actually a lower-level mechanism that can be used to implement data parallel or message passing efficiently.

The basic idea is that each message has a header containing the address or index of a userspace handler to be executed upon message arrival, with the contents of the message passed as an argument to the handler. Early active message systems passed the actual remote code address across the network, however this approach required the initiator to know the address of the remote handler function when composing a message, which can be quite limiting even within the context of a SPMD programming model (and generally relies upon address space uniformity which is absent in many modern systems). Newer active message interfaces require the client to register a table with the software at initialization time that maps an integer index to the local address of a handler function; in these systems the sender of an active message provides an index into the remote handler table, and upon arrival of the active message the table is used to map this index to the handler address that is invoked to handle the message. [4]

تتضمن بعض أنواع الرسائل النشطة الشفرة البرمجية نفسها، وليس مؤشرًا إليها. وعادةً ما تحمل الرسالة بعض البيانات. عند وصولها إلى الطرف المُستقبِل، تُستَحصَل المزيد من البيانات، ويُجرى الحساب الوارد في الرسالة النشطة، باستخدام البيانات الموجودة في الرسالة نفسها بالإضافة إلى البيانات الموجودة في العقدة المُستقبِلة. لا يقتصر هذا النوع من المراسلة النشطة على بروتوكول SPMD ، مع ضرورة أن يتشارك المُرسِل والمُستقبِل بعض المفاهيم حول البيانات التي يُمكن الوصول إليها في العقدة المُستقبِلة.

التكامل، والاستخدام في الخدمات المصغرة، والتنسيق، وبنية ناقل خدمة المؤسسة (ESB).

يُطلق على تطبيقٍ أكثر تطورًا للرسائل النشطة اسم "اتصال السرب" في مشروع SwarmESB. وقد تم توسيع النموذج الأساسي للرسائل النشطة بمفاهيم جديدة، واستُخدمت لغة جافا سكريبت لكتابة شيفرة هذه الرسائل.

انظر أيضاً

مراجع

  1. "الدلالات التشغيلية لنظام الرسائل النشط" ، بوابة ACM. تاريخ الوصول: 20 يوليو 2009
  2. ثورستن فون إيكن، ديفيد إي. كولر، سيث كوبن غولدشتاين، كلاوس إريك شواسر، " الرسائل النشطة: آلية للاتصال والحساب المتكاملين "، وقائع الندوة الدولية السنوية التاسعة عشرة حول هندسة الحاسوب (ISCA'92)، مايو 1992، ACM.
  3. آلان م. مينوارينغ وديفيد إي. كولر، "واجهة برمجة تطبيقات الرسائل النشطة وتنظيم النظام الفرعي للاتصالات" (مواصفات AM-2)، قسم الهندسة الكهربائية وعلوم الحاسوب، جامعة كاليفورنيا، بيركلي، التقرير الفني رقم UCB/CSD-96-918 ، أكتوبر 1996.
  4. دان بوناتشيا وبول هـ. هارجروف. "مواصفات GASNet، الإصدار 1.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