FR 3025331 A1 20160304 FR 1557115 A 20150724 SUPPORT D'API DE RMA PAR MESSAGE ACTIF CONTEXTE Dans un système informatique avec une configuration de mémoire distribuée (par exemple, un cluster), chaque noeud de calcul a un accès direct à sa propre mémoire locale attachée. La mémoire attachée à d'autres noeuds est appelée mémoire distante. Habituellement, la mémoire distante n'est pas directement accessible et des mécanismes de transmission de messages sont utilisés pour communiquer entre les noeuds. Une interface d'accès à la mémoire distante (Remote Memory Access - RMA) est une interface logicielle qui donne l'impression que la mémoire distante est directement accessible. Il existe de nombreuses formes d'opérations RMA, mais en fin de compte, elles peuvent être résumées à deux opérations : la lecture et l'écriture. L'opération de lecture copie des données d'une plage d'adresses de mémoire distante dans un tampon local. L'opération d'écriture copie des données d'un tampon local dans une plage d'adresses de mémoire distante. Les opérations Remote Memory Access (RMA) existantes se divisent de manière générale en deux catégories. Les opérations correspondant à la première catégorie font usage de la capacité d'accès direct à la mémoire distante (Remote Direct Memory Access - RDMA) des matrices d'interconnexion sous-jacentes entre les noeuds d'ordinateurs. Les adaptateurs de contrôleur hôte (Host Controller Adaptors - HCA) InfiniBand (IB) tels que eux de Mellanox supportent les fonctions RDMA dans le matériel. La capacité est exposée aux applications via une interface logicielle appelée IB Verbs. Avec IB Verbs, pour effectuer une opération RMA, l'utilisateur crée une demande de travail et la poste dans une file d'attente de travaux. Le HCA traite ensuite la file d'attente et effectue le RDMA dans le matériel. L'approche utilisée par la seconde catégorie consiste à émuler des fonctions RMA par une interface de transmission de messages (message passing interface - MPI) normaux. Un exemple est la réalisation d'opérations unilatérales dans MPICH/MPICH2 (MPI haute performance). Cela se fait souvent par un processus de demande/réponse. Du fait de la nature asynchrone des opérations 3025331 2 RMA, un fil d'exécution séparé est utilisé habituellement pour assurer le traitement des demandes. Les opérations RMA existantes ont de nombreux inconvénients. Pour les opérations RDMA, un matériel spécialisé est nécessaire. Pour les opérations par 5 transmission de messages, le trafic supplémentaire relatif aux messages associés doit être transféré sur la matrice d'interconnexion, réduisant ainsi la bande passante efficace de la matrice. BRÈVE DESCRIPTION DES DESSINS 10 On appréciera mieux les aspects susmentionnés et nombre des avantages associés de cette invention à la lecture de la description détaillée ci-après, en lien avec les dessins annexés sur lesquels, sauf indication contraire, les numéros de référence identiques désignent des éléments identiques sur les différentes figures. La Figure la est un schéma illustrant une opération d'écriture RMA dans laquelle 15 un bloc de données est écrit dans l'espace d'adresses d'un noeud distant par le biais d'un gestionnaire de demandes d'écriture AM, selon une forme de réalisation ; la Figure lb est un schéma illustrant une opération de lecture RMA dans laquelle un bloc de données est lu dans l'espace d'adresses d'un noeud distant par le biais d'un gestionnaire de demandes de lecture AM, selon une forme de réalisation ; 20 la Figure 2a est un schéma illustrant une opération d'écriture RMA dans laquelle des données sont transférées via une pluralité de paquets à l'aide du schéma montré sur la Figure la, selon une forme de réalisation, la Figure 2b est un schéma illustrant une opération de lecture RMA dans laquelle des données sont transférées via une pluralité de paquets à l'aide du schéma montré 25 sur la Figure lb, selon une forme de réalisation, la Figure 3a est un schéma illustrant une opération d'écriture RMA par message marqué dans laquelle un bloc de données est écrit dans l'espace d'adresses d'un noeud distant à l'aide d'une demande AM suivie d'une opération d'envoi, selon une forme de réalisation ; 30 la Figure 3b est un schéma illustrant une opération de lecture RMA par message marqué dans laquelle un bloc de données est lu dans l'espace d'adresses d'un noeud 3025331 3 distant à l'aide d'un gestionnaire de demandes de lecture AM, d'un module de progression RMA et d'un module de lecture RMA, selon une forme de réalisation ; la Figure 4 est un chronogramme illustrant un échange de messages entre un noeud local et un noeud distant qui correspond à un échange de codes d'accès et une 5 opération d'enregistrement en mémoire ; et la Figure 5 est un schéma illustrant une architecture de noeud configurée pour faciliter des aspects des opérations des noeuds local et distant selon des formes de réalisation exposées ici. 10 DESCRIPTION DÉTAILLÉE Des formes de réalisation de procédés, d'appareils et de logiciels pour mettre en oeuvre une interface de programmation (application programming interface - API) de RMA par message actif (Active Message - AM) sont décrites ici. Dans la description suivante, de nombreux détails spécifiques sont décrits pour offrir une 15 compréhension approfondie des formes de réalisation exposées et illustrées ici. L'homme du métier comprendra cependant que l'invention peut être mise en oeuvre sans un ou plusieurs de ces détails spécifiques, ou avec d'autres procédés, composants, matériaux, etc. Dans d'autres cas, des structures, des matériaux ou des opérations bien connus ne sont pas représentés ou décrits en détail pour éviter 20 d'obscurcir certains aspects de l'invention. Par souci de clarté, certains composants représentés sur les Figures peuvent aussi être désignés par leur appellation sur les Figures plutôt que par un numéro de référence. De plus, des numéros de référence désignant un type de composant particulier (et non un composant particulier) peuvent être suivis de la mention 25 "(type)". On comprendra que la configuration de ces composants est la configuration type pour des composants similaires qui peuvent exister mais ne sont pas représentés sur les Figures par souci de simplicité et de clarté, ou d'autres composants similaires qui ne sont pas désignés par des numéros de référence séparés. Inversement, la mention "(type)" ne doit pas être interprétée comme 30 signifiant que le composant, l'élément, etc. est utilisé habituellement pour sa fonction, sa mise en oeuvre, son but, etc., exposé. 3025331 4 Parmi les aspects des formes de réalisation exposées ici, des techniques de message actif sont utilisées pour faciliter les opérations d'écriture et de lecture RMA dans lesquelles des données sont écrites ou lues dans la mémoire d'un noeud distant à l'aide du RMA. L'idée de base de l'AM est de permettre à un code 5 d'être(?) exécuté automatiquement du côté cible quand un message arrive. Ce code est appelé gestionnaire AM. Plusieurs gestionnaires AM peuvent être préenregistrés avec le mécanisme AM et un message AM peut faire référence à n'importe lequel d'entre eux en spécifiant un identifiant correspondant au gestionnaire AM souhaité. Un message AM peut être une demande ou une 10 réponse, les deux pouvant porter des données plus certaines informations de contrôle supplémentaires et pouvant provoquer l'exécution du gestionnaire spécifié. Une demande AM peut être émise n'importe où sauf à l'intérieur d'un gestionnaire AM, tandis qu'une réponse AM ne peut être émise qu'à l'intérieur d'un gestionnaire AM, et une réponse au maximum peut être émise pour chaque 15 demande AM. Parmi les aspects des formes de réalisation exposées ici, des gestionnaires de message actif sont exécutés automatiquement quand une demande ou une réponse AM correspondante atteint sa cible. Cela fournit le mécanisme de traitement asynchrone nécessaire pour les opérations RMA. Fondamentalement, une 20 opération d'écriture RMA peut comporter une demande AM qui transporte les données du tampon source et un gestionnaire AM qui copie les données à l'adresse cible. Une opération de lecture RMA peut comporter une demande AM qui transporte les informations de l'adresse cible, un gestionnaire AM qui renvoie les données via une réponse AM, et un autre gestionnaire AM qui copie les données 25 dans le tampon de destination. Les Figures la et lb illustrent des mécanismes d'écriture et de lecture AM pour transférer des blocs de données entre un noeud local 100 et un noeud distant 102, selon une forme de réalisation. Comme le montre la Figure la, le noud local 100 comprend un tampon source (src_buf) 104, un module d'écriture RMA 30 (rma_write()) 106 et un gestionnaire de réponses d'écriture AM 108. Le noeud distant 102 comprend un gestionnaire de réponses d'écriture AM 110 et un espace 3025331 5 d'adresses RMA 112. Le noeud local 100 est en communication avec le noeud distant 102 via une interconnexion 114. L'écriture RMA d'un bloc de données source 116 d'un tampon source 104 sur un espace d'adresses RMA 112 se passe comme suit. Les données source 116 sont 5 lues dans le rampon source 104 via un module d'écriture RMA 106, qui génère une demande d'écriture AM 118 qui est envoyée par l'interconnexion 114 au gestionnaire AM 110. La demande d'écriture AM 118 comprend les données source 116 ainsi que des informations sur la plage de mémoire distante sur laquelle les données source 116 doivent être écrites. Celle-ci comprennent l'adresse de 10 début (rma addr) dans l'espace d'adresses RMA 112 à laquelle le début des données 116 doit être écrit, et peuvent comprendre en option la taille (longueur), un code d'accès et/ou un marqueur de message. Le gestionnaire de demandes d'écriture AM du côté cible (gestionnaire de demandes d'écriture AM 110) copie ensuite les données source 116 dans l'espace d'adresses RMA 112 en commençant 15 à l'adresse rma addr par une opération de copie DMA ou mémoire 120. Dans une forme de réalisation, quand le gestionnaire de demandes d'écriture AM 110 a achevé la copie des données source 116 dans l'espace d'adresses RMA 112, une réponse d'écriture AM 122 facultative peut être renvoyée à l'initiateur (le noeud local 100) si un évènement d'achèvement est souhaité. Comme le montre la Figure, 20 la réponse d'écriture AM 122 est envoyée au gestionnaire de réponses d'écriture AM 108 qui est configuré pour traiter l'évènement d'achèvement. La Figure lb montre en outre des ressources et des AM employés par le noeud local 100 et le noeud distant 102 en connexion avec une opération de lecture RMA. Ceux-ci comprennent un tampon de destination (dest_buf) 124, un module de 25 lecture an RMA (rma_read()) 126, un gestionnaire de réponses de lecture AM 128 pour le noeud local 100 et un gestionnaire de demandes de lecture AM 130 pour le noeud distant 102. Dans une forme de réalisation, le gestionnaire de réponses d'écriture AM 108 et le gestionnaire de réponses de lecture AM 128 correspondent au même gestionnaire AM. De même, dans une forme de réalisation, le 30 gestionnaire de demandes d'écriture AM 110 et le gestionnaire de demandes de lecture AM 130 correspondent au même gestionnaire AM. 3025331 6 L'exécution d'une opération de lecture RMA se passe comme suit. Une API de lecture RMA 126 envoie à un gestionnaire de demandes de lecture AM 130 une demande de lecture AM 132 identifiant une plage d'adresses distante commençant par rma addr à laquelle les données à lire (p. ex. les données distantes 134) sont 5 stockées. Dans une forme de réalisation, la demande de lecture AM 132 comprend l'adresse de début (rma addr) et la longueur, et peut comprendre in code d'accès et/ou un marqueur de message. En réponse à la réception de la demande de lecture AM 132, le gestionnaire de demandes de lecture AM 130 envoie une copie des données distantes 134 du noeud distant 102 au noeud local 100 via une réponse de 10 lecture AM 136 qui est envoyée au gestionnaire de réponses de lecture AM 128. À la réception de la réponse de lecture AM 136, le gestionnaire de réponses de lecture AM 128 extrait la copie des données distantes 134 et effectue une copie DMA ou mémoire 138 pour écrire la copie des données distantes 134 dans le tampon de destination 124, achevant ainsi l'opération de lecture RMA. 15 En général, les mécanismes AM peuvent avoir des limitations quant à la quantité de données qui peuvent être transférées par un seul message AM. Pour surmonter ces limitations, une quantité de données supérieure à la limite pour un seul message AM peut être divisée en unités de données plus petites (p. ex. en paquets) et transférée en mode pipeline. Des exemples d'opérations de lecture RMA et 20 d'écriture RMA provoquant le transfert de données entre un noeud local 200 et un noeud distant 202 par une interconnexion 204 à l'aide de cette technique sont illustrés sur les Figures 2a et 2b. Comme le montre la Figure 2a, le noeud local 200 comprend un tampon source 206 doté de plusieurs logements 208, un module d'écriture RMA 210 et un gestionnaire 25 de réponses d'écriture AM 212. Le noeud distant 202 comprend un gestionnaire de demandes d'écriture AM 214 et un espace de mémoire RMA 216 divisé en plusieurs logements 218. L'écriture RMA en mode pipeline se passe comme suit. Des données stockées dans différents logements du tampon source 206 sont atteintes à l'aide du module 30 d'écriture RMA 210 et sont transférées sous forme d'une pluralité de paquets 220 à l'aide des demandes d'écriture AM 222. Comme indiqué plus haut, dans une forme 3025331 7 de réalisation, chaque demande d'écriture AM 222 comprend l'adresse de début (rma addr) et en option la longueur, un code d'accès et/ou un marqueur de message. À sa réception par le gestionnaire AM 214, chaque demande AM 222 est traitée, provoquant la génération de copies mémoire 224 qui écrivent des données 5 dans les plages d'adresses correspondantes en commençant par l'espace d'adresses rma addr 216. Dans des formes de réalisation utilisant des évènements d'achèvement, une ou plusieurs réponses d'écriture AM 226 sont renvoyées au gestionnaire AM 212. Par exemple, une réponse d'écriture AM peut être renvoyée pour chaque écriture de paquet achevée, ou une réponse d'écriture AM peut 10 confirmer l'achèvement de plusieurs écritures de paquets, par exemple en générant une réponse d'écriture AM 226 pour un transfert de données source donné quel que soit le nombre de paquets envoyés. Pour les besoins de l'illustration, la portion de données source de chaque paquet 220 est représentée comme étant stockée dans un logement 15 correspondant 208 dans le tampon source 206 et écrite dans un logement correspondant 218 dans l'espace d'adresses RMA 216 ; cependant, on comprendra que le tampon source 206 et/ou l'espace d'adresses RMA 216 n'ont pas besoin d'être divisés en une multitude de logements, et peuvent de manière générale être configurés comme un ou plusieurs espaces d'adresses dans lesquels des données 20 peuvent être stockées. De plus, la taille de chaque paquet 220 peut être identique ou différentes tailles peuvent être utilisées. Par exemple, dans une forme de réalisation, les paquets utilisent une unité de transfert maximum (maximum transfer unit - MTU) applicable au protocole de transport sous-jacent utilisé par l'interconnexion 204 (on notera que le dernier paquet peut avoir une taille 25 inférieure à la MTU). En même temps, les données contenues dans les paquets doivent être écrites dans l'espace d'adresses RMA 216 de manière à reproduire le bloc de données source qui doit être transféré avec les multiples paquets. Dans une forme de réalisation, les données des paquets sont écrites dans l'ordre, tandis que dans d'autres formes de réalisation, les écritures dans le désordre sont autorisées 30 dans la mesure où, une fois le transfert achevé, le bloc de données écrites comprend une reproduction du bloc de données source. 3025331 8 Comme le montre la Figure 2b, le noeud local 200 comprend en outre un tampon de destination 228 doté de plusieurs logements 230, un module de lecture RMA 232 et un gestionnaire de réponses de lecture AM 234. Le noeud distant 202 comprend en outre un gestionnaire de demandes de lecture AM 236. Comme avec 5 l'écriture MA multi-paquet, les données sont transférées à l'aide du module de lecture RMA 232 avec de multiples paquets. Chaque transfert de paquet est similaire au transfert de bloc de données pour la lecture RMA de la Figure lb, et se passe comme suit. Un module de lecture RMA 232 envoie une demande de lecture AM 240 destinée à être traitée par un gestionnaire de demandes de lecture 10 AM 236. Chaque demande de lecture AM 240 identifie une plage d'adresses distante commençant par rma_addr sur laquelle les données distantes à lire sont stockées. Comme indiqué plus haut, dans une forme de réalisation, la demande de lecture AM 240 comprend l'adresse de début (rma addr), la longueur et un code d'accès et/ou un marqueur de message facultatifs. 15 En réponse à la réception de chaque demande de lecture AM 240, le gestionnaire de demandes de lecture AM 236 envoie une copie d'une portion des données distantes comprenant un paquet 241 du noeud distant 202 au noeud locale 200 à l'aide d'une réponse de lecture AM 242 qui est adressée au gestionnaire de réponses de lecture AM 234. À la réception de chaque réponse de lecture AM 242, 20 le gestionnaire de réponses de lecture AM 234 extrait la copie des données distantes dans le paquet 241 et effectue une copie DMA ou mémoire 244 pour écrire la copie des données distantes transférées par le paquet 241 dans un logement 230 correspondant dans le tampon de destination 228, achevant ainsi l'opération de lecture RMA du paquet. Comme avec l'opération de lecture multi- 25 paquet représentée sur la Figure 2a et décrite plus haut, l'utilisation de logements pour le tampon de destination 228 et l'espace d'adresses RMA 216 est indiquée à titre purement illustratif, la taille des paquets pouvant varier dans certaines formes de réalisation. La taille des paquets peut être un facteur limitant de la bande passante maximum 30 possible avec une exécution en mode pipeline. Cependant, la performance peut être accrue pour les gros transferts de données en utilisant un mécanisme de 3025331 9 transmission de messages marqués si un tel mécanisme est disponible. La transmission des messages marqués est similaire à la transmission des messages normaux en ce sens qu'elles sont toutes les deux effectuées en envoyant d'un côté et en recevant de l'autre côté. Cependant, la transmission des messages marqués 5 attache un marqueur à chaque message de sorte que le récepteur peut choisir le message à recevoir. Ceci transforme en fait un canal de communication unique en une multitude de canaux. Dans une forme de réalisation, le marqueur est utilisé pour identifier différentes opérations RMA pour s'assurer de la correspondance un à un entre les opérations d'émission et de réception appariées. 10 Des exemples d'opérations de lecture et d'écriture utilisant des messages marqués sont représentés sur les Figures 3a et 3b. Comme le montre l'opération d'écriture de messages marqués de la Figure 3a, un bloc de données source est transféré d'un noeud local 300 à un noeud distant 302 via une interconnexion 304. De manière plus précise, le noeud local 300 comprend un tampon source 306, dans lequel les 15 données source sont stockées, et un module d'écriture RMA 308, tandis que le noeud distant 302 comprend un gestionnaire de demandes d'écriture AM 310, un module de progression RMA 312 et un espace d'adresses RMA 314. L'opération d'écriture de messages marqués se passe comme suit. L'opération d'écriture RMA comprend une demande d'écriture AM 316 suivie d'une opération 20 d'envoi 318. La demande d'écriture AM 316 porte uniquement les informations concernant la plage d'adresses distante, sans charge utile de données ; au contraire, les données d'envoi 320 sont transférées avec l'opération d'envoi suivante 318. À la réception de la demande d'écriture AM 316, le gestionnaire AM 310 génère une demande d'écriture RAM correspondante et place la demande d'écriture RMA, par 25 une opération de mise en file d'attente 322, dans une file d'attente RMA 324. Quand la demande d'écriture RMA mise en file d'attente est ensuite traitée par le module de progression RMA 312 après une opération de retrait de file d'attente 326, une opération de réception 328 est émise avec la plage d'adresses distante fournie par la demande d'écriture AM 316 comme tampon de réception 30 dans l'espace d'adresses RMA 314. Cette opération de réception doit coïncider avec l'envoi 320 posté du côté initiateur (autrement dit, le noeud local 300) et 3025331 10 placer les données source dans la plage d'adresses distante prévue dans l'espace d'adresses RMA 314. De manière générale, l'envoi des demandes d'écriture AM et les envois des données correspondantes peuvent être asynchrones, bien que la demande d'écriture AM doive de préférence précéder l'envoi des données 5 associées. Dans une forme de réalisation, l'opération de réception 328 peut stocker temporairement les blocs de données d'envoi 320 avant qu'elles soient écrites dans l'espace d'adresses RMA 314. Comme le montre la Figure 3b, le noeud local 300 comprend en outre un tampon de destination 330 et un module de lecture RMA 332 qui sont configurés pour 10 faciliter une opération de lecture de messages marqués comme suit. Comme avec l'opération d'écriture de messages marqués, une lecture RMA consiste en une opération de réception suivie par une demande de lecture AM et le gestionnaire de demandes de lecture AM provoque l'émission d'une opération d'envoi du côté cible. La file d'attente du côté cible est nécessaire parce que les opérations de 15 transmission de messages ne peuvent normalement pas être émises à l'intérieur d'un gestionnaire AM. Comme le montre la Figure 3b, le module de lecture RMA 332 émet une demande de lecture AM 334 qui est adressée à et reçue par un gestionnaire de demandes de lecture AM 336 sur le noeud distant 302. Le gestionnaire de demandes de lecture 20 AM 336 génère une demande de lecture RMA correspondante et la met dans une file d'attente de demandes de lecture RMA 338, tandis qu'un bloc d'envoi 340 dans le module de progression RMA 312 sort les demandes de lecture de la file d'attente de demandes de lecture RMA 338, récupère les données correspondantes de l'espace d'adresses RMA 314 et envoie les données par une opération d'envoi 342 à 25 une opération de réception 344 dans le module de lecture RMA 332. L'opération de réception 344 écrit ensuite les données dans le tampon de destination 330, achevant l'opération de lecture à distance. Selon l'approche utilisée, l'espace ou les espaces d'adresses mémoire utilisés pour les opérations d'écriture et de lecture RMA selon les formes de réalisation 30 susmentionnées peuvent ou non nécessiter un enregistrement à l'avance. Par exemple, certaines formes de réalisation utilisent PSM (Performance Scaled 3025331 11 Messaging) qui ne nécessite pas d'enregistrement de mémoire. PSM définit une API conçue spécialement pour HPC. Il définit une API de messagerie marquée qui gère des capacités de haut niveau et peut supporter efficacement la mise en oeuvre de la norme Message Passing Interface (MPI). Entretemps, la mise en oeuvre 5 interne de PSM peut porter sur des détails d'interconnexion spécifiques relatifs aux stratégies de mouvement des données et aux fonctions de mise au point et fonctions avancées telles que la qualité de service (Quality of Service - QoS), la routine dispersive, la résilience, etc. La fonction de message actif est également fournie à titre expérimental. 10 PSM est conçu pour être mis en oeuvre comme bibliothèque d'espaces utilisateur. Les détails pour effectuer des transferts de données RMA à l'aide de PSM sont donnés dans les versions du manuel de programmation de PSM publiées par QLogic, le développeur de PSM, ou dans divers documents relatifs à PSM publiés par la OpenFabrics Alliance. PSM est compris dans OFED (OpenFabrics 15 Enterprise Distribution) à partir de la version 1.5.2, et est équivalent à IB Verbs. Bien que destinée à être utilisée dans InfiniBand, dans des formes de réalisation utilisant PSM ici, des fonctionnalités similaires à PSM peuvent être utilisés pour des matériels différents d'InfiniBand tels que des adaptateurs Ethernet Network. Comme indiqué ci-dessus, PSM ne nécessite pas d'enregistrement en mémoire. En 20 option, un mécanisme léger d'enregistrement en mémoire peut être utilisé pour assurer la validation de l'accès. Les considérations de mise en oeuvre peuvent comprendre la structure de contrôle de la région de mémoire à laquelle il faut accéder, telle qu'un espace d'adresses contigu ou une liste de plages d'adresses séparées. Dans une forme de réalisation, l'adresse de la structure de contrôle peut 25 être utilisée comme code d'accès. La Figure 4 montre un chronogramme de fonctionnement et de messagerie exécuté par un noeud local 400 et un noeud distant 402 connectés par une liaison de réseau 404. Bien qu'elle soit décrite comme une connexion directe, on comprendra que la liaison de réseau 404 peut traverser un ou plusieurs éléments de réseau 30 supplémentaires tels qu'un commutateur ou autre. Le chronogramme commence avec l'enregistrement par le noeud local 400 d'une ou plusieurs plages 3025331 12 d'adresses 406 dans un ou plusieurs espaces d'adresses dans la mémoire locale du noeud local 400. Le noeud local 400 publie ensuite des codes d'accès 408 via des messages de publication de codes 410 qui sont envoyés à un ou plusieurs noeuds distants tels que le noeud distant 402. Dans une forme de réalisation, le code 5 d'accès 408 est encodé pour identifier la/les plage(s) d'adresses enregistrée(s)/l'espace ou les espaces enregistré(s) par le noeud local 400. Ensuite, le code d'accès 408 est utilisé pour la validation des demandes d'écriture RMA et de lecture RMA émises par le noeud distant 402 pour accéder à la mémoire dans la/les plage(s) d'adresses /l'espace ou les espaces enregistré(s) par le 10 noeud local 400. Comme le montre la partie basse de la Figure 4, un message 412 correspondant à une demande d'écriture AM ou une demande de lecture AM est envoyé par le noeud distant 402 au noeud local 400. Le message 412 comprend le code d'accès 408. À la réception, l'écriture AM ou la lecture AM est validée par le noeud local 400 à l'aide du code d'accès 408. Cette opération de validation permet 15 aussi de valider la plage d'adresses spécifiée par l'adresse de début et la taille explicite ou détectée de la demande à vérifier qu'il s'agit de la/des plage(s) d'adresses/de l'espace ou des espaces enregistré(s). Si la validation est réussie, l'accès à la mémoire enregistrée est autorisé ; sinon, il ne l'est pas. Dans une forme de réalisation, un message d'erreur d'accès 416 est renvoyé au noeud distant 402 si 20 sa demande d'écriture AM ou de lecture AM échoue à la validation. La Figure 5 est un schéma d'un exemple d'appareil configuré pour être installé comme noeud local 500 qui peut être utilisé pour mettre en oeuvre des aspects des formes de réalisation exposées ici. (On comprendra que la notion de noeud "local" ou "distant" est du point de vue du noeud, et que les opérations et fonctionnalités 25 décrites ici peuvent être mises en oeuvre par un noeud unique fonctionnant en mode local ou distant dans le contexte des opérations d'écriture ou de lecture RMA.) Dans une forme de réalisation, un noeud 500 comprend une lame de serveur ou un module de serveur configuré pour être installé dans un châssis de serveur. La lame/le module de serveur comprend une carte-mère 502 sur laquelle divers 30 composants sont montés, dont un processeur 504, une mémoire 506, une unité de stockage 508 et une interface de réseau 510. La carte-mère 502 comprend 3025331 13 généralement un ou plusieurs connecteurs pour recevoir l'alimentation électrique du châssis du serveur et pour communiquer avec d'autres composants dans le châssis. Par exemple, une architecture de serveur lame ou de module ordinaire utilise un fond de panier ou autre dispositif similaire avec plusieurs connecteurs, 5 dans lequel des connecteurs homologues de lames ou de modules de serveur correspondants sont installés. Le processeur 504 comprend une CPU 512 possédant un ou plusieurs coeurs. La CPU et/ou les coeurs sont couplés à une interconnexion 514 qui est représentative d'une ou plusieurs interconnexions implantées dans le processeur (par souci de 10 simplicité, une seule interconnexion est montrée). L'interconnexion 514 est aussi couplée à une interface de mémoire (I/F) 516 et une interface PCIe (Peripheral Component Interconnect Express) 518. L'interface mémoire 516 est couplée à la mémoire 506, tandis que l'interface PCIe 518 met en communication le processeur 504 avec divers dispositifs d'entrée/sortie (Input/Output - I/O), dont 15 l'unité de stockage 508 et interface de réseau 510. De manière générale, l'unité de stockage 508 est représentative d'un ou plusieurs dispositifs de stockage non volatiles tels que, sans limitation, un disque magnétique ou optique, un disque à puces (SSD), une puce ou un module à mémoire flash, etc. L'interface de réseau 510 est représentative de divers types d'interfaces de réseau 20 qui peuvent être implantées dans un noeud de serveur, tel qu'un adaptateur de réseau Ethernet ou un NIC. L'interface de réseau 510 comprend une interface PCIe 520, un moteur d'accès direct à la mémoire (Direct Memory Access - DMA) 522, un tampon d'émission 524, un tampon de réception 526, un module MAC 530 et un moteur de traitement de paquets ou une unité de traitement réseau 25 (Network Processor Unit - NPU) 532. L'interface de réseau 510 comprend en outre un circuit PHY 534 comprenant la circuiterie et la logique pour implanter une couche physique Ethernet. Une couche de réconciliation 536 en option est aussi représentée. Le circuit PHY 534 comprend un jeu de sous-couches PHY 538a-d, un 30 sérialiseur/dé-sérialiseur (SERDES) 540, un port d'émission 542 avec un tampon d'émission 544 et un ou plusieurs émetteurs 546, et un port de réception 548 avec 3025331 14 un tampon de réception 550 et un ou plusieurs récepteurs 552. Le noeud 500 est en outre représenté comme étant en communication avec un noeud distant 554 possédant un port de réception 556 et un port d'émission 558 via une liaison câblée ou optique 560. Selon le PHY Ethernet PHY particulier qui est implanté, 5 différentes combinaisons de sous-couches PHY peuvent être utilisées, ainsi que différentes configurations d'émetteurs et de récepteurs. Par exemple, un PHY de 10 GE utilise une circuiterie PHY différente d'un PHY d 40 GE ou 100 GE. Divers composants logiciels sont exécutés sur un ou plusieurs coeurs de la CPU 512 pour mettre en oeuvre des aspects logiciels des formes de réalisation tels 10 qu'ils sont décrits ci-dessus à propos des Figures la, lb, 2a, 2b, 3a et 3b. Les exemples de composants logiciels représentés sur la Figure 5 comprennent un système d'exploitation hôte 562, des applications 564 et des instructions logicielles pour mettre en oeuvre divers gestionnaires AM 566 et modules RMA 568. Tout ou partie des composants logiciels sont généralement stockés sur le noeud, comme le 15 montre l'unité de stockage 508. De plus, dans certaines formes de réalisation, un ou plusieurs des composants peuvent être téléchargés via un réseau et enregistrés dans la mémoire 506 et/ou l'unité de stockage 508. Pendant le fonctionnement du noeud 500, des parties du système d'exploitation hôte 562 seront chargées dans la mémoire 506, avec une ou plusieurs 20 applications 564 qui sont exécutées dans l'espace utilisateur du système d'exploitation (Operation System - OS). Les gestionnaires AM 566 et les modules RMA 558 peuvent généralement être installés avec un pilote d'OS ou autre, ou peuvent être installés comme un composant logiciel exécuté dans l'espace utilisateur de l'OS. Dans certaines formes de réalisation, tout ou partie des 25 gestionnaires AM 566 et/ou des modules RMA 558 peuvent être installés comme un logiciel intégré qui est exécuté sur un ou plusieurs éléments de traitement implantés dans l'interface de réseau 510 tels qu'un moteur de traitement de paquets/une NPU 532. Dans une autre option, tout ou partie des opérations des gestionnaires AM et/ou des modules RMA peuvent être mises en oeuvre via une ou 30 plusieurs machines virtuelles hébergées sur le noeud 502 (non représenté). Dans la forme de réalisation illustrée sur la Figure 5, le module MAC 530 est 3025331 15 représenté comme une partie de l'interface de réseau 510 qui comprend un composant matériel. La logique pour mettre en oeuvre diverses opérations supportées par l'interface de réseau 510 peut être installée via une logique intégrée et/ou un logiciel intégré tournant sur le moteur de traitement de paquets/la 5 NPU 532 ou un ou plusieurs autres éléments de traitement. Par exemple, une logique intégrée peut être utilisée pour préparer des paquets de couche supérieure pour les transférer vers l'extérieur depuis le port d'émission 542. Cela comprend l'encapsulation des paquets de couche supérieure (p. ex., TCP/IP, UDP, autres protocoles, etc.) dans des paquets Ethernet, puis le tramage des paquets Ethernet, 10 les paquets Ethernet étant utilisés pour générer un flux de trames Ethernet. En général, les opérations de traitement des paquets effectuées par le moteur de traitement de paquets/la NPU 532 peuvent être mises en oeuvre par une logique intégrée et/ou un logiciel intégré. Le traitement des paquets est mis en oeuvre pour gérer l'envoi de données à l'intérieur de l'interface de réseau 510 et entre l'interface 15 de réseau 510 et la mémoire 506. Ceci comprend l'utilisation du moteur DMA 522 qui est configuré pour envoyer des données du tampon de réception 526 à la mémoire 506 à l'aide d'opérations d'écriture DMA, de sorte que les données sont envoyées via les interfaces PCIe 520 et 518 à la mémoire 506 d'une manière qui n'implique pas la CPU 512. Dans certaines formes de réalisation, le tampon 20 d'émission 524 et le tampon de réception 526 comprennent un espace d'adresses à entrées/sorties "mappées" en mémoire (Memory-Mapped IO - MMIO) qui est configuré pour faciliter les transferts de données DMA entre ces tampons et la mémoire 506 à l'aide de techniques bien connues dans la technique de mise en réseau. 25 Aucune, tout ou partie des opérations de couche MAC peuvent être mises en oeuvre dans des logiciels tournant sur le processeur hôte 504. Dans une forme de réalisation utilisant une architecture MAC fractionnée, les opérations d'encapsulage et de décapsulage des paquets Ethernet sont mises en oeuvre dans des logiciels, tandis que le tramage et le détramage Ethernet sont mis en oeuvre par 30 le matériel (p. ex. via des logiques intégrées ou des logiciels intégrés tournant sur le moteur de traitement de paquets/la NPU 532 sur l'interface de réseau 510). 3025331 16 Les opérations d'écriture RMA et les systèmes RIVIA utilisant des demandes AM, des réponses AM et des gestionnaires AM associés offrent des avantages par rapport aux techniques RA existantes. Par exemple, du fait que ce système peuvent être mis en oeuvre via des logiciels tournant sur un hôte, les transferts de données 5 RMA qui nécessitaient auparavant du matériel configuré spécialement (p. ex. des HCA InfiniBand) peuvent être étendus pour être utilisés avec d'autres protocoles tels qu'Ethernet, mais sans limitation. Ces systèmes peuvent être combinés avec des techniques existantes, en utilisant par exemple PSM ou des API de messagerie marquées pour augmenter encore leur fonctionnalité et leur performance. 10 D'autres aspects de l'objet décrit ici sont présentés dans les clauses numérotées suivantes : 1. Procédé pour effectuer des transferts de données par accès à la mémoire distante (Remote Memory Access - RMA) entre un noeud distant et un noeud local, ce procédé comprenant : 15 l'exécution d'une écriture RMA dans laquelle des données sont écrites du noeud local sur le noeud distant en lisant les données à écrire dans un tampon source sur le noeud local ; en envoyant une première demande d'écriture de message actif (Active Message AM) du noeud local à un gestionnaire AM sur le noeud distant, cette première 20 demande d'écriture AM contenant les données à écrire et une adresse de début dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données doivent être écrites ; et en traitant la première demande d'écriture AM avec le gestionnaire AM sur le noeud distant en extrayant les données de la première demande d'écriture AM et en 25 écrivant ces données dans une plage d'adresses dans l'espace d'adresses de mémoire distante commençant à l'adresse de début. 2. Procédé selon la clause 1, comprenant en outre : l'envoi d'une réponse d'écriture AM du noeud distant au noeud local, cette réponse d'écriture AM indiquant que les données ont été écrites avec succès dans l'espace 30 d'adresses de la mémoire distante ; et l'utilisation d'un gestionnaire AM sur le noeud local pour traiter le message de 3025331 17 réponse d'écriture AM. 3. Procédé selon la clause 1 ou 2, comprenant en outre : la division des données à écrire dans une pluralité de paquets ; et pour chacun de la pluralité de paquets : 5 la lecture des données en paquet correspondant à ce paquet du tampon source sur le noeud local ; l'envoi d'une demande AM correspondante du noeud local au gestionnaire AM sur le noeud distant contenant les données du paquet et une adresse de début dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données 10 du paquet doivent être écrites ; et le traitement de la demande AM correspondante avec le gestionnaire AM sur le noeud distant en extrayant les données du paquet de la demande AM correspondante et en écrivant ces données sur une plage d'adresses dans l'espace d'adresses de mémoire distante commençant par l'adresse de début, 15 la première demande d'écriture AM correspondant à une demande d'écriture AM utilisée pour transférer un premier paquet de données de la pluralité de paquets. 4. Procédé selon la clause 3, comprenant en outre : la détection du fait que toutes les données en paquet ont été écrites avec succès dans l'espace d'adresses de mémoire distante ; 20 l'envoi d'une réponse AM du noeud distant au noeud local indiquant que les données en paquet ont été écrites avec succès dans l'espace d'adresses de mémoire distante ; et l'utilisation d'un gestionnaire AM sur le noeud local pour traiter le message de réponse AM. 25 5. Procédé selon l'une quelconque des clauses précédentes, comprenant en outre : l'exécution d'une opération de lecture RMA dans laquelle les données sont lues dans le noeud distant et transférées vers le noeud local en envoyant une demande de lecture AM au gestionnaire AM sur le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses 30 distant de données à lire ; en récupérant, en réponse à la réception du message de demande de lecture AM, 3025331 18 les données à lire dans l'espace d'adresses distant via le gestionnaire AM sur le noeud distant et en envoyant les données récupérées au noeud local via un message de réponse de lecture AM ; et en traitant la réponse de lecture AM avec un gestionnaire AM sur le noeud local en 5 extrayant les données de la réponse d'écriture AM et en écrivant ces données dans un tampon de destination sur le noeud local. 6. Procédé selon l'une quelconque des clauses précédentes, comprenant en outre : l'exécution d'une opération de lecture RMA dans laquelle les données sont lues dans le noeud distant et transférées vers le noeud local à l'aide d'une pluralité de 10 paquets, les données pour chacun de la pluralité de paquets étant transférées en envoyant une demande de lecture AM correspondante au gestionnaire AM sur le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant des données en paquet à lire ; en récupérant, en réponse à la réception du message de demande de lecture AM, 15 les données en paquet à lire dans l'espace d'adresses distant via le gestionnaire AM sur le noeud distant et en envoyant les données en paquet récupérées au noeud local via un message de réponse de lecture AM ; et en traitant la réponse de lecture AM avec un gestionnaire AM sur le noeud local en extrayant les données en paquet de la réponse de lecture AM et en écrivant les 20 données en paquet dans un tampon de destination sur le noeud local. 7. Procédé selon l'une quelconque des clauses précédentes, comprenant en outre : l'utilisation d'un message marqué pour la première demande d'écriture AM à l'aide d'un système de messages marqués, et l'utilisation du gestionnaire AM sur le noeud distant pour inspecter le message 25 marqué pour vérifier que le noeud distant est le destinataire prévu de la première demande d'écriture AM. 8. Procédé selon l'une quelconque des clauses précédentes, comprenant en outre : l'enregistrement, sur le noeud local, d'au moins une plage d'adresses dans l'espace d'adresses de mémoire distante sur le noeud distant dans laquelle des données 30 peuvent être écrites à l'aide d'une ou plusieurs demandes d'écriture AM envoyées par le noeud distant. 3025331 19 9. Procédé selon la clause 8, comprenant en outre : la publication d'un code d'accès au noeud distant correspondant à au moins une plage d'adresses enregistrée avec le noeud local ; l'inclusion du code d'accès dans la première demande d'écriture AM ; et 5 l'inspection du code d'accès par le gestionnaire AM sur le noeud distant pour valider le fait que la première demande d'écriture AM est autorisée. 10. Support non transitoire lisible par machine ayant des premier et second jeux d'instructions stockés sur lui et configurés pour être exécutés respectivement sur un noeud local et un noeud distant pour mettre en oeuvre le procédé selon l'une 10 quelconque des clauses précédentes. 11. Procédé pour effectuer des transferts de données par accès à la mémoire distante (RMA) entre un noeud distant et un noeud local, ce procédé comprenant : l'exécution d'une écriture RMA dans laquelle des données sont écrites du noeud local sur le noeud distant 15 en envoyant une première demande d'écriture de message actif (AM) du noeud local à un gestionnaire AM sur le noeud distant, cette première demande d'écriture AM identifiant une plage d'adresses dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données doivent être écrites ; en lisant les données à écrire dans un tampon source sur le noeud local et en 20 envoyant les données au noeud distant ; et en traitant les données qui sont reçues par le noeud distant de sorte que les données qui doivent être écrites dans l'espace d'adresses de mémoire distante occupent la plage d'adresses identifiée dans la première demande d'écriture AM. 12. Procédé selon la clause 11, comprenant en outre : 25 la réception d'une pluralité de demandes d'écriture AM, chaque demande d'écriture AM identifiant une plage d'adresses dans l'espace d'adresses de mémoire distante sur le noeud distant sur laquelle un bloc de données associé avec la demande d'écriture AM qui doit ensuite être envoyée doit être écrit, chaque demande d'écriture AM comprenant des indices identifiant le bloc de données associées ; 30 la mise en file d'attente, à l'aide du gestionnaire AM sur le noeud distant, de chaque demande d'écriture AM dans une file d'attente d'écriture RMA sur le noeud distant ; 3025331 20 la réception d'une pluralité de blocs de données du noeud local, chaque bloc de données étant associé avec une demande d'écriture AM reçue précédemment et contenant des indices à l'aide desquels la demande d'écriture AM reçue précédemment peut être identifiée ; 5 le retrait des demandes d'écriture AM de la file d'attente d'écriture RMA ; et le traitement de chaque demande d'écriture AM retirée de la file d'attente pour déterminer si le bloc de données associé avec la demande d'écriture AM qui a été reçu doit être écrit dans l'espace d'adresses de mémoire distante. 13. Procédé selon la clause 11 ou 12, comprenant en outre l'exécution d'une lecture 10 RMA dans laquelle des données sont lues dans le noeud distant et transférées vers le noeud local, en envoyant une demande de lecture AM au gestionnaire AM sur le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant des données à lire ; 15 en générant, en réponse à la réception du message de demande de lecture AM, via le gestionnaire AM sur le noeud distant, une demande de lecture RMA correspondant à la demande de lecture AM identifiant la plage d'adresses dans l'espace d'adresses distant des données à lire ; en traitant la demande de lecture RMA sur le noeud distant de sorte que les données 20 sont lues dans l'espace d'adresses distant comme il est défini par la plage d'adresses dans la demande de lecture RMA récupérée dans l'espace d'adresses distant et envoyée au noeud local ; et en écrivant les données récupérées qui sont envoyées du noeud distant au tampon de destination sur le noeud local. 25 14. Procédé selon la clause 13, comprenant en outre : en réponse à la réception du message de demande de lecture AM, la génération et la mise en file d'attente, via le gestionnaire AM sur le noeud distant, d'une demande de lecture RMA correspondant à la demande de lecture AM dans une file d'attente de demandes de lecture RMA sur le noeud distant identifiant la plage d'adresses 30 dans l'espace d'adresses distant des données à lire ; le retrait de la demande de lecture RMA de la file d'attente de demandes de lecture 3025331 21 RMA ; et la récupération de données à lire dans l'espace d'adresses distant tel qu'il est défini par la plage d'adresses dans la demande de lecture RMA et l'envoi des données récupérées au noeud local. 5 15. Procédé selon la clause 14, dans lequel les opérations de retrait de file d'attente, de récupération des données et d'envoi sont effectuées par une fonction de lecture RMA sur le noeud distant qui est séparée du gestionnaire AM sur le noeud distant. 16. Procédé selon l'une quelconque des clauses 11 à 15, comprenant en outre l'enregistrement, sur le noeud local, d'au moins une plage d'adresses dans l'espace 10 d'adresses de mémoire distante sur le noeud distant, dans laquelle des données peuvent être écrites à l'aide d'une ou plusieurs demandes d'écriture AM envoyées depuis le noeud distant. 17. Procédé selon la clause 16, comprenant en outre : l'envoi d'un code d'accès au noeud distant, correspondant à au moins une plage 15 d'adresses enregistrée avec le noeud local ; l'inclusion du code d'accès dans la première demande d'écriture AM ; et l'inspection du code d'accès à l'aide du gestionnaire AM sur le noeud distant pour valider le fait que la première demande d'écriture AM est autorisée. 18. Support non transitoire lisible par machine ayant des premier et second jeux 20 d'instructions stockés sur lui et configurés pour être exécutés respectivement sur un noeud local et un noeud distant pour mettre en oeuvre le procédé selon l'une quelconque des clauses 11 à 17. 19. Appareil comprenant : une interface de réseau ; 25 de la mémoire, dont un espace d'adresses de mémoire locale ; un gestionnaire de demandes d'écriture par message actif (AM), configuré pour recevoir, via l'interface de réseau, une première demande d'écriture AM envoyée par un appareil distant sur une ligne de communication couplée à l'interface de réseau, la première demande d'écriture AM correspondant à une écriture par accès 30 à la mémoire distante (RMA) émise par l'appareil distant et contenant des premières données à écrire à une adresse de début dans l'espace d'adresses de 3025331 22 mémoire locale, dans la mémoire dans laquelle les données doivent être écrites ; traiter la première demande d'écriture AM en extrayant les données de la première demande d'écriture AM et en écrivant les données dans une plage d'adresses dans l'espace d'adresses de mémoire distante commençant à l'adresse de début ; et 5 envoyer une réponse d'écriture AM à l'appareil distant, indiquant que les données ont été écrites avec succès dans l'espace d'adresses de mémoire distante. 20. Appareil selon la clause 19, comprenant en outre : un module d'écriture RMA configuré pour effectuer une opération d'écriture AM dans laquelle une seconde demande d'écriture AM correspondant à une écriture 10 RMA sur un espace d'adresses de mémoire distante dans la mémoire de l'appareil distant est générée et envoyée à l'appareil distant, la seconde demande d'écriture AM contenant des deuxièmes données à écrire à une adresse de début dans l'espace d'adresses de mémoire distante dans lequel les données doivent être écrites ; et un gestionnaire AM de réponses d'écriture, configuré pour traiter une réponse 15 d'écriture AM envoyée par l'appareil distant après la réussite de l'écriture des deuxièmes données dans l'espace d'adresses de mémoire distante. 21. Appareil selon la clause 20, comprenant en outre un tampon source, et dans lequel le module d'écriture RMA est en outre configuré pour : diviser des troisièmes données à écrire dans l'espace d'adresses de mémoire 20 distante en une pluralité de paquets ; pour chacun de la pluralité de paquets, en lisant les données en paquet correspondant au paquet du tampon source ; et en envoyant une demande d'écriture AM correspondante à un gestionnaire AM de demandes d'écriture sur l'appareil distant contenant les données en paquet et une 25 adresse de début correspondante dans l'espace d'adresses de mémoire distante sur l'appareil distant dans lequel les données en paquet doivent être écrites. 22. Appareil selon l'une quelconque des clauses 19 à 21, dans lequel le gestionnaire AM de demandes d'écriture est en outre configuré pour : recevoir une pluralité de demandes d'écriture AM de l'appareil distant, chacune de 30 la pluralité de demandes d'écriture AM contenant des données en paquet correspondant à une écriture à distance de troisièmes données qui sont divisées en 3025331 23 une pluralité de paquets et doivent être écrites dans un espace d'adresses de mémoire locale, à une adresse de début correspondante dans l'espace d'adresses de mémoire locale ; extraire les données en paquet pour chacune de la pluralité de demandes d'écriture 5 AM et écrire les données en paquet dans l'espace d'adresses de mémoire locale commençant à l'adresse de début identifiée par cette demande d'écriture AM ; détecter que la totalité des troisièmes données a été écrite dans l'espace d'adresses de mémoire locale ; et envoyer une réponse d'écriture AM à l'appareil distant, en indiquant que les 10 troisièmes données ont été écrites avec succès dans l'espace d'adresses de mémoire locale. 23. Appareil selon l'une quelconque des clauses 19 à 22, comprenant en outre : un tampon de destination dans la mémoire locale ; un gestionnaire AM de réponses d'écriture ; et 15 un module de lecture RMA configuré pour générer et envoyer une demande de lecture AM à un gestionnaire AM de demandes de lecture sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant où se trouvent les données de l'appareil distant à lire ; 20 recevoir de l'appareil distant, en réponse à la demande de lecture AM, une réponse de lecture AM contenant les données lues dans l'espace d'adresses distant ; et gérer la réponse de lecture AM avec le gestionnaire AM de réponses de lecture en extrayant les données de la réponse de lecture AM et en écrivant les données dans le tampon de destination. 25 24. Appareil selon l'une quelconque des clauses 19 à 23, dans lequel le module de lecture RMA est en outre configuré pour effectuer une lecture RMA dans laquelle des données sont lues dans l'appareil distant et transférées à l'aide d'une pluralité de paquets, les données pour chacun de la pluralité de paquets étant lues à distance, en envoyant une demande de lecture AM correspondante au gestionnaire de 30 demandes de lecture AM sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant où se trouvent les 3025331 24 données en paquet à lire ; en recevant de l'appareil distant, en réponse à chaque demande de lecture AM, une réponse de lecture AM contenant les données en paquet lues dans l'espace d'adresses distant ; et 5 en traitant la réponse de lecture AM avec le gestionnaire AM de réponses de lecture en extrayant les données en paquet de la réponse de lecture AM et en écrivant les données en paquet dans le tampon de destination. 25. Appareil selon l'une quelconque des clauses 19 à 24, comprenant en outre : un gestionnaire AM de demandes de lecture configuré pour 10 recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local contenant les données à lire ; récupérer les données dans la plage d'adresses identifiée dans la demande de lecture AM ; et envoyer une réponse AM à l'appareil distant contenant les données qui sont 15 récupérées. 26. Appareil comprenant : une interface de réseau ; de la mémoire, dont un espace d'adresses de mémoire locale ; un gestionnaire de demandes d'écriture par message actif (AM), configuré pour 20 recevoir, via l'interface de réseau, une pluralité de demandes d'écriture AM envoyées par un appareil distant sur une ligne de communication couplée à l'interface de réseau, chaque demande d'écriture AM correspondant à une écriture par accès à la mémoire distante (RMA) émise par l'appareil distant et contenant des données à écrire l'espace d'adresses de mémoire locale et une adresse de début à 25 laquelle un début des données correspondantes doit être écrit ; et générer une demande d'écriture RMA et mettre la demande d'écriture RMA dans une file d'attente d'écriture RMA ; et un module de progression RMA configuré pour recevoir une pluralité de blocs de données de l'appareil distant, chaque bloc de 30 données étant associé avec une demande d'écriture AM reçue précédemment et contenant des indices à l'aide desquels la demande d'écriture AM reçue 3025331 25 précédemment peut être identifiée ; retirer les demandes d'écriture RMA de la file d'attente d'écriture RMA ; et traiter de chaque demande d'écriture R1VIA retirée de la file d'attente pour déterminer si le bloc de données reçu associé avec la demande d'écriture RMA doit 5 être écrit dans l'espace d'adresses de mémoire locale. 27. Appareil selon la clause 26, comprenant en outre : un tampon source dans la mémoire et un module d'écriture RMA configuré pour envoyer une demande d'écriture AM à l'appareil distant, la demande d'écriture AM 10 identifiant une plage d'adresses dans un espace d'adresses de mémoire distante dans la mémoire de l'appareil distant dans laquelle les données doivent être écrites ; lire les données qui doivent être écrites dans le tampon source ; et envoyer les données à l'appareil distant, les données étant envoyées après l'envoi 15 de la demande d'écriture AM, et les données étant envoyées avec des indices configurés pour être utilisés pour correspondre aux données qui sont envoyées à la demande d'écriture AM. 28. Appareil selon la clause 26 ou 27, comprenant en outre : une file d'attente de demandes de lecture RMA ; 20 un gestionnaire AM de demandes de lecture configuré pour recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local contenant les données à lire ; générer, en réponse à la réception du message du message de demande de lecture AM, une demande de lecture RMA correspondante identifiant la plage d'adresses 25 dans l'espace d'adresses local contenant les données à lire ; et mettre la demande de lecture RMA dans la file d'attente de demandes de lecture RMA ; et un module de progression RMA configuré pour retirer la demande de lecture RMA de la file d'attente de demandes de lecture 30 RMA ; lire les données de l'espace d'adresses local comme il est défini par la plage 3025331 26 d'adresses dans la demande de lecture RMA ; et envoyer les données qui sont lues à l'appareil distant. 29. Appareil selon la clause 28, comprenant en outre : un tampon de destination occupant une partie de la mémoire ; et 5 un module de lecture RMA configuré pour envoyer une demande de lecture AM à l'appareil distant, la demande de lecture AM identifiant une plage d'adresses à lire dans un espace d'adresses distant situé dans la mémoire de l'appareil distant ; recevoir de l'appareil distant des données qui ont été lues dans l'espace d'adresses 10 distant ; et écrire les données reçues dans le tampon de destination. 30. Support non transitoire lisible par machine ayant des instructions stockées sur lui et configurées pour être exécutées sur un noeud possédant une interface de réseau et une mémoire comportant un espace d'adresses local, ces instructions 15 comprenant : Un gestionnaire par message actif (AM) de demandes d'écriture configuré pour, lorsqu'il est activé, recevoir, via l'interface de réseau, une première demande d'écriture AM envoyée par un appareil distant sur une ligne de communication couplée à l'interface de 20 réseau, la première demande d'écriture AM correspondant à une écriture par accès à la mémoire distante (RMA) émise par l'appareil distant et contenant des premières données à écrire à une adresse de début dans l'espace d'adresses de mémoire locale, dans la mémoire dans laquelle les données doivent être écrites ; traiter la première demande d'écriture AM en extrayant les données de la première 25 demande d'écriture AM et en écrivant les données dans une plage d'adresses dans l'espace d'adresses de mémoire distante commençant à l'adresse de début ; et envoyer une réponse d'écriture AM à l'appareil distant, indiquant que les données ont été écrites avec succès dans l'espace d'adresses de mémoire distante. 31. Support non transitoire lisible par machine selon la clause 30, contenant en 30 outre des instructions comprenant : un module d'écriture RMA configuré pour effectuer une opération d'écriture AM 3025331 27 dans laquelle une seconde demande d'écriture AM correspondant à une écriture RMA dans un espace d'adresses de mémoire distante situé dans la mémoire de l'appareil distant est générée et envoyée à l'appareil distant, cette seconde demande d'écriture AM contenant des deuxièmes données à écrire à une adresse de début 5 dans l'espace d'adresses de mémoire distante dans lequel les données doivent être écrites ; et un gestionnaire AM de réponses d'écriture configuré pour traiter une réponse d'écriture AM envoyée par l'appareil distant après la réussite de l'écriture des deuxièmes données dans l'espace d'adresses de mémoire distante. 10 32. Support non transitoire lisible par machine selon la clause 31, le noeud comprenant en outre un tampon source, et le module d'écriture RMA étant en outre configuré pour : diviser des troisièmes données à écrire dans l'espace d'adresses de mémoire distante en une pluralité de paquets ; 15 pour chacun de la pluralité de paquets, en lisant les données en paquet correspondant à ce paquet du tampon source ; et en envoyant une demande d'écriture AM correspondante à un gestionnaire AM de demandes d'écriture sur l'appareil distant contenant les données en paquet et une adresse de début correspondante dans l'espace d'adresses de mémoire distante sur 20 l'appareil distant dans lequel les données en paquet doivent être écrites. 33. Support non transitoire lisible par machine selon l'une quelconque des clauses 30 à 32, le gestionnaire AM de demandes d'écriture étant en outre configuré pour : recevoir une pluralité de demandes d'écriture AM de l'appareil distant, chacune de la pluralité de demandes d'écriture AM contenant des données en paquet 25 correspondant à une écriture à distance de troisièmes données qui sont divisées en une pluralité de paquets et qui doivent être écrites à une adresse de début correspondante dans l'espace d'adresses de mémoire locale ; extraire les données en paquet pour chacune de la pluralité de demandes d'écriture AM et écrire les données en paquet dans l'espace d'adresses de mémoire local 30 commençant à l'adresse de début identifiée par cette demande d'écriture AM ; détecter que la totalité des troisièmes données a été écrite dans l'espace d'adresses 3025331 28 de mémoire locale ; et envoyer une réponse d'écriture AM à l'appareil distant, en indiquant que les troisièmes données ont été écrites avec succès dans l'espace d'adresses de mémoire locale. 5 34. Support non transitoire lisible par machine selon l'une quelconque des clauses 30 à 33, le noeud comprenant en outre un tampon de destination dans la mémoire locale, et les instructions comprenant en outre : un gestionnaire AM de réponses de lecture et un module de lecture RMA configuré pour, lorsqu'il est activé, 10 générer et envoyer une demande de lecture AM à un gestionnaire AM de demandes de lecture sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant où se trouvent les données de l'appareil distant à lire ; recevoir de l'appareil distant, en réponse à la demande de lecture AM, une réponse 15 de lecture AM contenant les données lues dans l'espace d'adresses distant ; et gérer la réponse de lecture AM avec le gestionnaire AM de réponses de lecture en extrayant les données de la réponse de lecture AM et en écrivant les données dans le tampon de destination. 35. Support non transitoire lisible par machine selon l'une quelconque des clauses 20 30 à 34, le module de lecture RMA étant en outre configuré pour effectuer une opération de lecture RMA dans laquelle des données sont lues dans l'appareil distant et transférées à l'aide d'une pluralité de paquets, les données pour chacun de la pluralité de paquets étant lues à distance, en envoyant une demande de lecture AM correspondante au gestionnaire de 25 demande de lecture AM sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant dans lequel les données en paquet doivent être lues ; en recevant de l'appareil distant, en réponse à chaque demande de lecture AM, une réponse de lecture AM contenant les données en paquet lues dans l'espace 30 d'adresses distant ; et en traitant la réponse de lecture AM avec le gestionnaire AM de réponses de 3025331 29 lecture en extrayant les données en paquet de la réponse de lecture AM et en écrivant les données en paquet dans le tampon de destination. 36. Support non transitoire lisible par machine selon l'une quelconque des clauses 30 à 35, les instructions comprenant en outre : 5 un gestionnaire AM de réponses de lecture configuré pour recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local.contenant les données à lire ; récupérer les données dans la plage d'adresses identifiée dans la demande de lecture AM ; et 10 envoyer une réponse AM à l'appareil distant contenant les données qui sont récupérées. 37. Support non transitoire lisible par machine ayant des instructions stockées sur lui et configurées pour être exécutées sur un noeud possédant une interface de réseau et une mémoire comportant un espace d'adresses local, ces instructions 15 comprenant : Un gestionnaire par message actif (AM) de demandes d'écriture configuré pour, lorsqu'il est activé, recevoir, via l'interface de réseau, une pluralité de demandes d'écriture AM envoyées par un appareil distant sur une ligne de communication couplée à 20 l'interface de réseau, chaque demande d'écriture AM correspondant à une écriture par accès à la mémoire distante (RMA) émise par l'appareil distant et contenant des données correspondantes à écrire dans l'espace d'adresses de mémoire locale et une adresse de début à laquelle le début des données doit être écrit ; et générer une demande d'écriture RMA et mettre la demande d'écriture RMA dans 25 une file d'attente de demandes d'écriture RMA ; et un module de progression RMA configuré pour, lorsqu'il est activé, recevoir une pluralité de blocs de données de l'appareil distant, chaque bloc de données étant associé avec une demande d'écriture AM reçue précédemment et contenant des indices à partir desquels une demande d'écriture RMA peut être 30 identifiée ; retirer les demandes d'écriture RMA de la file d'attente de demandes d'écriture 3025331 30 RMA ; et traiter chaque demande d'écriture RMA retirée de la file d'attente pour déterminer si le bloc de données reçu associé avec la demande d'écriture RMA doit être écrit dans l'espace d'adresses de mémoire locale. 5 38. Support non transitoire lisible par machine selon la clause 37, le noeud comprenant en outre un tampon source dans la mémoire, et les instructions comprenant en outre : un module d'écriture RMA configuré pour, lorsqu'il est activé, envoyer une demande d'écriture AM à l'appareil distant, la demande d'écriture AM 10 identifiant une plage d'adresses dans l'espace d'adresses de mémoire distante situé dans la mémoire de l'appareil distant dans laquelle les données doivent être écrites ; lire les données qui doivent être écrites dans le tampon source ; et envoyer les données à l'appareil distant, les données étant envoyées après l'envoi 15 de la demande d'écriture AM, et les données étant envoyées avec des indices configurés pour être utilisés pour correspondre aux données qui sont envoyées à la demande d'écriture AM. 39. Support non transitoire lisible par machine selon la clause 37 ou 38, le noeud comprenant en outre une file d'attente de demandes de lecture RMA, et les 20 instructions comprenant en outre : un gestionnaire AM de demandes de lecture configuré pour, lorsqu'il est activé, recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local contenant des données à lire ; générer, en réponse à la réception du message de demande de lecture AM, une 25 demande de lecture RAM correspondante identifiant la plage d'adresses dans l'espace d'adresses local contenant des données à lire ; et mettre la demande de lecture RMA dans la file d'attente de demandes de lecture RMA ; et un module de progression RMA configuré pour 30 retirer la demande de lecture RMA de la file d'attente de demandes de lecture RMA; 3025331 31 lire des données dans l'espace d'adresses local comme il est défini par la plage d'adresses dans la demande de lecture RMA ; et envoyer les données qui sont lues à l'appareil distant. 40. Support non transitoire lisible par machine selon la clause 39, le noeud 5 comprenant en outre un tampon de destination occupant une partie de la mémoire, et les instructions comprenant en outre : un module de lecture RMA configuré pour, lorsqu'il est activé, envoyer une demande de lecture AM à l'appareil distant, la demande de lecture AM identifiant une plage d'adresses qui doit être lue dans l'espace d'adresses 10 distant situé dans la mémoire de l'appareil distant ; recevoir de l'appareil distant des données qui ont été lues dans l'espace d'adresses distant ; et écrire les données reçues dans le tampon de destination. Bien que certaines formes de réalisation aient été décrites par apport des mises en 15 oeuvre particulières, d'autres mises en oeuvre sont possibles selon certaines formes de réalisation. De plus, il n'est pas nécessaire que l'agencement et/ou l'ordre des éléments ou d'autres caractéristiques illustrés sur les dessins et/ou décrits ici soient disposés de la manière particulière illustrée et décrite. De très nombreux autres agencements sont possibles selon certaines formes de réalisation. 20 Dans chaque système représenté sur une figure, les éléments peuvent, dans certains cas, avoir un même numéro de référence ou un numéro de référence différent pour indiquer que les éléments représentés peuvent être différents et/ou similaires. Cependant, un élément peut être assez flexible pour avoir différentes mise en oeuvre et fonctionner avec tout ou partie des systèmes représentés ou décrits ici. 25 Les divers éléments représentés sur les figures peuvent être identiques ou différents. Le fait qu'un élément soit considéré comme un premier élément ou un second élément est arbitraire. Dans la description et dans les revendications, les termes "couplé" et "connecté", ainsi que d'autres termes dérivés, peuvent être utilisés. On comprendra que ces 30 termes ne sont pas employés comme synonymes. En effet, dans des formes de réalisation particulières, le terme "connecté" peut être utilisé pour indiquer que 3025331 32 deux éléments ou davantage sont en contact physique ou électrique direct les uns avec les autres. Le terme "couplé" peut signifier que deux éléments ou davantage sont en contact physique ou électrique direct. Cependant, "couplé" peut aussi signifier que deux éléments ou davantage ne sont pas en contact direct les uns avec 5 les autres, mais coopèrent ou interagissent les uns avec les autres. Un algorithme est considéré ici, et de manière générale, comme une séquence cohérente en soi d'actes ou d'opération aboutissant à un résultat souhaité. Ceux-ci comprennent des manipulations physiques de quantités physiques. Habituellement, mais pas nécessairement, ces quantités prennent la forme de signaux électriques ou 10 magnétiques pouvant être stockés, transférés, combinés, comparés et manipulés d'une manière quelconque. Il s'est avéré pratique parfois, principalement pour des raisons d'usage courant, d'appeler ces signaux des bits, des valeurs, des éléments, des symboles, des caractères, des termes, des nombres ou autres. On comprendra, cependant, que tous ces termes et les termes similaires doivent être associés avec 15 les quantités physiques appropriées et ne sont que des étiquettes pratiques appliquées à ces quantités. Une forme de réalisation est une mise en oeuvre ou un exemple de l'invention. Dans la description, les expressions "une forme de réalisation", "certaines formes de réalisation" ou "d'autres formes de réalisation" signifient qu'une fonction, une 20 structure ou une caractéristique particulière décrite en lien avec les formes de réalisation est comprise dans au moins certaines formes de réalisation, mais pas nécessairement toutes les formes de réalisation de l'invention. Les diverses occurrences des expressions "une forme de réalisation" ou "certaines formes de réalisation" ne font pas nécessairement toutes référence aux mêmes formes de 25 réalisation. Tous les composants, fonctions, structures, caractéristiques, etc. décrits et illustrés ici ne doivent pas nécessairement être compris dans une ou des formes de réalisation particulières. Si la description indique qu'un composant, une fonction, une structure ou une caractéristique "peut" ou "pourrait" être compris, par 30 exemple, ce composant, cette fonction, cette structure ou cette caractéristique particulière ne doit pas nécessairement être compris. Si la description ou les 3025331 33 revendications font référence à "un" élément, cela ne signifie pas qu'il y a un seul élément. Si la description ou les revendications mentionnent "un élément supplémentaire", cela n'exclut pas qu'il y ait plus d'un élément supplémentaire. Comme indiqué plus haut, divers aspects des formes de réalisation présentées ici 5 peuvent être facilités par des logiciels correspondants et/ou des composants et des applications intégrés, tels qu'un logiciel tournant sur un serveur ou un processeur ou un logiciel et/ou un micrologiciel exécuté par un processeur intégré ou autre. Ainsi, des formes de réalisation de cette invention peuvent être utilisées comme soutien ou pour soutenir un programme logiciel, des modules logiciels, des 10 micrologiciels et/ou des logiciels répartis exécutés sur une certaine forme de coeur de traitement (tel que la CPU d'un ordinateur, un ou plusieurs coeurs d'un processeur multicceur), une machine virtuelle tournant sur un processeur ou un coeur, ou implantée ou réalisée d'une manière quelconque sur ou dans un support de stockage non transitoire lisible par ordinateur ou lisible par machine. Un 15 support de stockage non transitoire lisible par ordinateur ou lisible par machine comprend n'importe quel mécanisme pour stocker ou transmettre des informations sous une forme lisible par une a machine (p. ex., un ordinateur). Par exemple, un support de stockage non transitoire lisible par ordinateur ou lisible par machine comprend n'importe quel mécanisme qui présente (c'est-à-dire stocke et/ou 20 transmet) des informations sous une forme accessible par un ordinateur ou une machine à calculer (p. ex., un dispositif informatique, un système électronique, etc.), tel qu'un support enregistrable/non enregistrable (p. ex., une mémoire morte (ROM), une mémoire vive (RAM), un support de stockage à disque magnétique, un support de stockage optique, des dispositifs à mémoire flash, etc.). Le contenu 25 peut être directement exécutable (forme "objet" ou "exécutable"), un code source ou un code différentiel (code "delta" ou "patch"). Un support de stockage non transitoire lisible par ordinateur ou lisible par machine peut aussi comprendre un dispositif de stockage ou une base de données à partir duquel un contenu peut être téléchargé. Le support de stockage non transitoire lisible par ordinateur ou lisible 30 par machine peut aussi comprendre un dispositif ou un produit ayant un contenu stocké sur lui au moment de sa vente ou de sa livraison. Ainsi, la livraison d'un 3025331 34 dispositif avec un contenu stocké, ou l'offre d'un contenu à télécharger par un support de communication peuvent être compris comme la fourniture d'un article manufacturé comprenant un support de stockage non transitoire lisible par ordinateur ou lisible par machine avec un contenu tel qu'il est décrit ici. 5 Divers composants appelés ci-dessus processus, serveurs ou outils et décrits ici peuvent être des moyens pour exécuter les fonctions décrites. Les opérations et fonctions exécutées par divers composants décrits ici peuvent être mises en oeuvre par un logiciel tournant sur un élément de traitement, via un matériel intégré ou autre, ou une combinaison quelconque de matériel et de logiciel. Ces composants 10 peuvent être mis en oeuvre sous forme de modules logiciels, de modules matériels, de matériels à usage spécial (p. ex. des matériels spécifiques à une application, des ASIC, des DSP, etc.), de contrôleurs intégrés, de circuits câbles, de la logique matérielle, etc. Le contenu logiciel (p. ex. les données, les instructions, les informations de configuration, etc.) peut être fourni par un article manufacturé tel 15 qu'un support de stockage non transitoire lisible par ordinateur ou lisible par machine qui fournit un contenu qui représente des instructions qui peuvent être exécutées. Le contenu peut aboutir à ce que l'ordinateur exécute diverses fonctions/opérations décrites ici. Dans ce document, l'expression "au moins un parmi" désignant une liste d'objets 20 signifie que ces objets peuvent être associés dans une combinaison quelconque. Par exemple, l'expression "au moins un parmi A, B et C" peut désigner A ; B ; C ; A et B ; A et C ; B et C ; ou A, B et C. La description ci-dessus de formes de réalisation illustrées de l'invention, y compris ce qui est décrit dans l'abrégé, n'a pas pour but d'être exhaustive ni de 25 limiter l'invention aux formes précises exposées. Bien que des formes de réalisation spécifiques et des exemples de l'invention soient décrits ici dans un but d'illustration, diverses modifications équivalentes sont possibles dans le cadre de l'invention, comme l'homme de l'art le comprendra. Ces modifications peuvent être apportées à l'invention à la lumière de la 30 description détaillée ci-dessus. Les expressions utilisées dans les revendications ci-après ne doivent pas être considérées comme limitant l'invention aux formes de 3025331 réalisation spécifiques exposées dans la description et les dessins. Au contraire, la portée de l'invention doit être déterminée entièrement par les revendications ci-après, qui doivent être considérées comme étant conformes aux doctrines établies de l'interprétation des revendications. REVENDICATIONS1. Les revendications sont les suivantes : 1°/ Procédé pour effectuer des transferts de données par accès à la mémoire distante (Remote Memory Access - RMA) entre un noeud distant et un noeud local, ce procédé comprenant : l'exécution d'une écriture RMA dans laquelle des données sont écrites du noeud local sur le noeud distant en lisant les données à écrire dans un tampon source sur le noeud local ; en envoyant une première demande d'écriture de message actif (Active Message AM) du noeud local à un gestionnaire AM sur le noeud distant, cette première demande d'écriture AM contenant les données à écrire et une adresse de début dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données doivent être écrites ; et en traitant la première demande d'écriture AM avec le gestionnaire AM sur le noeud distant en extrayant les données de la première demande d'écriture AM et en écrivant ces données dans une plage d'adresses dans l'espace d'adresses de mémoire distante commençant à l'adresse de début. 2°/ Procédé selon la revendication 1, comprenant en outre : l'envoi d'une réponse d'écriture AM du noeud distant au noeud local, cette réponse d'écriture AM indiquant que les données ont été écrites avec succès dans l'espace d'adresses de la mémoire distante ; et l'utilisation d'un gestionnaire AM sur le noeud local pour traiter le message de réponse d'écriture AM. 3°/ Procédé selon la revendication 1, comprenant en outre : la division des données à écrire dans une pluralité de paquets ; et pour chacun de la pluralité de paquets : la lecture des données en paquet correspondant à ce paquet du tampon source sur le noeud local ; l'envoi d'une demande AM correspondante du noeud local au gestionnaire AM sur le noeud distant contenant les données du paquet et une adresse de début dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données 5 du paquet doivent être écrites ; et le traitement de la demande AM correspondante avec le gestionnaire AM sur le noeud distant en extrayant les données du paquet de la demande AM correspondante et en écrivant ces données sur une plage d'adresses dans l'espace d'adresses de mémoire distante commençant par l'adresse de début, 10 la première demande d'écriture AM correspondant à une demande d'écriture AM utilisée pour transférer un premier paquet de données de la pluralité de paquets. 4°/ Procédé selon la revendication 3, comprenant en outre : la détection du fait que toutes les données en paquet ont été écrites avec succès 15 dans l'espace d'adresses de mémoire distante ; l'envoi d'une réponse AM du noeud distant au noeud local indiquant que les données en paquet ont été écrites avec succès dans l'espace d'adresses de mémoire distante ; et l'utilisation d'un gestionnaire AM sur le noeud local pour traiter le message de 20 réponse AM. 5°/ Procédé selon la revendication 1, comprenant en outre : l'exécution d'une opération de lecture RMA dans laquelle les données sont lues dans le noeud distant et transférées vers le noeuds local 25 en envoyant une demande de lecture AM au gestionnaire AM sur le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant de données à lire ; en récupérant, en réponse à la réception du message de demande de lecture AM, les données à lire dans l'espace d'adresses distant via le gestionnaire AM sur le 30 noeud distant et en envoyant les données récupérées au noeud local via un message de réponse de lecture AM ; et en traitant la réponse de lecture AM avec un gestionnaire AM sur le noeud local en extrayant les données de la réponse d'écriture AM et en écrivant ces données dans un tampon de destination sur le noeud local. 5 6°/ Procédé selon la revendication 1, comprenant en outre : l'exécution d'une opération de lecture RMA dans laquelle les données sont lues dans le noeud distant et transférées vers le noeud local à l'aide d'une pluralité de paquets, les données pour chacun de la pluralité de paquets étant transférées en envoyant une demande de lecture AM correspondante au gestionnaire AM sur 10 le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant des données en paquet à lire ; en récupérant, en réponse à la réception du message de demande de lecture AM, les données en paquet à lire dans l'espace d'adresses distant via le gestionnaire AM sur le noeud distant et en envoyant les données en paquet récupérées au noeud local 15 via un message de réponse de lecture AM ; et en traitant la réponse de lecture AM avec un gestionnaire AM sur le noeud local en extrayant les données en paquet de la réponse de lecture AM et en écrivant les données en paquet dans un tampon de destination sur le noeud local. 20 7°/ Procédé selon la revendication 1, comprenant en outre : l'utilisation d'un message marqué pour la première demande d'écriture AM à l'aide d'un système de messages marqués, et l'utilisation du gestionnaire AM sur le noeud distant pour inspecter le message marqué pour vérifier que le noeud distant est le destinataire prévu de la première 25 demande d'écriture AM. 8°/ Procédé selon la revendication 1, comprenant en outre : l'enregistrement, sur le noeud local, d'au moins une plage d'adresses dans l'espace d'adresses de mémoire distante sur le noeud distant dans laquelle des données 30 peuvent être écrites à l'aide d'une ou plusieurs demandes d'écriture AM envoyées par le noeud distant. 3025331 39 la publication d'un code d'accès au noeud distant correspondant à au moins une plage d'adresses enregistrée avec le noeud local ; l'inclusion du code d'accès dans la première demande d'écriture AM ; et l'inspection du code d'accès par le gestionnaire AM sur le noeud distant pour 5 valider le fait que la première demande d'écriture AM est autorisée. 9°/ Procédé pour effectuer des transferts de données par accès à la mémoire distante (RMA) entre un noeud distant et un noeud local, ce procédé comprenant : l'exécution d'une écriture RMA dans laquelle des données sont écrites du noeud 10 local sur le noeud distant en envoyant une première demande d'écriture de message actif (AM) du noeud local à un gestionnaire AM sur le noeud distant, cette première demande d'écriture AM identifiant une plage d'adresses dans un espace d'adresses de mémoire distante sur le noeud distant dans lequel les données doivent être écrites ; 15 en lisant les données à écrire dans un tampon source sur le noeud local et en envoyant les données au noeud distant ; et en traitant les données qui sont reçues par le noeud distant de sorte que les données qui doivent être écrites dans l'espace d'adresses de mémoire distante occupent la plage d'adresses identifiée dans la première demande d'écriture AM. 20 10°/ Procédé selon la revendication 9, comprenant en outre : la réception d'une pluralité de demandes d'écriture AM, chaque demande d'écriture AM identifiant une plage d'adresses dans l'espace d'adresses de mémoire distante sur le noeud distant sur laquelle un bloc de données associé avec la demande 25 d'écriture AM qui doit ensuite être envoyée doit être écrit, chaque demande d'écriture AM comprenant des indices identifiant le bloc de données associées ; la mise en file d'attente, à l'aide du gestionnaire AM sur le noeud distant, de chaque demande d'écriture AM dans une file d'attente d'écriture RMA sur le noeud distant ; la réception d'une pluralité de blocs de données du noeud local, chaque bloc de 30 données étant associé avec une demande d'écriture AM reçue précédemment et contenant des indices à l'aide desquels la demande d'écriture AM reçue 3025331 40 précédemment peut être identifiée ; le retrait des demandes d'écriture AM de la file d'attente d'écriture RMA ; et le traitement de chaque demande d'écriture AM retirée de la file d'attente pour déterminer si le bloc de données associé avec la demande d'écriture AM qui a été 5 reçu doit être écrit dans l'espace d'adresses de mémoire distante. 11°/ Procédé selon la revendication 9, comprenant en outre l'exécution d'une lecture RMA dans laquelle des données sont lues dans le noeud distant et transférées vers le noeud local, 10 en envoyant une demande de lecture AM au gestionnaire AM sur le noeud distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant des données à lire ; en générant, en réponse à la réception du message de demande de lecture AM, via le gestionnaire AM sur le noeud distant, une demande de lecture RMA 15 correspondant à la demande de lecture AM identifiant la plage d'adresses dans l'espace d'adresses distant des données à lire ; en traitant la demande de lecture RMA sur le noeud distant de sorte que les données sont lues dans l'espace d'adresses distant comme il est défini par la plage d'adresses dans la demande de lecture RMA récupérée dans l'espace d'adresses distant et 20 envoyée au noeud local ; et en écrivant les données récupérées qui sont envoyées du noeud distant au tampon de destination sur le noeud local. 12°/ Procédé selon la revendication 11, comprenant en outre : 25 en réponse à la réception du message de demande de lecture AM, la génération et la mise en file d'attente, via le gestionnaire AM sur le noeud distant, d'une demande de lecture RMA correspondant à la demande de lecture AM dans une file d'attente de demandes de lecture RMA sur le noeud distant identifiant la plage d'adresses dabs l'espace d'adresses distant des données à lire ; 30 le retrait de la demande de lecture RMA de la file d'attente de demandes de lecture RMA ; et 3025331 41 la récupération de données à lire dans l'espace d'adresses distant tel qu'il est défini par la plage d'adresses dans la demande de lecture RMA et l'envoi des données récupérées au noeud local._ 5 13°/ Procédé selon la revendication 12, dans lequel les opérations de retrait de file d'attente, de récupération des données et d'envoi sont effectuées par une fonction de lecture RMA sur le noeud distant qui est séparée du gestionnaire AM sur le noeud distant. 10 14°/ Procédé selon la revendication 9, comprenant en outre l'enregistrement, sur le noeud local, d'au moins une plage d'adresses dans l'espace d'adresses de mémoire distante sur le noeud distant, dans laquelle des données peuvent être écrites à l'aide d'une ou plusieurs demandes d'écriture AM envoyées depuis le noeud distant. 15 15°/ Appareil comprenant : une interface de réseau ; de la mémoire, dont un espace d'adresses de mémoire locale ; un gestionnaire de demandes d'écriture par message actif (AM), configuré pour recevoir, via l'interface de réseau, une première demande d'écriture AM envoyée 20 par un appareil distant sur une ligne de communication couplée à l'interface de réseau, la première demande d'écriture AM correspondant à une écriture par accès à la mémoire distante (RMA) émise par l'appareil distant et contenant des premières données à écrire à une adresse de début dans l'espace d'adresses de mémoire locale, dans la mémoire dans laquelle les données doivent être écrites ; 25 traiter la première demande d'écriture AM en extrayant les données de la première demande d'écriture AM et en écrivant les données dans une plage d'adresses dans l'espace d'adresses de mémoire distante commençant à l'adresse de début ; et envoyer une réponse d'écriture AM à l'appareil distant, indiquant que les données ont été écrites avec succès dans l'espace d'adresses de mémoire distante. 30 16°/ Appareil selon la revendication 15, comprenant en outre : 3025331 42 un module d'écriture RMA configuré pour effectuer une opération d'écriture AM dans laquelle une seconde demande d'écriture AM correspondant à une écriture RMA sur un espace d'adresses de mémoire distante dans la mémoire de l'appareil distant est générée et envoyée à l'appareil distant, la seconde demande d'écriture 5 AM contenant des deuxièmes données à écrire à une adresse de début dans l'espace d'adresses de mémoire distante dans lequel les données doivent être écrites ; et un gestionnaire AM de réponses d'écriture, configuré pour traiter une réponse d'écriture AM envoyée par l'appareil distant après la réussite de l'écriture des deuxièmes données dans l'espace d'adresses de mémoire distante. 10 17°/ Appareil selon la revendication 16, comprenant en outre un tampon source, et dans lequel le module d'écriture RMA est en outre configuré pour : diviser des troisièmes données à écrire dans l'espace d'adresses de mémoire distante en une pluralité de paquets ; 15 pour chacun de la pluralité de paquets, en lisant les données en paquet correspondant au paquet du tampon source ; et en envoyant une demande d'écriture AM correspondante à un gestionnaire AM de demandes d'écriture sur l'appareil distant contenant les données en paquet et une adresse de début correspondante dans l'espace d'adresses de mémoire distante sur 20 l'appareil distant dans lequel les données en paquet doivent être écrites. 18°/ Appareil selon la revendication 15, dans lequel le gestionnaire AM de demandes d'écriture est en outre configuré pour : recevoir une pluralité de demandes d'écriture AM de l'appareil distant, chacune de 25 la pluralité de demandes d'écriture AM contenant des données en paquet correspondant à une écriture à distance de troisièmes données qui sont divisées en une pluralité de paquets et doivent être écrites dans un espace d'adresses de mémoire locale, à une adresse de début correspondante dans l'espace d'adresses de mémoire locale ; 30 extraire les données en paquet pour chacune de la pluralité de demandes d'écriture AM et écrire les données en paquet dans l'espace d'adresses de mémoire locale 3025331 43 commençant à l'adresse de début identifiée par cette demande d'écriture AM ; détecter que la totalité des troisièmes données a été écrite dans l'espace d'adresses de mémoire locale ; et envoyer une réponse d'écriture AM à l'appareil distant, en indiquant que les 5 troisièmes données ont été écrites avec succès dans l'espace d'adresses de mémoire locale. 19°/ Appareil selon la revendication 15, comprenant en outre : un tampon de destination dans la mémoire locale ; 10 un gestionnaire AM de réponses d'écriture ; et un module de lecture RMA configuré pour générer et envoyer une demande de lecture AM à un gestionnaire AM de demandes de lecture sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant où se trouvent les données de 15 l'appareil distant à lire ; recevoir de l'appareil distant, en réponse à la demande de lecture AM, une réponse de lecture AM contenant les données lues dans l'espace d'adresses distant ; et gérer la réponse de lecture AM avec le gestionnaire AM de réponses de lecture en extrayant les données de la réponse de lecture AM et en écrivant les données dans 20 le tampon de destination. 20°/ Appareil selon la revendication 19, dans lequel le module de lecture RMA est en outre configuré pour effectuer une lecture RMA dans laquelle des données sont lues dans l'appareil distant et transférées à l'aide d'une pluralité de paquets, les 25 données pour chacun de la pluralité de paquets étant lues à distance, en envoyant une demande de lecture AM correspondante au gestionnaire de demandes de lecture AM sur l'appareil distant, la demande de lecture AM identifiant une plage d'adresses dans l'espace d'adresses distant où se trouvent les données en paquet à lire ; 30 en recevant de l'appareil distant, en réponse à chaque demande de lecture AM, une réponse de lecture AM contenant les données en paquet lues dans l'espace 3025331 44 d'adresses distant ; et en traitant la réponse de lecture AM avec le gestionnaire AM de réponses de lecture en extrayant les données en paquet de la réponse de lecture AM et en écrivant les données en paquet dans le tampon de destination. 5 21°/ Appareil selon la revendication 15, comprenant en outre : un gestionnaire AM de demandes de lecture configuré pour recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local contenant les données à lire ; 10 récupérer les données dans la plage d'adresses identifiée dans la demande de lecture AM ; et envoyer une réponse AM à l'appareil distant contenant les données qui sont récupérées. 15 22°/ Appareil comprenant : une interface de réseau ; de la mémoire, dont un espace d'adresses de mémoire locale ; un gestionnaire de demandes d'écriture par message actif (AM), configuré pour recevoir, via l'interface de réseau, une pluralité de demandes d'écriture AM 20 envoyées par un appareil distant sur une ligne de communication couplée à l'interface de réseau, chaque demande d'écriture AM correspondant à une écriture par accès à la mémoire distante (RMA) émise par l'appareil distant et contenant des données à écrire l'espace d'adresses de mémoire locale et une adresse de début à laquelle un début des données correspondantes doit être écrit ; et 25 générer une demande d'écriture RMA et mettre la demande d'écriture RMA dans une file d'attente d'écriture RMA ; et un module de progression RMA configuré pour recevoir une pluralité de blocs de données de l'appareil distant, chaque bloc de données étant associé avec une demande d'écriture AM reçue précédemment et 30 contenant des indices à l'aide desquels la demande d'écriture AM reçue précédemment peut être identifiée ; 3025331 45 retirer les demandes d'écriture RMA de la file d'attente d'écriture RMA ; et traiter de chaque demande d'écriture RMA retirée de la file d'attente pour déterminer si le bloc de données reçu associé avec la demande d'écriture RMA doit être écrit dans l'espace d'adresses de mémoire locale. 5 23°/ Appareil selon la revendication 22, comprenant en outre : un tampon source dans la mémoire et un module d'écriture RMA configuré pour envoyer une demande d'écriture AM à l'appareil distant, la demande d'écriture AM 10 identifiant une plage d'adresses dans un espace d'adresses de mémoire distante dans la mémoire de l'appareil distant dans laquelle les données doivent être écrites ; lire les données qui doivent être écrites dans le tampon source ; et envoyer les données à l'appareil distant, les données étant envoyées après l'envoi 15 de la demande d'écriture AM, et les données étant envoyées avec des indices configurés pour être utilisés pour correspondre aux données qui sont envoyées à la demande d'écriture AM. 24°/ Appareil selon la revendication 22, comprenant en outre : 20 une file d'attente de demandes de lecture RMA ; un gestionnaire AM de demandes de lecture configuré pour recevoir une demande de lecture AM de l'appareil distant identifiant une plage d'adresses dans l'espace d'adresses local contenant les données à lire ; générer, en réponse à la réception du message du message de demande de lecture 25 AM, une demande de lecture RMA. correspondante identifiant la plage d'adresses dans l'espace d'adresses local contenant les données à lire ; et mettre la demande de lecture RMA dans la file d'attente de demandes de lecture RMA ; et un module de progression RMA configuré pour 30 retirer la demande de lecture RMA de la file d'attente de demandes de lecture RMA; 3025331 46 lire les données de l'espace d'adresses local comme il est défini par la plage d'adresses dans la demande de lecture RMA ; et envoyer les données qui sont lues à l'appareil distant. 5 25°/ Appareil selon la revendication 24, comprenant en outre : un tampon de destination occupant une partie de la mémoire ; et un module de lecture RMA configuré pour envoyer une demande de lecture AM à l'appareil distant, la demande de lecture AM identifiant une plage d'adresses à lire dans un espace d'adresses distant situé 10 dans la mémoire de l'appareil distant ; recevoir de l'appareil distant des données qui ont été lues dans l'espace d'adresses distant ; et écrire les données reçues dans le tampon de destination.