FR3003665A1 - Procede de transmission hybride de messages a memoire partagee - Google Patents

Procede de transmission hybride de messages a memoire partagee Download PDF

Info

Publication number
FR3003665A1
FR3003665A1 FR1450643A FR1450643A FR3003665A1 FR 3003665 A1 FR3003665 A1 FR 3003665A1 FR 1450643 A FR1450643 A FR 1450643A FR 1450643 A FR1450643 A FR 1450643A FR 3003665 A1 FR3003665 A1 FR 3003665A1
Authority
FR
France
Prior art keywords
data
processor
message
coprocessors
transmitting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1450643A
Other languages
English (en)
Other versions
FR3003665B1 (fr
Inventor
Benjamin Thomas Occhipinti
Konrad Robert Kuczynski
Eric Daniel Buehler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GE Aviation Systems LLC
Original Assignee
GE Aviation Systems LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GE Aviation Systems LLC filed Critical GE Aviation Systems LLC
Publication of FR3003665A1 publication Critical patent/FR3003665A1/fr
Application granted granted Critical
Publication of FR3003665B1 publication Critical patent/FR3003665B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

Procédé (10) pour communiquer des données entre au moins deux coprocesseurs dans un environnement informatique unique dans lequel l'un des coprocesseurs est un processeur émetteur et l'autre des coprocesseurs est un processeur récepteur et l'environnement informatique unique comprend une mémoire accessible aux coprocesseurs, le procédé comportant, entre autres, la détermination (14), dans le processeur émetteur, de la taille des données à communiquer, l'ajout (15) des données dans un message et la transmission (30) du message au processeur récepteur si la taille des données est inférieure ou égale (36) à une valeur seuil prédéterminée, et la transmission (24, 30) d'un pointeur au processeur récepteur, le pointeur désignant un emplacement des données dans la mémoire, si la taille des données est supérieure (34) à la valeur seuil prédéterminée.

Description

Procédé de transmission hybride de messages à mémoire partagée L'invention concerne la communication de données, en particulier entre au moins deux coprocesseurs. Les performances des codes pour des applications exécutées dans un environnement informatique à multiprocesseur ou processeur multicoeur peuvent être déterminées, en partie, par la manière dont les éléments de traitement individuels présents dans l'environnement communiquent les uns avec les autres. La mémoire partagée et la transmission de messages sont deux grandes catégories de paradigmes de communication utilisées pour les communications entre processeurs. Il existe des techniques de programmation hybride qui recourent aux deux paradigmes de communication. Un aspect de l'invention concerne un procédé de transfert de données entre deux ou plus de deux coprocesseurs dans un environnement informatique unique dans lequel l'un des coprocesseurs est un processeur émetteur et un autre des coprocesseurs est un processeur récepteur. L' environnement informatique unique comprend une mémoire accessible aux coprocesseurs. Le procédé comporte la détermination, dans le processeur émetteur, de la taille des données à communiquer. Si la taille des données est inférieure ou égale à une valeur seuil prédéterminée, le procédé insère les données dans un message et transmet le message au processeur récepteur. Si la taille des données est supérieure à la valeur seuil prédéterminée, le procédé transmet un pointeur au processeur récepteur, le pointeur indiquant un emplacement des données dans la mémoire.
L'invention sera mieux comprise à l'étude détaillée de quelques modes de réalisation pris à titre d'exemples non limitatifs et illustrés par les dessins annexés sur lesquels : la Figure 1 est un organigramme illustrant un procédé de transmission de messages hybrides avec mémoire partagée selon une forme de réalisation de l'invention. Les exemples de formes de réalisation sont décrits en référence aux dessins. Ces dessins illustrent certains détails de formes de réalisation spécifiques qui emploient un module, un procédé ou un programme informatique décrit ici. Cependant, les dessins ne doivent pas être interprétés comme imposant d'éventuelles limites susceptibles de figurer sur les dessins. Le procédé et le programme informatique peuvent être placés sur n'importe quels supports exploitables par un ordinateur pour l'exécution de leur exploitation. Les formes de réalisation peuvent être mises en oeuvre à l'aide d'un processeur informatique existant ou par un processeur informatique spécifique installé à cette fin ou à une autre, ou par un système filaire. Comme indiqué plus haut, les formes de réalisation décrites ici peuvent comporter un programme informatique comprenant des supports exploitables par ordinateur destinés à porter ou à stocker des instructions exécutables par ordinateur ou des structures de données. Ces supports exploitables par ordinateur peuvent être n'importe quels supports existants, accessibles à un ordinateur polyvalent ou spécifique, ou à une autre machine à processeur. A titre d'exemple, ces supports exploitables par ordinateur peuvent comprendre une mémoire vive, une mémoire morte, une EPROM, une EEPROM, un CD-ROM ou autre moyen de mémorisation sur disque optique, des moyens de mémorisation sur disque magnétique ou d'autres dispositifs magnétiques de mémorisation, ou tout autre support utilisable pour porter ou stocker un code de programme voulu sous la forme d'instructions ou de structures de données exécutables par ordinateur et accessible à un ordinateur polyvalent ou spécifique ou à une autre machine à processeur. Quand des informations sont transmises ou fournies à une machine via un réseau ou une autre liaison de communication (filaire, radioélectrique, ou à la fois combinée et radioélectrique), la machine perçoit à juste titre la liaison comme un support exploitable par ordinateur. Ainsi, toute liaison de ce type est appelée à juste titre support exploitable par ordinateur. Des combinaisons des moyens ci-dessus entrent également dans le cadre des supports exploitables par ordinateur. Les instructions exécutables par ordinateur comprennent, par exemple, des instructions et des données, qui amènent un ordinateur polyvalent, un ordinateur spécifique ou des processeurs spécifiques à exécuter une certaine fonction ou un certain groupe de fonctions. Des formes de réalisation seront décrites dans le contexte général d'étapes d'un procédé qui peuvent être mises en oeuvre dans une même forme de réalisation par un programme comprenant des instructions exécutables par ordinateur, notamment un code de programme, par exemple sous la forme de modules de programmes exécutés par des machines dans des environnements en réseau. Globalement, les modules de programmes comprennent des routines, des programmes, des objets, des composants, des structures de données, etc., qui ont pour effet technique d'exécuter des tâches particulières ou mettent en oeuvre des types particuliers de données abstraites. Les instructions exécutables par ordinateur, les structures de données associées et les modules de programmes constituent des exemples de code de programme pour exécuter des étapes du procédé exposé ici. L'ordre particulier de ces instructions exécutables ou les structures de données associées constituent des exemples d'actions correspondantes pour exécuter les fonctions décrites dans ces étapes. Les formes de réalisation peuvent être mises en oeuvre dans un environnement en réseau à l'aide de liaisons logiques avec un ou plusieurs ordinateurs distants à processeurs. Les liaisons logiques peuvent comprendre un réseau local (LAN) et un réseau étendu (WAN) qui sont présentés ici à titre d'exemple nullement limitatif. Ces environnements de mise en réseau sont courants dans les réseaux informatiques à l'échelle d'un bureau ou d'une entreprise, dans les intranets et l'Internet et peuvent utiliser toutes sortes de protocoles de communication différents. Les spécialistes de la technique comprendront que ces environnements informatiques en réseau englobent ordinairement de nombreux types de configuration de système informatique, dont les ordinateurs personnels, les dispositifs de poche, les systèmes à multiprocesseur, les équipements grand public à microprocesseur ou programmables, les PC en réseau, les mini-ordinateurs, les ordinateurs centraux et autres.
Les formes de réalisation peuvent aussi être mises en oeuvre dans des environnements informatiques distribués où des tâches sont effectuées par des dispositifs de traitement locaux et distants qui sont en liaison (soit par des liaisons filaires, des liaisons radioélectriques, soit par une combinaison de liaisons filaires ou radioélectriques) par l'intermédiaire d'un réseau de communication. Dans un environnement informatique distribué, des modules de programmes peuvent être situés dans des dispositifs de mémorisation aussi bien locaux que distants. Un exemple de système pour mettre en oeuvre l'ensemble ou des parties des exemples de formes de réalisation pourraient comprendre un dispositif informatique polyvalent sous la forme d'un ordinateur, comportant un processeur, une mémoire système et un bus système, qui couple au processeur divers composants du système, dont la mémoire système. La mémoire système peut comprendre une mémoire morte (ROM) une mémoire vive (RAM). L'ordinateur peut aussi comprendre un lecteur de disque dur pour lire ou enregistrer des données sur un disque dur magnétique, un lecteur de disque magnétique pour lire ou enregistrer des données sur un disque magnétique amovible, et un lecteur de disque optique pour lire ou enregistrer des données sur un disque optique amovible tel qu'un CD-ROM ou d'autres supports optiques. Les lecteurs et leurs supports correspondants exploitables par ordinateur permettent un stockage rémanent d'instructions exécutables par ordinateur, de structures de données, de modules de programmes et d'autres données pour l'ordinateur. Les effets techniques du procédé exposé dans les formes de réalisation comprennent l'amélioration des performances et l'évolutivité de systèmes informatiques à multiprocesseur. Des messages volontairement lourds peuvent être échangés entre des coprocesseurs aussi efficacement que des messages volontairement légers. Le délai supplémentaire nécessaire à la transmission d'un message d'un coprocesseur à de multiples processeurs récepteurs est négligeable. Les performances de systèmes de traitement en temps réel avec de grands types de données et un degré élevé de variation entre les exigences de taille de différents messages, comme dans le cas de systèmes d'imagerie hyperspectrale, peuvent être améliorées par le procédé exposé dans les formes de réalisation. Dans un environnement informatique unique à au moins deux coprocesseurs, il est souvent nécessaire, au cours du traitement de 30 données entrées dans l'environnement informatique, de communiquer des données entre des coprocesseurs. Pour transmettre des données entre des coprocesseurs, un processeur émetteur doit envoyer un message à un processeur récepteur pour communiquer les données ou des informations sur les données au processeur récepteur. Dans un environnement informatique où la transmission de messages est le paradigme de communication, le processeur émetteur peut envoyer un message contenant les données à un ou plusieurs processeurs récepteurs. Selon une autre possibilité, dans un environnement informatique à système de mémoire partagée, le processeur émetteur peut envoyer, à un ou plusieurs processeurs récepteurs, un message qui code l'emplacement en mémoire accessible à tous les coprocesseurs où se trouvent les données. Ensuite, chaque coprocesseur peut accéder directement aux données en mémoire partagée.
La Figure 1 est un organigramme illustrant un procédé 10 de communication de données entre des coprocesseurs selon une forme de réalisation de l'invention qui utilise un hybride d'acheminement de message à mémoire partagée. Pour commencer, lors d'une étape 12, au cours de l'exécution d'une application dans un système à multiprocesseur, il peut être nécessaire à un coprocesseur dans un environnement informatique de communiquer un bloc de données particulier à au moins un autre coprocesseur. Le bloc de données aura une certaine taille finie déterminable, par exemple, par le nombre d'octets de mémoire nécessaires au codage numérique des données. Lors d'une étape 14, le processeur émetteur peut déterminer la taille des données à communiquer et comparer la taille à un seuil prédéterminé. Si, en 36, la taille des données à communiquer est inférieure ou égale au seuil prédéterminé, le processeur émetteur peut alors, au cours une étape 15, copier les données dans un message qui sera communiqué à un ou plusieurs processeurs récepteurs. Inversement, en 34, si la taille des données communiquer est supérieure au seuil prédéterminé, le processeur émetteur peut alors déterminer, au cours d'une étape 16, si les données se trouvent en mémoire partagée. Dans une forme de réalisation de l'invention, le seuil prédéterminé peut être codé en tant que paramètre statique comme dans un fichier de configuration. Le fichier de configuration peut être un fichier de texte ASCII codé avec des paramétrages initiaux couramment employés pour des applications, des serveurs et des systèmes d'exploitation et souvent écrit en langage de balisage tel que XML. Selon une autre possibilité, le seuil prédéterminé peut être communiqué à l'environnement informatique en tant que paramètre au moment de l'instanciation d'une application, voire être établi comme variable d'environnement du système d'exploitation de l'environnement informatique. Dans tous ces exemples est codé un paramètre statique qui identifie le seuil prédéterminé afin de déterminer si un bloc de données d'une taille particulière sera communiqué plus efficacement par mémoire partagée ou par acheminement de message. Dans une autre forme de réalisation de l'invention, le seuil prédéterminé peut être adaptable. Le processeur émetteur peut insérer un horodatage reposant sur un signal d'horloge global connu de tous les coprocesseurs quand il communique un message, puis le processeur récepteur peut analyser les délais pour déterminer s'il faut modifier le seuil prédéterminé. Les facteurs susceptibles d'affecter les délais et de modifier le seuil optimal comprennent la saturation du bus, la recherche de personnes, les interruptions et les vitesses d'horloges d'unités centrales.
En 40, si le processeur émetteur détermine que les données à communiquer sont stockées à un emplacement de mémoire inaccessible à un ou plusieurs processeurs récepteurs, le processeur émetteur peut alors, au cours d'une étape 18, transférer les données dans une région de mémoire partagée. Le processeur émetteur peut sauter l'étape de transfert de données dans une région de mémoire partagée si, en 38, le processeur émetteur détermine que les données à communiquer se trouvent déjà dans une région de mémoire partagée.
Le processeur émetteur peut ensuite, lors d'une étape 20, déterminer s'il existe un identifiant exclusif ; ainsi, celui-ci a été créé et attribué aux données à communiquer aux processeurs récepteurs. L'identifiant exclusif est un code attribué à un objet informatique tel qu'un bloc de données destiné à permettre à des environnements informatiques distribués d'identifier des informations d'une manière exclusive. Dans le contexte de la présente invention, l'identifiant exclusif est attribué aux données à communiquer de telle sorte qu'un processeur récepteur qui accède aux données via une mémoire partagée puisse déterminer si les données sont valides. Des données invalides peuvent résulter de problèmes de synchronisation et d'expiration par suite desquels de nouvelles données peuvent écraser d'anciennes données dans la région de mémoire partagée avant qu'un processeur récepteur n'accède aux anciennes données correspondant à l'identifiant exclusif. L'identifiant exclusif peut être l'une des mises en oeuvre d'identifiants universellement exclusifs (UUID) bien connus dans la technique de conception de logiciels. Selon une autre possibilité, l'identifiant exclusif peut être un horodatage pour coder un instant concernant les données, notamment celui où elles ont été enregistrées dans la région de mémoire partagée ou, en soi, l'instant où l'identifiant exclusif a été créé. En 42, si le processeur émetteur détermine qu'il n'existe pas d'identifiant exclusif pour les données à communiquer situées en mémoire partagée, le presseur émetteur peut alors, au cours d'une étape 21, créer un identifiant exclusif et l'ajouter dans la région de mémoire partagée, à l'emplacement des données. Le processeur émetteur peut sauter l'étape d'ajout d'un identifiant exclusif aux données dans une région de mémoire partagée si, en 44, le processeur émetteur détermine qu'un identifiant exclusif pour les données à communiquer existe déjà et se trouve dans une région de mémoire partagée. Une fois que le processeur d'émission a déterminé l'identifiant exclusif pour les données en mémoire partagée à communiquer, le processeur émetteur peut, lors d'une étape 22, copier l'identifiant exclusif dans la région de mémoire partagée pour le placer dans un message à envoyer au(x) processeur(s) émetteur(s). De plus, lors d'une étape 24, le processeur émetteur peut placer un pointeur dans le message, le pointeur étant une valeur indiquant une adresse en mémoire partagée qui situe les données à communiquer. Bien que le fait de placer un pointeur dans le message à communiquer soit une forme de réalisation préférée de l'invention, un environnement informatique spécifique tel que le type de système à mémoire partagée permet d'éviter de communiquer le pointeur directement du processeur émetteur au processeur récepteur. Par exemple, l'environnement informatique peut être configuré de façon que la mémoire partagée soit divisée d'une manière où l'emplacement des données à communiquer puisse être vérifié par le processeur récepteur en effectuant une opération arithmétique modulaire sur l'identifiant exclusif présent dans le message. Le message à communiquer à au moins un processeur récepteur peut avoir une copie des données du message comme lors d'une étape 15 ou peut contenir un pointeur d'un emplacement en mémoire partagée comme lors d'une étape 24. Quoi qu'il en soit, le processeur émetteur peut déterminer, lors d'une étape 28, si des métadonnées supplémentaires doivent être transmises dans le message. Si, en 46, le processeur émetteur décide d'ajouter des métadonnées supplémentaires dans le message, le processeur émetteur peut alors, au cours d'une étape 26, copier les métadonnées supplémentaires dans le message. Le processeur émetteur peut sauter l'étape de copie des métadonnées supplémentaires dans le message si, en 48, le processeur émetteur détermine qu'il n'y a pas de métadonnées disponibles ou nécessaires pour le message. Les métadonnées peuvent être n'importe quel jeu de données qui fournit des informations supplémentaires pour décrire les données à communiquer et pour permettre une communication des plus efficaces de ces données. Par exemple, les métadonnées peuvent contenir des informations de délais qui caractérisent le canal nécessaire pour transmettre les données du processeur émetteur à un processeur récepteur particulier. Dans un environnement informatique où les données peuvent représenter une image hyperspectrale formatable de plusieurs manières différentes en fonction de caractéristiques telles que le nombre de bandes spectrales, la résolution, les dimensions de l'image et l'ordre des bandes, les métadonnées peuvent coder le format spécifique de l' image hyperspectrale. Des informations supplémentaires caractérisant l'optique servant à acquérir des images, telles que le nombre F-stop et la sensibilité ISO, peuvent être codées comme métadonnées. Par ailleurs, l'historique du traitement, dont les transformées appliquées à l'image hyperspectrale, peut être mémorisé sous la forme de métadonnées.
Le processeur émetteur peut ensuite, lors d'une étape 30, transmettre le message au(x) processeur(s) récepteur(s). Le procédé se termine par une étape 32 où chaque processeur récepteur peut décoder le message pour soit déterminer directement les données si elles sont codées dans le message, soit extraire les données de leur emplacement en mémoire partagée si le message contient un identifiant et un pointeur exclusifs. De nombreux environnements informatiques peuvent bénéficier de l'invention décrite ci-dessus. Bien que les entités de traitement pour l'émission et la réception soient appelées coprocesseurs, l'invention s'applique tout autant à des processus, des processus légers au niveau de noyaux et des fibres. Parmi les mises en oeuvre matérielles convenant particulièrement à l'invention figurent les processeurs graphiques (GPU) et les processeurs multicoeurs, en raison du grand parallélisme de leur architecture de traitement.
Liste des repères 10 Procédé de communication de données entre des coprocesseurs 12 Etape initiale du procédé 10 14 Etape de détermination de la taille des données communiquer et de comparaison de la taille avec un seuil prédéterminé 15 Etape de copie des données dans un message 16 Etape de détermination de ce que les données se trouvent ou non en mémoire partagée 18 Etape de transfert des données dans une région de mémoire partagée 20 Etape de détermination de l'existence d'un identifiant exclusif 21 Etape de création d'un identifiant exclusif et d'ajout de celui-ci dans la région de mémoire partagée, l'emplacement des données 22 Etape de copie de l'identifiant exclusif présent dans la région de mémoire partagée pour le placer dans un message 24 Etape de mise en place d'un pointeur dans le message 26 Etape de copie des métadonnées supplémentaires dans le message 28 Etape de détermination de la nécessité de transmission de métadonnées supplémentaires dans le message Etape d'émission du message 32 Etape finale du procédé 10 34 La taille des données à communiquer est supérieure au 30 seuil prédéterminé 36 La taille des données à communiquer est inférieure ou égale au seuil prédéterminé 38 Les données à communiquer se trouvent déjà dans une région de mémoire partagée 40 Les données à communiquer sont enregistrées dans un emplacement en mémoire qui est inaccessible à un ou plusieurs processeurs récepteurs 42 Pour les données à communiquer, il n' existe pas d'identifiant exclusif situé en mémoire partagée 44 Un identifiant exclusif pour les données à communiquer existe déjà et se trouve dans une région de mémoire partagée 46 Ajouter des métadonnées supplémentaires dans le message 48 Pas de métadonnées supplémentaires disponibles ou nécessaires pour le message

Claims (7)

  1. REVENDICATIONS1. Procédé pour communiquer des données entre au moins deux coprocesseurs dans un environnement informatique unique dans lequel l'un des au moins deux coprocesseurs est un processeur émetteur et l'autre des au moins deux coprocesseurs est un processeur récepteur et l'environnement informatique unique comprend une mémoire accessible aux au moins deux coprocesseurs, le procédé comportant la détermination (14), dans le processeur émetteur, de la taille des données à communiquer, si la taille des données est inférieure ou égale (36) à une valeur seuil prédéterminée, l'ajout (15) des données dans un message et la transmission (30) du message au processeur récepteur, et si la taille des données est supérieure (34) à la valeur seuil prédéterminée, la transmission (24, 30) d'un pointeur au processeur récepteur, le pointeur désignant un emplacement des données dans la mémoire.
  2. 2. Procédé selon la revendication 1, dans lequel l'étape de transmission d'un pointeur au processeur récepteur est précédée d'une étape (18) de transfert des données à un emplacement dans la mémoire correspondant au pointeur si les données se sont pas déjà (16, 40) à l'emplacement.
  3. 3. Procédé selon la revendication 1, dans lequel l'étape (24, 30) de transmission d'un pointeur au processeur récepteur comprend l'étape (22) de transmission d'un identifiant exclusif au processeur récepteur (22), l'identifiant exclusif étant pré-ajouté aux données dans la mémoire à l'emplacement indiqué par le pointeur (21).
  4. 4. Procédé selon la revendication 3, dans lequel l'identifiant exclusif est un horodatage.
  5. 5. Procédé selon la revendication 1, dans lequel la valeur seuil prédéterminée est codée dans un fichier de configuration.
  6. 6. Procédé selon la revendication 1, dans lequel la valeur seuil prédéterminée repose sur le délai nécessaire à la transmission d'un message du processeur émetteur au processeur récepteur.
  7. 7. Procédé selon la revendication 1, dans lequel le processeur émetteur transmet le message à plus d'un processeur récepteur.
FR1450643A 2013-03-25 2014-01-27 Procede de transmission hybride de messages a memoire partagee Active FR3003665B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/849,716 US10069779B2 (en) 2013-03-25 2013-03-25 Method of hybrid message passing with shared memory

Publications (2)

Publication Number Publication Date
FR3003665A1 true FR3003665A1 (fr) 2014-09-26
FR3003665B1 FR3003665B1 (fr) 2017-12-08

Family

ID=50287402

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1450643A Active FR3003665B1 (fr) 2013-03-25 2014-01-27 Procede de transmission hybride de messages a memoire partagee

Country Status (7)

Country Link
US (1) US10069779B2 (fr)
JP (1) JP6431672B2 (fr)
CN (1) CN104077265B (fr)
BR (1) BR102014001786A8 (fr)
CA (1) CA2840450C (fr)
FR (1) FR3003665B1 (fr)
GB (1) GB2512443B (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560542B2 (en) * 2014-09-15 2020-02-11 Ge Aviation Systems Llc Mechanism and method for communicating between a client and a server by accessing message data in a shared memory
CN104917884B (zh) * 2015-05-22 2018-01-23 广东欧珀移动通信有限公司 一种数据传输方法及装置
JP6060239B1 (ja) 2015-10-21 2017-01-11 トレックス・セミコンダクター株式会社 基準電圧発生回路
US11128531B2 (en) * 2018-04-30 2021-09-21 Hewlett Packard Enterprise Development Lp Systems and methods for aggregate bandwidth and latency optimization
CN109547531B (zh) * 2018-10-19 2021-04-09 华为技术有限公司 数据处理的方法、装置和计算设备
US11838363B2 (en) 2018-11-05 2023-12-05 Netapp, Inc. Custom views of sensor data
CN110309098A (zh) * 2019-06-27 2019-10-08 上海金卓网络科技有限公司 一种处理器间的交互控制方法、装置、设备及存储介质
CN112416629B (zh) * 2020-12-10 2023-07-25 深圳市富途网络科技有限公司 数据互通方法、系统及存储介质
CN115145859B (zh) * 2022-06-27 2025-09-23 曙光信息产业(北京)有限公司 一种数据传输方法、装置、电子设备和存储介质
CN116033531B (zh) * 2022-12-30 2025-10-28 伟光有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139201A (ja) 1992-04-14 1994-05-20 Yaskawa Electric Corp 共有メモリを介する情報受渡し方法
JPH09198361A (ja) 1996-01-23 1997-07-31 Kofu Nippon Denki Kk マルチプロセッサシステム
US6148329A (en) * 1998-07-20 2000-11-14 Unisys Corporation Method and system for maintaining the format of messages in a messaging system database
US6601089B1 (en) * 1999-06-21 2003-07-29 Sun Microsystems, Inc. System and method for allocating buffers for message passing in a shared-memory computer system
US6928471B2 (en) * 2001-05-07 2005-08-09 Quest Software, Inc. Method and apparatus for measurement, analysis, and optimization of content delivery
US6941467B2 (en) * 2002-03-08 2005-09-06 Ciphertrust, Inc. Systems and methods for adaptive message interrogation through multiple queues
US7506032B1 (en) 2004-03-25 2009-03-17 Sun Microsystems, Inc. Transfer of arbitrary size messages over memory based interconnects
US7519669B2 (en) * 2004-04-30 2009-04-14 Sap Aktiengesellschaft Prioritizing producers and consumers of an enterprise messaging system
US7532890B2 (en) * 2005-04-01 2009-05-12 Rockliffe Systems Content-based notification and user-transparent pull operation for simulated push transmission of wireless email
US7281118B2 (en) 2005-08-05 2007-10-09 International Business Machines Corporation Sending thread message generated using DCR command pointed message control block storing message and response memory address in multiprocessor
US8141102B2 (en) 2008-09-04 2012-03-20 International Business Machines Corporation Data processing in a hybrid computing environment
JP2011170476A (ja) 2010-02-17 2011-09-01 Mitsubishi Electric Corp データ処理システム及びデータ処理方法及びプログラム
US8676155B2 (en) * 2010-09-24 2014-03-18 At&T Intellectual Property I, L.P. Conditional message forwarding functions
US8429141B2 (en) * 2011-03-01 2013-04-23 Xerox Corporation Linguistically enhanced email detector
JP5598493B2 (ja) * 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法

Also Published As

Publication number Publication date
US10069779B2 (en) 2018-09-04
JP2014186718A (ja) 2014-10-02
CN104077265A (zh) 2014-10-01
CA2840450C (fr) 2020-08-04
CA2840450A1 (fr) 2014-09-25
GB2512443A (en) 2014-10-01
GB201401083D0 (en) 2014-03-12
CN104077265B (zh) 2019-03-08
JP6431672B2 (ja) 2018-11-28
GB2512443B (en) 2017-11-08
FR3003665B1 (fr) 2017-12-08
US20140289341A1 (en) 2014-09-25
BR102014001786A2 (pt) 2016-06-14
BR102014001786A8 (pt) 2021-08-31

Similar Documents

Publication Publication Date Title
FR3003665A1 (fr) Procede de transmission hybride de messages a memoire partagee
JP6856772B2 (ja) 信頼できる実行環境において実行されるスマートコントラクト動作に基づくブロックチェーンデータの処理
CA3061265C (fr) Traitement et stockage de donnees de chaine de blocs dans un environnement d'execution securise
US11895142B2 (en) Computer-based platforms configured for automated early-stage application security monitoring and methods of use thereof
US20200204618A1 (en) Method and system for addressing and executing serverless functions
CN104461491B (zh) 一种Hybrid组件的运行方法和系统
US10805067B1 (en) Doubly linked blockchain
CN111917864A (zh) 一种业务校验的方法及装置
FR3018620A3 (fr) Creation de regles pour une utilisation dans des systemes de gestion des tiers
FR2975250A1 (fr) Procede et systeme pour une gestion securisee de services de documents xml en ligne grace a un chiffrement asymetrique conservant la structure
FR3025909A3 (fr) Audit de video sur le web
EP3033857B1 (fr) Authentification de code binaire
CN104219198A (zh) 一种WebApp的防篡改方法
EP3327702A1 (fr) Dispositif de calcul sécurisé, procédé associé et programme
US20150100781A1 (en) Content gathering using shared key
CN111447170A (zh) 数据处理方法及其系统、计算机系统及计算机可读介质
CN113343312A (zh) 基于前端埋点技术的页面防篡改方法及系统
US20240314195A1 (en) Trace context over file transfer communications
EP2553584A1 (fr) Procede, programme d'ordinateur et dispositif de validation d'execution de taches dans des systemes informatiques evolutifs
EP3216189B1 (fr) Délégation d'intermédiation sur un échange de données chiffrées
FR2994782A1 (fr) Procede et systeme d'execution de protocoles de chargement de donnees
EP3032423B1 (fr) Méthode et système pour la validation de scénarios de test de performance
CN116523558A (zh) 电子礼券处理方法、装置、存储介质及电子设备
EP2674860A1 (fr) Procédé de traitement de données par un module de navigation
CH710624B1 (fr) Méthode de sécurisation et de vérifiabilité d'un vote électronique.

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLSC Publication of the preliminary search report

Effective date: 20161230

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13