활성 메시지

Active message

활성 메시지(컴퓨팅 중)는 스스로 처리를 수행할 수 있는 메시징 객체다. 버퍼링과 관련된 소프트웨어 오버헤드를 제거하고 애플리케이션에게 네트워크 하드웨어에 대한 직접적인 사용자 수준의 액세스를 제공하여 네트워크 통신을 최적화하는 데 사용되는 경량 메시징 프로토콜이다. [1] [2] 이는 메시지가 처리 능력이 없는 수동적 실체인 기존의 컴퓨터 기반 메시징 시스템과 대비된다.[3]

분산 메모리 프로그래밍

활성 메시지는 현대 컴퓨터 상호 연결의 완전한 성능과 유연성을 이용하기 위해 원시적인 통신이다. 이들은 흔히 분산형 메모리 프로그래밍의 세 가지 주요 유형 중 하나로 분류되며, 나머지 두 유형은 데이터 병렬메시지 전달이다. 액티브 메시지(Active Messages)는 실제로 데이터를 병렬로 구현하거나 메시지를 효율적으로 전달하는 데 사용할 수 있는 하위 수준의 메커니즘이라는 견해다.

기본적인 생각은 각 메시지에는 메시지 도착 시 실행할 사용자 공간 핸들러의 주소나 색인이 포함된 헤더가 있으며, 메시지의 내용은 처리기에 인수로 전달된다는 것이다. 초기 활성 메시지 시스템은 네트워크를 통해 실제 원격 코드 주소를 통과했지만, 이 접근법은 메시지를 구성할 때 개시자가 원격 핸들러 기능의 주소를 알도록 요구했는데, 이는 SPMD 프로그래밍 모델의 맥락 안에서조차 상당히 제한적일 수 있다(일반적으로 주소 공간 균일성에 의존한다). 많은 현대적 시스템에서는 존재하지 않는다. 새로운 활성 메시지 인터페이스는 클라이언트가 정수 색인을 처리기 기능의 로컬 주소에 매핑하는 초기화 시에 소프트웨어에 테이블을 등록하도록 요구한다. 이러한 시스템에서 활성 메시지의 발신인은 원격 처리기 테이블에 색인을 제공하며, 활성 메시지가 도착하면 테이블을 사용하여 이를 매핑한다. 메시지를 처리하기 위해 호출되는 핸들러 주소로 인덱싱하십시오. [4]

활성 메시지의[citation needed] 다른 변형은 코드에 대한 포인터가 아니라 실제 코드 자체를 전달한다. 그 메시지는 전형적으로 일부 자료를 전달한다. 수신 엔드에 도착하면 더 많은 데이터를 획득하고 활성 메시지에서의 연산을 수행하여 수신 노드의 데이터뿐만 아니라 메시지의 데이터도 활용한다. 송신자와 수신자가 수신 노드에서 액세스할 수 있는 데이터에 대한 일부 개념을 공유해야 하지만, 이러한 형태의 활성 메시지는 SPMD로 제한되지 않는다.

마이크로 서비스, 조정, ESB 아키텍처를 위한 통합, 사용

활성 메시지에 대한 더 높은 수준의 구현은 또한 SparmESB 프로젝트에서 Sparm communications로 명명된다. 활성 메시지의 기본 모델은 새로운 개념으로 확장되며, 자바 스크립트는 활성 메시지의 코드를 표현하는 데 사용된다.

참조

  1. ^ 토르스텐 폰 아이킨, 데이비드 E. Culler, Seth Copen Goldstein, Claus Erik Schauser, "적극 메시지: 통합 커뮤니케이션과 계산을 위한 메커니즘", 1992년 5월, ACM에 관한 제 19회 연례 국제 심포지엄의 Procedures of Computer Architecture (ISCA'92), ACM.
  2. ^ 앨런 M. 메인워링과 데이비드 E. Culler, "Active Message Applications Programming Interface and Communication Subsystem Organization"(AM-2 사양), EECS Department, University of California, Berkeley Technical Report No. UCB/CSD-96-918, 1996년 10월.
  3. ^ "활성 메시지 시스템의 작동 의미", ACM Portal. 2009년 7월 20일 접속
  4. ^ 댄 보나체아와 폴 H. 하그로브. "GASNet 사양, v1.8.1." 로렌스 버클리 국립 실험실 기술 보고서 LBNL-2001064, 2017년 8월.

소스 및 외부 링크