JP6189898B2 - アクティブメッセージによるrmaapiのサポート - Google Patents
アクティブメッセージによるrmaapiのサポート Download PDFInfo
- Publication number
- JP6189898B2 JP6189898B2 JP2015148205A JP2015148205A JP6189898B2 JP 6189898 B2 JP6189898 B2 JP 6189898B2 JP 2015148205 A JP2015148205 A JP 2015148205A JP 2015148205 A JP2015148205 A JP 2015148205A JP 6189898 B2 JP6189898 B2 JP 6189898B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- remote
- read
- rma
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
付記1
リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
上記ローカルノードから上記リモートノードにデータが書き込まれるRMA書き込みを、
書き込まれるべきデータを上記ローカルノード上のソースバッファから読み出すステップと、
第1のアクティブメッセージ(AM)書き込み要求を上記ローカルノードから上記リモートノード上のAMハンドラに送信するステップであり、上記第1のAM書き込み要求は、書き込まれるべきデータと、該データが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含む、ステップと、
上記第1のAM書き込み要求を、上記リモートノード上の上記AMハンドラで、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱うステップと、
によって実行するステップ
を含む方法。
付記2
上記リモートノードから上記ローカルノードにAM書き込み応答を送信するステップであって、上記AM書き込み応答は、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示す、ステップと、
上記ローカルノード上のAMハンドラを用いて上記AM書き込み応答メッセージを処理するステップと、
をさらに含む付記1に記載の方法。
付記3
書き込まれるべき上記データを複数のパケットへと区分するステップと、
上記複数のパケットの各々について、
上記ローカルノード上の上記ソースバッファから、パケットに対応するパケットデータを読み出すステップと、
上記ローカルノードから上記リモートノード上の上記AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含むそれぞれのAM要求を送信するステップと、
上記それぞれのAM要求を、上記リモートノード上の上記AMハンドラで、上記それぞれのAM要求から上記パケットデータを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱うステップと、
をさらに含み、
上記第1のAM書き込み要求は、上記複数のパケットのデータの第1のパケットを転送するために使用されるAM書き込み要求に対応する、
付記1又は2に記載の方法。
付記4
上記パケットデータのすべてが上記リモートメモリアドレス空間に成功裏に書き込まれたことを検出するステップと、
上記リモートノードから上記ローカルノードに、上記パケットデータが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM応答を送信するステップと、
上記ローカルノード上のAMハンドラを用いて上記AM応答メッセージを処理するステップと、
をさらに含む付記3に記載の方法。
付記5
データが上記リモートノードから読み出され、かつ上記ローカルノードに転送されるRMA読み出しを、
上記リモートノード上の上記AMハンドラにAM読み出し要求を送信するステップであって、上記AM読み出し要求は、読み出されるべきデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して上記リモートアドレス空間から読み出されるべき上記データを取り出し、AM読み出し応答メッセージを介して上記ローカルノードに上記の取り出されたデータを送信するステップと、
上記AM読み出し応答を、上記ローカルノード上のAMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記ローカルノード上の宛先バッファに上記データを書き込むことによって扱うステップと、
によって実行するステップ
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記6
データが上記リモートノードから読み出され、かつ複数のパケットを使用して上記ローカルノードに転送されるRMA読み出しを実行するステップであって、上記複数のパケットの各々についてのデータが、
それぞれのAM読み出し要求を上記リモートノード上の上記AMハンドラに送信するステップであり、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して上記リモートアドレス空間から読み出されるべき上記パケットデータを取り出し、AM読み出し応答メッセージを介して上記ローカルノードに上記の取り出されたパケットデータを送信するステップと、
上記AM読み出し応答を、上記ローカルノード上のAMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記ローカルノード上の宛先バッファに上記パケットデータを書き込むことによって扱うステップと、
によって転送される、ステップ、
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記7
タグ付きメッセージングスキームを使用して上記第1のAM書き込み要求にタグ付きメッセージを用いるステップと、
上記リモートノード上の上記AMハンドラを用いて上記タグ付きメッセージを調べて、上記リモートノードが上記第1のAM書き込み要求の意図された受信者であることを照合するステップと、
をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記8
上記ローカルノードにおいて、上記リモートノードから送信される1又は複数のAM書き込み要求を使用してデータが書き込まれ得る上記リモートノード上の上記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップ、をさらに含む先行する付記のうちいずれか1つに記載の方法。
付記9
上記リモートノードに、上記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
上記第1のAM書き込み要求に上記アクセスキーを含めるステップと、
上記リモートノード上の上記AMハンドラを介して上記アクセスキーを調べて、上記第1のAM書き込み要求が許可されるかを検証するステップと、
をさらに含む付記8に記載の方法。
付記10
先行する付記のうちいずれか1つに記載の方法を実施するためにローカル及びリモートのノード上でそれぞれ実行されるように構成された第1の命令セット及び第2の命令セットを記憶した非一時的マシン可読媒体。
付記11
リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
上記ローカルノードから上記リモートノードにデータが書き込まれるRMA書き込みを、
上記ローカルノードから上記リモートノード上のAMハンドラに第1のアクティブメッセージ(AM)書き込み要求を送信するステップであり、上記第1のAM書き込み要求は、上記データが書き込まれるべき上記リモートノード上のリモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
書き込まれるべきデータを上記ローカルノード上のソースバッファから読み出し、上記データを上記リモートノードに送信するステップと、
上記リモートノードにより受信された上記データを、上記リモートメモリアドレス空間に書き込まれるべき上記データに上記第1のAM書き込み要求において識別される上記アドレス範囲を占有させるように処理するステップと、
によって実行するステップ
を含む方法。
付記12
複数のAM書き込み要求を受信するステップであって、各AM書き込み要求は、後に送信されるAM書き込み要求に関連付けられたデータのブロックが書き込まれるべき上記リモートノード上の上記リモートメモリアドレス空間におけるアドレス範囲を識別し、各AM書き込み要求は、関連付けられたデータの上記ブロックを識別するしるし(indicia)を含む、ステップと、
上記リモートノード上の上記AMハンドラを介して、上記リモートノード上のRMA書き込みキューに各AM書き込み要求をエンキューするステップと、
上記ローカルノードからデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、上記事前に受信されたAM書き込み要求を識別することがしるしを含む、ステップと、
上記RMA書き込みキューから上記AM書き込み要求をデキューするステップと、
各々のデキューされたAM書き込み要求を、AM書き込み要求に関連付けられた上記の受信されたデータのブロックが上記リモートメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
をさらに含む付記11に記載の方法。
付記13
データが上記リモートノードから読み出され、かつ上記ローカルノードに転送されるRMA読み出しを、
上記リモートノード上の上記AMハンドラにAM読み出し要求を送信するステップであって、上記AM読み出し要求は、読み出されるべきデータの上記リモートアドレス空間におけるアドレス範囲を識別する、ステップと、
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して、読み出されるべきデータの上記リモートアドレス空間における上記アドレス範囲を識別する上記AM読み出し要求に対応するRMA読み出し要求を生成するステップと、
上記リモートノード上で上記RMA読み出し要求を処理するステップであって、上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記リモートアドレス空間から読み出されるべき上記データが、上記リモートアドレス空間から取り出され、かつ上記ローカルノードに送信されることをもたらす、ステップと、
上記リモートノードから送信される上記の取り出されたデータを、上記ローカルノード上の宛先バッファに書き込むステップと、
によって実行するステップ、をさらに含む付記11又は12に記載の方法。
付記14
上記AM読み出し要求メッセージを受信することに応答して、上記リモートノード上の上記AMハンドラを介して、読み出されるべきデータの上記リモートアドレス空間における上記アドレス範囲を識別する上記AM読み出し要求に対応するRMA読み出し要求を生成し、上記リモートノード上のRMA読み出し要求キューにエンキューするステップと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューするステップと、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記リモートアドレス空間から読み出されるべき上記データを取り出し、上記の取り出されたデータを上記ローカルノードに送信するステップと、
をさらに含む付記13に記載の方法。
付記15
上記のデキューし、データ取り出しし、送信するオペレーションは、上記リモートノード上の上記AMハンドラとは別個である上記リモートノード上のRMA読み出し機能によって実行される、付記14に記載の方法。
付記16
上記ローカルノードにおいて、上記リモートノードから送信される1又は複数のAM書き込み要求を使用してデータが書き込まれ得る上記リモートノード上の上記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップ、をさらに含む付記11乃至15のうちいずれか1つに記載の方法。
付記17
上記リモートノードに、上記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
上記第1のAM書き込み要求に上記アクセスキーを含めるステップと、
上記リモートノード上の上記AMハンドラを介して上記アクセスキーを調べて、上記第1のAM書き込み要求が許可されるかを検証するステップと、
をさらに含む付記17に記載の方法。
付記18
付記11乃至17のうちいずれか1つに記載の方法を実施するためにローカル及びリモートのノード上でそれぞれ実行されるように構成された第1の命令セット及び第2の命令セットを記憶した非一時的マシン可読媒体。
付記19
ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、上記第1のAM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき上記メモリにおける上記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含み、
上記第1のAM書き込み要求を、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱い、
上記リモート装置に、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
を備えた装置。
付記20
上記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ上記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、上記第2のAM書き込み要求は、第2のデータが書き込まれるべき上記リモートメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含む、RMA書き込みモジュールと、
上記第2のデータを上記リモートメモリアドレス空間に成功裏に書き込むことに応じて上記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
をさらに備えた付記19に記載の装置。
付記21
ソースバッファ、をさらに備え、上記RMA書き込みモジュールは、
上記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
上記複数のパケットの各々について、
パケットに対応するパケットデータを上記ソースバッファから読み出し、
上記リモート装置上の書き込み要求AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモート装置上の上記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
ようにさらに構成される、付記20に記載の装置。
付記22
上記書き込み要求AMハンドラは、
上記リモート装置から複数のAM書き込み要求を受信することであって、上記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ上記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて上記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
上記複数のAM書き込み要求の各々についての上記パケットデータを抽出し、AM書き込み要求により識別される上記開始アドレスで始まる上記ローカルメモリアドレス空間に上記パケットデータを書き込み、
上記第3のデータの全体が上記ローカルメモリアドレス空間に書き込まれたことを検出し、
上記リモート装置に、上記第3のデータが上記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ようにさらに構成される、付記19乃至21のうちいずれか1つに記載の装置。
付記23
上記ローカルメモリにおける宛先バッファと、
読み出し応答AMハンドラと、
AM読み出し要求を生成し、上記リモート装置上の読み出し要求AMハンドラに送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置のデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
上記AM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記データを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記データを上記宛先バッファに書き込むことによって扱う
ように構成されたRMA読み出しモジュールと、
をさらに備えた付記19乃至22のうちいずれか1つに記載の装置。
付記24
上記RMA読み出しモジュールは、データが上記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、上記複数のパケットの各々についてのデータは、
それぞれのAM読み出し要求を上記リモート装置上の上記AM読み出し要求ハンドラに送信することであって、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
各々のそれぞれのAM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記パケットデータを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記パケットデータを上記宛先バッファに書き込むことによって扱う
ことによって遠隔的に(remotely)読み出される、付記19乃至23のうちいずれか1つに記載の装置。
付記25
上記リモート装置から、読み出されるべきデータを含むデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求において識別される上記アドレス範囲から上記データを取り出し、
上記リモート装置に、取り出された上記データを含むAM応答を送信する
ように構成された読み出し要求AMハンドラ
をさらに含む付記19乃至24のうちいずれか1つに記載の装置。
付記26
ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、上記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
RMA書き込み要求を生成し、上記RMA書き込み要求をRMA書き込みキューにエンキューする
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
上記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含み、
上記RMA書き込みキューから上記RMA書き込み要求をデキューし、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた上記の受信されたデータのブロックが上記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
ように構成されたRMA進行モジュールと、
を備えた装置。
付記27
上記メモリにおけるソースバッファと、
上記リモート装置にAM書き込み要求を送信することであって、上記AM書き込み要求は、上記データが書き込まれるべき上記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
書き込まれるべき上記データを上記ソースバッファから読み出し、
上記データを上記リモート装置に送信することであって、上記データは、上記AM書き込み要求を送信した後に送信され、上記データは、送信される上記データを上記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
ように構成されたRMA書き込みモジュールと、
をさらに備えた付記26に記載の装置。
付記28
RMA読み出し要求キューと、
上記リモート装置から、読み出されるべきデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求メッセージを受信することに応答して、読み出されるべきデータの上記ローカルアドレス空間における上記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
上記RMA読み出し要求キューに上記RMA読み出し要求をエンキューする
ように構成された読み出し要求AMハンドラと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューし、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記ローカルアドレス空間からデータを読み出し、
読み出された上記データを上記リモート装置に送信する
ように構成されたRMA進行モジュールと、
をさらに備えた付記26又は27に記載の装置。
付記29
上記メモリの一部分を占有する宛先バッファと、
上記リモート装置にAM読み出し要求を送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置上のメモリにおけるリモートアドレス空間におけるアドレス範囲を識別し、
上記リモート装置から、上記リモートアドレス空間から読み出されたデータを受信し、
上記の受信されたデータを上記宛先バッファに書き込む
ように構成されたRMA読み出しモジュールと、
をさらに備えた付記28に記載の装置。
付記30
ネットワークインターフェースとローカルアドレス空間を含むメモリとを含むノード上で実行されるように構成された命令を記憶した非一時的マシン可読媒体であって、上記命令は、
実行されると、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、上記第1のAM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、かつ第1のデータが書き込まれるべき上記メモリにおける上記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含み、
上記第1のAM書き込み要求を、上記第1のAM書き込み要求から上記データを抽出し、かつ上記開始アドレスで始まる上記リモートメモリアドレス空間におけるアドレス範囲に上記データを書き込むことによって扱い、
上記リモート装置に、上記データが上記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラ
を含む、非一時的マシン可読媒体。
付記31
上記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ上記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、上記第2のAM書き込み要求は、第2のデータが書き込まれるべき上記リモートメモリアドレス空間における開始アドレスに書き込まれるべき上記データを含む、RMA書き込みモジュールと、
上記第2のデータを上記リモートメモリアドレス空間に成功裏に書き込むことに応じて上記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
を含む命令をさらに含む、付記30に記載の非一時的マシン可読媒体。
付記32
上記ノードはソースバッファをさらに備え、上記RMA書き込みモジュールは、
上記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
上記複数のパケットの各々について、
上記ソースバッファから、パケットに対応するパケットデータを読み出し、
上記リモート装置上の書き込み要求AMハンドラに、上記パケットデータと該パケットデータが書き込まれるべき上記リモート装置上の上記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
ようにさらに構成される、付記31に記載の非一時的マシン可読媒体。
付記33
上記書き込み要求AMハンドラは、
上記リモート装置から複数のAM書き込み要求を受信することであって、上記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ上記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて上記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
上記複数のAM書き込み要求の各々について、パケットデータを抽出し、AM書き込み要求により識別される開始アドレスで始まる上記ローカルメモリアドレス空間に上記パケットデータを書き込み、
上記第3のデータの全体が上記ローカルメモリアドレス空間に書き込まれたことを検出し、
上記リモート装置に、上記第3のデータが上記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ようにさらに構成される、付記30乃至32のうちいずれか1つに記載の非一時的マシン可読媒体。
付記34
上記ノードは上記ローカルメモリにおける宛先バッファをさらに備え、上記命令は、
読み出し応答AMハンドラと、
実行されると、
AM読み出し要求を生成し、上記リモート装置上の読み出し要求AMハンドラに送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置のデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
上記AM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記データを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記データを抽出し、かつ上記データを上記宛先バッファに書き込むことによって扱う
ように構成されたRMA読み出しモジュールと、
をさらに含む、付記30乃至33のうちいずれか1つに記載の非一時的マシン可読媒体。
付記35
上記RMA読み出しモジュールは、データが上記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、上記複数のパケットの各々についてのデータは、
それぞれのAM読み出し要求を上記リモート装置上の上記AM読み出し要求ハンドラに送信することであって、上記AM読み出し要求は、読み出されるべきパケットデータの上記リモートアドレス空間におけるアドレス範囲を識別し、
各々のそれぞれのAM読み出し要求に応答して、上記リモート装置から、上記リモートアドレス空間から読み出された上記パケットデータを含むAM読み出し応答を受信し、
上記AM読み出し応答を、上記読み出し応答AMハンドラで、上記AM読み出し応答から上記パケットデータを抽出し、かつ上記パケットデータを上記宛先バッファに書き込むことによって扱う
ことによって遠隔的に読み出される、付記30乃至34のうちいずれか1つに記載の非一時的マシン可読媒体。
付記36
上記命令は、
上記リモート装置から、読み出されるべきデータを含むデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求において識別される上記アドレス範囲から上記データを取り出し、
上記リモート装置に、取り出された上記データを含むAM応答を送信する
ように構成された読み出し要求AMハンドラ
をさらに含む、付記30乃至35のうちいずれか1つに記載の非一時的マシン可読媒体。
付記37
ネットワークインターフェースとローカルアドレス空間を含むメモリとを含むノード上で実行されるように構成された命令を記憶した非一時的マシン可読媒体であって、上記命令は、
実行されると、
上記ネットワークインターフェースを介して、上記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、上記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、かつ上記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
RMA書き込み要求を生成し、上記RMA書き込み要求をRMA書き込みキューにエンキューする
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
実行されると、
上記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、かつ対応するRMA書き込み要求を識別することができるしるしを含み、
上記RMA書き込みキューから上記RMA書き込み要求をデキューし、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた上記の受信されたデータのブロックが上記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
ように構成されたRMA進行モジュールと、
を含む、非一時的マシン可読媒体。
付記38
上記ノードは上記メモリにおけるソースバッファをさらに備え、上記命令は、
実行されると、
上記リモート装置にAM書き込み要求を送信することであって、上記AM書き込み要求は、上記データが書き込まれるべき上記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
書き込まれるべき上記データを上記ソースバッファから読み出し、
上記データを上記リモート装置に送信することであって、上記データは、上記AM書き込み要求を送信した後に送信され、上記データは、送信される上記データを上記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
ように構成されたRMA書き込みモジュール
をさらに含む、付記37に記載の非一時的マシン可読媒体。
付記39
上記ノードはRMA読み出し要求キューをさらに備え、上記命令は、
実行されると、
上記リモート装置から、読み出されるべきデータの上記ローカルアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
上記AM読み出し要求メッセージを受信することに応答して、読み出されるべきデータの上記ローカルアドレス空間における上記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
上記RMA読み出し要求キューに上記RMA読み出し要求をエンキューする
ように構成された読み出し要求AMハンドラと、
上記RMA読み出し要求キューから上記RMA読み出し要求をデキューし、
上記RMA読み出し要求における上記アドレス範囲により定義されるとおりの上記ローカルアドレス空間からデータを読み出し、
読み出された上記データを上記リモート装置に送信する
ように構成されたRMA進行モジュールと、
をさらに含む、付記37又は38に記載の非一時的マシン可読媒体。
付記40
上記ノードは上記メモリの一部分を占有する宛先バッファをさらに備え、上記命令は、
実行されると、
上記リモート装置にAM読み出し要求を送信することであって、上記AM読み出し要求は、読み出されるべき上記リモート装置上のメモリにおけるリモートアドレス空間におけるアドレス範囲を識別し、
上記リモート装置から、上記リモートアドレス空間から読み出されたデータを受信し、
上記の受信されたデータを上記宛先バッファに書き込む
ように構成されたRMA読み出しモジュール
をさらに含む、付記39に記載の非一時的マシン可読媒体。
102、202、302 リモートノード
104、206、306 ソースバッファ
106、210、308 RMA書き込みモジュール
108、212 AM書き込み応答ハンドラ
110、214、310 AM書き込み要求ハンドラ
112、216、314 RMAアドレス空間
114、204、304 インターコネクト
116 ソースデータ
118、222、316 AM書き込み要求
122、226 AM書き込み応答
124、228、330 宛先バッファ
126、232、332 RMA読み出しモジュール
128、234 AM読み出し応答ハンドラ
130、236、336 AM読み出し要求ハンドラ
132、240、334 AM読み出し要求
134 リモートデータ
136、242 AM読み出し応答
208、218、230 スロット
220、241 パケット
312 RMA進行モジュール
324 RMA書き込み要求キュー
338 RMA読み出し要求キュー
400 ローカルノード
402 リモートノード
404 ネットワークリンク
406 アドレス範囲/空間
408 アクセスキー
410 キー公開メッセージ
412 AM書き込み又は読み出し要求メッセージ
416 アクセスエラーメッセージ
500 (ローカル)ノード
502 メインボード
504 プロセッサ
506 メモリ
516 メモリインターフェース
508 記憶装置
510 ネットワークインターフェース
518、520 PCIeインターフェース
522 DMAエンジン
566 AMハンドラ
558 RMAモジュール
554 リモートノード
Claims (25)
- リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
前記ローカルノードから前記リモートノードにデータが書き込まれるRMA書き込みを、
書き込まれるべきデータを前記ローカルノード上のソースバッファから読み出すステップと、
第1のアクティブメッセージ(AM)書き込み要求を前記ローカルノードから前記リモートノード上のAMハンドラに送信するステップであり、前記第1のAM書き込み要求は、書き込まれるべきデータと、該データが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含む、ステップと、
前記第1のAM書き込み要求を、前記リモートノード上の前記AMハンドラで、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記リモートメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱うステップと、
によって実行するステップ
を含み、
タグ付きメッセージングスキームを使用して前記第1のAM書き込み要求にタグ付きメッセージを用いるステップと、
前記リモートノード上の前記AMハンドラを用いて前記タグ付きメッセージを調べて、前記リモートノードが前記第1のAM書き込み要求の意図された受信者であることを照合するステップと、
をさらに含む方法。 - 前記リモートノードから前記ローカルノードにAM書き込み応答を送信するステップであって、前記AM書き込み応答は、前記データが前記リモートメモリアドレス空間に成功裏に書き込まれたことを示す、ステップと、
前記ローカルノード上のAMハンドラを用いて前記AM書き込み応答のメッセージを処理するステップと、
をさらに含む請求項1に記載の方法。 - 書き込まれるべき前記データを複数のパケットへと区分するステップと、
前記複数のパケットの各々について、
前記ローカルノード上の前記ソースバッファから、パケットに対応するパケットデータを読み出すステップと、
前記ローカルノードから前記リモートノード上の前記AMハンドラに、前記パケットデータと該パケットデータが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間における開始アドレスとを含むそれぞれのAM要求を送信するステップと、
前記それぞれのAM要求を、前記リモートノード上の前記AMハンドラで、前記それぞれのAM要求から前記パケットデータを抽出し、かつ前記開始アドレスで始まる前記リモートメモリアドレス空間におけるアドレス範囲に前記パケットデータを書き込むことによって扱うステップと、
をさらに含み、
前記第1のAM書き込み要求は、前記複数のパケットのデータの第1のパケットを転送するために使用されるAM書き込み要求に対応する、
請求項1又は2に記載の方法。 - 前記パケットデータのすべてが前記リモートメモリアドレス空間に成功裏に書き込まれたことを検出するステップと、
前記リモートノードから前記ローカルノードに、前記パケットデータが前記リモートメモリアドレス空間に成功裏に書き込まれたことを示すAM応答を送信するステップと、
前記ローカルノード上のAMハンドラを用いて前記AM応答のメッセージを処理するステップと、
をさらに含む請求項3に記載の方法。 - データが前記リモートノードから読み出され、かつ前記ローカルノードに転送されるRMA読み出しを、
前記リモートノード上の前記AMハンドラにAM読み出し要求を送信するステップであって、前記AM読み出し要求は、読み出されるべきデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して前記リモートメモリアドレス空間から読み出されるべき前記データを取り出し、AM読み出し応答のメッセージを介して前記ローカルノードに前記の取り出されたデータを送信するステップと、
前記AM読み出し応答を、前記ローカルノード上のAMハンドラで、前記AM読み出し応答から前記データを抽出し、かつ前記ローカルノード上の宛先バッファに前記データを書き込むことによって扱うステップと、
によって実行するステップ
をさらに含む請求項1乃至4のうちいずれか1項に記載の方法。 - データが前記リモートノードから読み出され、かつ複数のパケットを使用して前記ローカルノードに転送されるRMA読み出しを実行するステップであって、前記複数のパケットの各々についてのデータが、
それぞれのAM読み出し要求を前記リモートノード上の前記AMハンドラに送信するステップであり、前記AM読み出し要求は、読み出されるべきパケットデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して前記リモートメモリアドレス空間から読み出されるべき前記パケットデータを取り出し、AM読み出し応答のメッセージを介して前記ローカルノードに前記の取り出されたパケットデータを送信するステップと、
前記AM読み出し応答を、前記ローカルノード上のAMハンドラで、前記AM読み出し応答から前記パケットデータを抽出し、かつ前記ローカルノード上の宛先バッファに前記パケットデータを書き込むことによって扱うステップと、
によって転送される、ステップ
をさらに含む請求項1乃至5うちいずれか1項に記載の方法。 - 前記ローカルノードにおいて、前記リモートノードから送信される1以上のAM書き込み要求を使用してデータが書き込まれ得る前記リモートノード上の前記リモートメモリアドレス空間における少なくとも1つのアドレス範囲を登録するステップと、
前記リモートノードに、前記ローカルノードに登録された少なくとも1つのアドレス範囲に対応するアクセスキーを公開するステップと、
前記第1のAM書き込み要求に前記アクセスキーを含めるステップと、
前記リモートノード上の前記AMハンドラを介して前記アクセスキーを調べて、前記第1のAM書き込み要求が許可されるかを検証するステップと、
をさらに含む請求項1乃至6のうちいずれか1項に記載の方法。 - リモートノードとローカルノードとにおけるリモートメモリアクセス(RMA)データ転送を実行する方法であって、
前記ローカルノードから前記リモートノードにデータが書き込まれるRMA書き込みを、
前記ローカルノードから前記リモートノード上のAMハンドラに第1のアクティブメッセージ(AM)書き込み要求を送信するステップであり、前記第1のAM書き込み要求は、前記データが書き込まれるべき前記リモートノード上のリモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
書き込まれるべきデータを前記ローカルノード上のソースバッファから読み出し、前記データを前記リモートノードに送信するステップと、
前記リモートノードにより受信された前記データを、前記リモートメモリアドレス空間に書き込まれるべき前記データに前記第1のAM書き込み要求において識別される前記アドレス範囲を占有させるように処理するステップと、
によって実行するステップ
を含み、
複数のAM書き込み要求を受信するステップであって、各AM書き込み要求は、後に送信されるAM書き込み要求に関連付けられたデータのブロックが書き込まれるべき前記リモートノード上の前記リモートメモリアドレス空間におけるアドレス範囲を識別し、各AM書き込み要求は、関連付けられたデータの前記ブロックを識別するしるしを含む、ステップ
をさらに含む方法。 - 前記リモートノード上の前記AMハンドラを介して、前記リモートノード上のRMA書き込みキューに各AM書き込み要求をエンキューするステップと、
前記ローカルノードからデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、前記事前に受信されたAM書き込み要求を識別することができるしるしを含む、ステップと、
前記RMA書き込みキューから前記AM書き込み要求をデキューするステップと、
各々のデキューされたAM書き込み要求を、AM書き込み要求に関連付けられた前記の受信されたデータのブロックが前記リモートメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
をさらに含む請求項8に記載の方法。 - データが前記リモートノードから読み出され、かつ前記ローカルノードに転送されるRMA読み出しを、
前記リモートノード上の前記AMハンドラにAM読み出し要求を送信するステップであって、前記AM読み出し要求は、読み出されるべきデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別する、ステップと、
前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して、読み出されるべきデータの前記リモートメモリアドレス空間における前記アドレス範囲を識別する前記AM読み出し要求に対応するRMA読み出し要求を生成するステップと、
前記リモートノード上で前記RMA読み出し要求を処理するステップであって、前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記リモートメモリアドレス空間から読み出されるべき前記データが、前記リモートメモリアドレス空間から取り出され、かつ前記ローカルノードに送信されることをもたらす、ステップと、
前記リモートノードから送信される前記の取り出されたデータを、前記ローカルノード上の宛先バッファに書き込むステップと、
によって実行するステップ、をさらに含む請求項8又は9に記載の方法。 - 前記AM読み出し要求のメッセージを受信することに応答して、前記リモートノード上の前記AMハンドラを介して、読み出されるべきデータの前記リモートメモリアドレス空間における前記アドレス範囲を識別する前記AM読み出し要求に対応するRMA読み出し要求を生成し、前記リモートノード上のRMA読み出し要求キューにエンキューするステップと、
前記RMA読み出し要求キューから前記RMA読み出し要求をデキューするステップと、
前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記リモートメモリアドレス空間から読み出されるべき前記データを取り出し、前記の取り出されたデータを前記ローカルノードに送信するステップと、
をさらに含む請求項10に記載の方法。 - 前記のデキューし、データを取り出し、送信するオペレーションは、前記リモートノード上の前記AMハンドラとは別個である前記リモートノード上のRMA読み出し機能によって実行される、請求項11に記載の方法。
- ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のAM書き込み要求を受信することであって、前記第1のAM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき前記メモリにおける前記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき該データを含み、
前記第1のAM書き込み要求を、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記ローカルメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱い、
前記リモート装置に、前記データが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
を備え、
前記第1のAM書き込み要求は、タグ付きメッセージングスキームによるタグ付きメッセージを含み、
前記タグ付きメッセージは、前記リモート装置が前記第1のAM書き込み要求の意図された受信者であることを照合するように、前記リモート装置上のAMハンドラにより調べられる、
装置。 - 前記リモート装置上のメモリにおけるリモートメモリアドレス空間に対するRMA書き込みに対応する第2のAM書き込み要求が生成され、かつ前記リモート装置に送信されるAM書き込みオペレーションを実行するように構成されたRMA書き込みモジュールであって、前記第2のAM書き込み要求は、第2のデータが書き込まれるべき前記リモートメモリアドレス空間における開始アドレスに書き込まれるべき該第2のデータを含む、RMA書き込みモジュールと、
前記第2のデータを前記リモートメモリアドレス空間に成功裏に書き込むことに応じて前記リモート装置から送信されるAM書き込み応答を処理するように構成された書き込み応答AMハンドラと、
をさらに備えた請求項13に記載の装置。 - ソースバッファ、をさらに備え、前記RMA書き込みモジュールは、
前記リモートメモリアドレス空間に書き込まれるべき第3のデータを複数のパケットへと区分し、
前記複数のパケットの各々について、
パケットに対応するパケットデータを前記ソースバッファから読み出し、
前記リモート装置上の書き込み要求AMハンドラに、前記パケットデータと該パケットデータが書き込まれるべき前記リモート装置上の前記リモートメモリアドレス空間におけるそれぞれの開始アドレスとを含むそれぞれのAM書き込み要求を送信する
ようにさらに構成される、請求項14に記載の装置。 - 前記書き込み要求AMハンドラは、
前記リモート装置から複数のAM書き込み要求を受信することであって、前記複数のAM書き込み要求の各々は、複数のパケットへと区分され、かつ前記ローカルメモリアドレス空間におけるそれぞれの開始アドレスにおいて前記ローカルメモリアドレス空間に書き込まれるべき第3のデータの、リモート書き込みに対応するそれぞれのパケットデータを含み、
前記複数のAM書き込み要求の各々についての前記パケットデータを抽出し、AM書き込み要求により識別される前記開始アドレスで始まる前記ローカルメモリアドレス空間に前記パケットデータを書き込み、
前記第3のデータの全体が前記ローカルメモリアドレス空間に書き込まれたことを検出し、
前記リモート装置に、前記第3のデータが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信する
ようにさらに構成される、請求項13乃至15のうちいずれか1項に記載の装置。 - 前記ローカルメモリアドレス空間における宛先バッファと、
読み出し応答AMハンドラと、
AM読み出し要求を生成し、前記リモート装置上の読み出し要求AMハンドラに送信することであって、前記AM読み出し要求は、読み出されるべき前記リモート装置のデータのリモートメモリアドレス空間におけるアドレス範囲を識別し、
前記AM読み出し要求に応答して、前記リモート装置から、前記リモートメモリアドレス空間から読み出された前記データを含むAM読み出し応答を受信し、
前記AM読み出し応答を、前記読み出し応答AMハンドラで、前記AM読み出し応答から前記データを抽出し、かつ前記データを前記宛先バッファに書き込むことによって扱う
ように構成されたRMA読み出しモジュールと、
をさらに備えた請求項13乃至16のうちいずれか1項に記載の装置。 - 前記RMA読み出しモジュールは、データが前記リモート装置から読み出され、かつ複数のパケットを使用して転送されるRMA読み出しを実行するようにさらに構成され、前記複数のパケットの各々についてのデータは、
それぞれのAM読み出し要求を前記リモート装置上の前記読み出し要求AMハンドラに送信することであって、前記AM読み出し要求は、読み出されるべきパケットデータの前記リモートメモリアドレス空間におけるアドレス範囲を識別し、
各々のそれぞれのAM読み出し要求に応答して、前記リモート装置から、前記リモートメモリアドレス空間から読み出された前記パケットデータを含むAM読み出し応答を受信し、
前記AM読み出し応答を、前記読み出し応答AMハンドラで、前記AM読み出し応答から前記パケットデータを抽出し、かつ前記パケットデータを前記宛先バッファに書き込むことによって扱う
ことによって遠隔的に読み出される、請求項17に記載の装置。 - 前記リモート装置から、読み出されるべきデータを含むデータの前記ローカルメモリアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
前記AM読み出し要求において識別される前記アドレス範囲から前記データを取り出し、
前記リモート装置に、取り出された前記データを含むAM応答を送信する
ように構成された読み出し要求AMハンドラ
をさらに含む請求項13乃至18のうちいずれか1項に記載の装置。 - ネットワークインターフェースと、
ローカルメモリアドレス空間を含むメモリと、
前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のAM書き込み要求を受信することであって、各AM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、前記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含み、
RMA書き込み要求を生成し、前記RMA書き込み要求をRMA書き込みキューにエンキューする
ように構成された書き込み要求アクティブメッセージ(AM)ハンドラと、
前記リモート装置からデータの複数のブロックを受信することであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含み、
前記RMA書き込みキューから前記RMA書き込み要求をデキューし、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた前記の受信されたデータのブロックが前記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理する
ように構成されたRMA進行モジュールと、
を備えた装置。 - 前記メモリにおけるソースバッファと、
前記リモート装置にAM書き込み要求を送信することであって、前記AM書き込み要求は、前記データが書き込まれるべき前記リモート装置上のメモリにおけるリモートメモリアドレス空間におけるアドレス範囲を識別し、
書き込まれるべき前記データを前記ソースバッファから読み出し、
前記データを前記リモート装置に送信することであって、前記データは、前記AM書き込み要求を送信した後に送信され、前記データは、送信される前記データを前記AM書き込み要求とマッチさせるのに使用されるように構成されたしるしと共に送信される
ように構成されたRMA書き込みモジュールと、
をさらに備えた請求項20に記載の装置。 - RMA読み出し要求キューと、
前記リモート装置から、読み出されるべきデータの前記ローカルメモリアドレス空間におけるアドレス範囲を識別するAM読み出し要求を受信し、
前記AM読み出し要求のメッセージを受信することに応答して、読み出されるべきデータの前記ローカルメモリアドレス空間における前記アドレス範囲を識別する対応するRMA読み出し要求を生成し、
前記RMA読み出し要求キューに前記RMA読み出し要求をエンキューする
ように構成された読み出し要求AMハンドラと、
前記RMA読み出し要求キューから前記RMA読み出し要求をデキューし、
前記RMA読み出し要求における前記アドレス範囲により定義されるとおりの前記ローカルメモリアドレス空間からデータを読み出し、
読み出された前記データを前記リモート装置に送信する
ように構成されたRMA進行モジュールと、
をさらに備えた請求項20又は21に記載の装置。 - ネットワークインターフェースと、ローカルメモリアドレス空間を含むメモリと、を備えた装置に、
前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される第1のアクティブメッセージ(AM)書き込み要求を受信するステップであって、前記第1のAM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、第1のデータが書き込まれるべき前記メモリにおける前記ローカルメモリアドレス空間における開始アドレスに書き込まれるべき該データを含む、ステップと、
前記第1のAM書き込み要求を、前記第1のAM書き込み要求から前記データを抽出し、かつ前記開始アドレスで始まる前記ローカルメモリアドレス空間におけるアドレス範囲に前記データを書き込むことによって扱うステップと、
前記リモート装置に、前記データが前記ローカルメモリアドレス空間に成功裏に書き込まれたことを示すAM書き込み応答を送信するステップと、
を実行させ、
前記第1のAM書き込み要求は、タグ付きメッセージングスキームによるタグ付きメッセージを含み、
前記タグ付きメッセージは、前記リモート装置が前記第1のAM書き込み要求の意図された受信者であることを照合するように、前記リモート装置上のAMハンドラにより調べられる、
コンピュータプログラム。 - ネットワークインターフェースと、ローカルメモリアドレス空間を含むメモリと、を備えた装置に、
前記ネットワークインターフェースを介して、前記ネットワークインターフェースに結合された通信リンクを通じてリモート装置から送信される複数のアクティブメッセージ(AM)書き込み要求を受信するステップであって、各AM書き込み要求は、前記リモート装置により発行されるリモートメモリアクセス(RMA)書き込みに対応し、前記ローカルメモリアドレス空間に書き込まれるべきそれぞれのデータと該それぞれのデータの先頭が書き込まれるべき開始アドレスとを含む、ステップと、
RMA書き込み要求を生成し、前記RMA書き込み要求をRMA書き込みキューにエンキューするステップと、
前記リモート装置からデータの複数のブロックを受信するステップであって、データの各ブロックは、事前に受信されたAM書き込み要求に関連付けられ、対応するRMA書き込み要求を識別することができるしるしを含む、ステップと、
前記RMA書き込みキューから前記RMA書き込み要求をデキューするステップと、
各々のデキューされたRMA書き込み要求を、RMA書き込み要求に関連付けられた前記の受信されたデータのブロックが前記ローカルメモリアドレス空間においてどこに書き込まれるべきかを決定するように処理するステップと、
を実行させるコンピュータプログラム。 - 請求項23又は24に記載のコンピュータプログラムを記憶した非一時的マシン可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/475,337 | 2014-09-02 | ||
US14/475,337 US9632973B2 (en) | 2014-09-02 | 2014-09-02 | Supporting RMA API over active message |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016053946A JP2016053946A (ja) | 2016-04-14 |
JP6189898B2 true JP6189898B2 (ja) | 2017-08-30 |
Family
ID=54062991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015148205A Active JP6189898B2 (ja) | 2014-09-02 | 2015-07-28 | アクティブメッセージによるrmaapiのサポート |
Country Status (8)
Country | Link |
---|---|
US (1) | US9632973B2 (ja) |
JP (1) | JP6189898B2 (ja) |
KR (1) | KR101752964B1 (ja) |
CN (1) | CN105389120B (ja) |
DE (1) | DE102015112634A1 (ja) |
FR (1) | FR3025331A1 (ja) |
GB (1) | GB2531864B (ja) |
TW (1) | TWI582609B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448901B1 (en) * | 2015-12-15 | 2016-09-20 | International Business Machines Corporation | Remote direct memory access for high availability nodes using a coherent accelerator processor interface |
JP6725662B2 (ja) | 2016-07-28 | 2020-07-22 | 株式会社日立製作所 | 計算機システムおよび処理方法 |
US20180089044A1 (en) * | 2016-09-27 | 2018-03-29 | Francesc Guim Bernat | Technologies for providing network interface support for remote memory and storage failover protection |
US11763351B2 (en) * | 2017-03-29 | 2023-09-19 | Oklahoma Blood Institute | Fundraising platform |
CN110704343B (zh) * | 2019-09-10 | 2021-01-05 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
TWI761846B (zh) * | 2020-06-01 | 2022-04-21 | 鴻海精密工業股份有限公司 | 自動資料傳輸方法、裝置及存儲介質 |
WO2023044861A1 (en) * | 2021-09-26 | 2023-03-30 | Intel Corporation | Concept for providing access to remote memory |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448698A (en) | 1993-04-05 | 1995-09-05 | Hewlett-Packard Company | Inter-processor communication system in which messages are stored at locations specified by the sender |
JPH08180001A (ja) * | 1994-04-12 | 1996-07-12 | Mitsubishi Electric Corp | 通信方式及び通信方法及びネットワークインタフェース |
JP2736237B2 (ja) | 1995-03-06 | 1998-04-02 | 技術研究組合新情報処理開発機構 | 遠隔メモリアクセス制御装置 |
US6240444B1 (en) * | 1996-09-27 | 2001-05-29 | International Business Machines Corporation | Internet web page sharing |
US20050080869A1 (en) * | 2003-10-14 | 2005-04-14 | International Business Machines Corporation | Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer |
US7536468B2 (en) * | 2004-06-24 | 2009-05-19 | International Business Machines Corporation | Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol |
US7636813B2 (en) | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7694310B2 (en) | 2006-08-29 | 2010-04-06 | International Business Machines Corporation | Method for implementing MPI-2 one sided communication |
US7979645B2 (en) | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
US7925842B2 (en) | 2007-12-18 | 2011-04-12 | International Business Machines Corporation | Allocating a global shared memory |
US8452888B2 (en) | 2010-07-22 | 2013-05-28 | International Business Machines Corporation | Flow control for reliable message passing |
CN102306115B (zh) * | 2011-05-20 | 2014-01-08 | 华为数字技术(成都)有限公司 | 异步远程复制方法、***及设备 |
-
2014
- 2014-09-02 US US14/475,337 patent/US9632973B2/en active Active
-
2015
- 2015-07-24 FR FR1557115A patent/FR3025331A1/fr active Pending
- 2015-07-27 TW TW104124258A patent/TWI582609B/zh not_active IP Right Cessation
- 2015-07-28 JP JP2015148205A patent/JP6189898B2/ja active Active
- 2015-07-31 DE DE102015112634.6A patent/DE102015112634A1/de active Pending
- 2015-07-31 KR KR1020150108653A patent/KR101752964B1/ko active IP Right Grant
- 2015-07-31 CN CN201510463491.8A patent/CN105389120B/zh active Active
- 2015-07-31 GB GB1513562.7A patent/GB2531864B/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160062944A1 (en) | 2016-03-03 |
FR3025331A1 (ja) | 2016-03-04 |
KR20160027902A (ko) | 2016-03-10 |
DE102015112634A1 (de) | 2016-03-03 |
KR101752964B1 (ko) | 2017-07-03 |
CN105389120B (zh) | 2018-09-21 |
TWI582609B (zh) | 2017-05-11 |
GB201513562D0 (en) | 2015-09-16 |
US9632973B2 (en) | 2017-04-25 |
JP2016053946A (ja) | 2016-04-14 |
CN105389120A (zh) | 2016-03-09 |
GB2531864A (en) | 2016-05-04 |
GB2531864B (en) | 2019-04-24 |
TW201621699A (zh) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6189898B2 (ja) | アクティブメッセージによるrmaapiのサポート | |
US11770344B2 (en) | Reliable, out-of-order transmission of packets | |
US10917344B2 (en) | Connectionless reliable transport | |
US10673772B2 (en) | Connectionless transport service | |
US10788992B2 (en) | System and method for efficient access for remote storage devices | |
US20200314181A1 (en) | Communication with accelerator via RDMA-based network adapter | |
KR102023122B1 (ko) | 탄성 패브릭 어댑터 - 무접속의 신뢰할 수 있는 데이터그램 | |
US7937447B1 (en) | Communication between computer systems over an input/output (I/O) bus | |
US9411775B2 (en) | iWARP send with immediate data operations | |
CN109690510B (zh) | 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法 | |
US10880204B1 (en) | Low latency access for storage using multiple paths | |
US6775719B1 (en) | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network | |
US20020141424A1 (en) | Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism | |
WO2017000593A1 (zh) | 报文处理方法及装置 | |
US8694701B2 (en) | Recovering dropped instructions in a network interface controller | |
US20200272579A1 (en) | Rdma transport with hardware integration | |
US10154079B2 (en) | Pre-boot file transfer system | |
US10877911B1 (en) | Pattern generation using a direct memory access engine | |
US10255213B1 (en) | Adapter device for large address spaces | |
US7764676B1 (en) | Method and system for processing network information | |
US11405324B1 (en) | Packet serial number validation | |
US9936003B1 (en) | Method and system for transmitting information in a network | |
US8478909B1 (en) | Method and system for communication across multiple channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170502 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170803 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6189898 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |