FR2608807A1 - Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme - Google Patents

Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme Download PDF

Info

Publication number
FR2608807A1
FR2608807A1 FR8718115A FR8718115A FR2608807A1 FR 2608807 A1 FR2608807 A1 FR 2608807A1 FR 8718115 A FR8718115 A FR 8718115A FR 8718115 A FR8718115 A FR 8718115A FR 2608807 A1 FR2608807 A1 FR 2608807A1
Authority
FR
France
Prior art keywords
processor
information
processors
load
load balancing
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
FR8718115A
Other languages
English (en)
Other versions
FR2608807B1 (fr
Inventor
Jiro Naganuma
Naganuma Jiro
Takeshi Ogura
Ogura Takeshi
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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
Priority claimed from JP61303412A external-priority patent/JPH0743650B2/ja
Priority claimed from JP12733887A external-priority patent/JP2587830B2/ja
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of FR2608807A1 publication Critical patent/FR2608807A1/fr
Application granted granted Critical
Publication of FR2608807B1 publication Critical patent/FR2608807B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/313Logic programming, e.g. PROLOG programming language

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Abstract

SYSTEME MULTIPROCESSEUR POUR LE TRAITEMENT D'UNE CHARGE DE TRAVAIL DONNEE ECRITE DANS UN LANGAGE DE PROGRAMMATION PREDETERMINE, CARACTERISE EN CE QU'IL COMPREND : - UNE PLURALITE DE PROCESSEURS ET UN RESEAU INTER-CONNECTANT LESDITS PROCESSEURS, - CHACUN DESDITS PROCESSEURS COMPRENANT : A. DES PREMIERS MOYENS DE MEMORISATION D'INFORMATIONS-SYSTEME REPRESENTANT DES CARACTERISTIQUES DUDIT SYSTEME MULTIPROCESSEUR, ET B. DES SECONDS MOYENS POUR SELECTIONNER DE MANIERE AUTOMATIQUE ET DYNAMIQUE UN SEGMENT SPECIFIQUE DE LA CHARGE INITIALE A PARTIR DE LADITE CHARGE DONNEE EN UTILISANT LESDITES INFORMATIONS-SYSTEME DANS TRANSMISSION D'INFORMATIONS ENTRE LESDITS PROCESSEURS D'OU IL RESULTE QU'UN EQUILIBRAGE DE CHARGE INITIALE EST OBTENU DANS LEDIT SYSTEME MULTIPROCESSEUR.

Description

SYSTEME MULTI PROCESSEUR ET PROCEDE D'EQUILIBRAGE DE
CHARGE POUR LEDIT SYSTEME
La présente invention concerne de manière générale un système multi processeur et un procédé d'équilibrage de charge destinée audit système, et particulièrement à un système multi processeur disposant d'une pluralité
de processeurs et d'un réseau, et d'un procédé de trai-
tement d'équilibrage de charge dans le système multi processeur, dans lequel une charge de travail donnée est répartie entre une pluralité de segments de charge,
chacun de ces segments de charge étant attribué dynami-
quement à un processeur prédéterminé tout en gérant le
système multi processeur.
Le système multi processeur classique dispose d'une pluralité de processeurs et d'un réseau. Dans le cas o
une charge donnée, écrite dans un langage de program-
mation logique (par exemple PROLOG) est exécutée en parallèle dans le système multi processeur classique, la charge donnée (ou une tâche initiale) est répartie entre une pluralité de segments de charge initiale, qui sont attribués à tous les processeurs dans le cadre d'un étage d'équilibrage de charge initiale. De manière plus *25 spécifique, un premier segment de charge initiale est attribué à un premier processeur, par le biais duquel on
obtient des données représentatives du résultat du trai-
tement effectué sur le premier segment de charge ini-
tiale, et les données en question doivent être trans-
mises à un second processeur qui commence à traiter un second segment de charge initiale de ces données en utilisant lesdites informations. Ainsi, les données
représentatives du résultat du traitement dans le pro-
cesseur en cours de fonctionnement doivent être trans-
mises au processeur suivant, qui est inoccupé au moment présent, mais qui commencera à traiter le segment de
charge initiale desdites données en obéissant aux ins-
tructions des données sus-mentionnées. Comme ci-dessus décrit, les segments de charge initiale sont attribués
séquentiellement et à tour de rôle aux processeurs. Ain-
si, le système multi processeur classique a-t-il besoin
d'un temps de traitement prolongé avant la mise en exé-
cution de ladite charge en parallèle au sein dudit sys-
tème.
Au moment o la tâche initiale est attribuée à un processeur, l'ensemble des processeurs inoccupés dans le
cadre du système multi processeur ne travaille pas.
Ainsi, un processeur doit répartir la tâche initiale donnée en une pluralité de segments de charge initiale qui doivent être attribués aux autres processeurs. De plus, le système multi processeur classique doit fournir le réseau permettant la transmission d'une information concernant la charge initialement attribuée et devant
être répartie. Pour cette raison, le système multi pro-
cesseur classique ne peut effectuer un équilibrage de
charge initiale de la tâche initiale à grande vitesse.
A l'origine, il est possible d'obtenir une amélioration des performances résultant d'un effet de traitement en
parallèle, et destiné à améliorer les temps de traite-
ment (effet ci-après appelé simplement effet parallèle) lorsqu'une charge donnée est exécutée en parallèle dans
le système multi processeur classique.
Cependant, le système multi processeur classique souf-
fre d'un problème dans la mesure o il n'est pas pos-
sible d'obtenir un tel effet parallèle dans les faits,
et ce pour les raisons ci-dessus décrites.
De plus, ledit processeur unique sus-mentionné, auquel est attribué la tâche initiale doit transmettre une certaine part des informations contenues dans ladite tâche à tous les autres processeurs; il en résulte que la quantité d'informations à transmettre augmente ainsi
en volume. Ainsi, le système multi processeur clas-
sique souffre-t-il d'un autre problème, à savoir que des
capacités élevées de transfert de données à grande vi-
tesse et la possibilité de transfert de grandes quan-
tités de données sont nécessaires pour le réseau dans
le contexte d'un système multi processeur classique.
Par ailleurs, une description détaillée est four-
nie dans le contexte des problèmes sus-mentionnés, en considérant que le langage de programmation logique (par exemple PROLOG) est exécuté dans le cadre du système
multi processeur classique.
Dans un processus permettant l'exécution séquen-
tielle du PROLOG (illustré dans la figure 2), une prio-
rité prédéterminée (soit par exemple une recherche de premier niveau) est attribuée de telle manière que les branches sont explorées de haut en bas et de gauche à droite dans le cadre d'un arbre d'inférence (ou un arbre
de controle) du PROLOG. Lorsque le système ne peut trou-
ver la branche correcte (ou la branche souhaitée) dans le cours de la recherche, le système retourne au noeud
précédent et explore toutes les branches qui s'y rat-
tachent de manière à déterminer la branche correcte.
Au contraire, dans le cadre d'un autre procédé d'exécution en parallèle du PROLOG, une pluralité de processeurs explore simultanément une certaine section ou toutes les sections de l'arbre d'inférence de manière à découvrir les branches correctes en accord avec une
première exploration en largeur prédéterminée. Ce pro-
cédé s'appelle une exécution en parallèle OU, dans la-
quelle on divise toutes les branches de l'arbre d'in-
férence en des sections multiples (ci-après appelées procédé OU) chacune comportant un certain nombre de branches, et tous les procédés OU sont respectivement
attribués aux processeurs inoccupés lors de l'attribu-
tion de la tâche initiale au système. Dans ce cas, une information nécessaire pour exécuter chaque traitement
OU doit être transmise au processeur inoccupé correspon-
dant.
Selon la description ci-dessus, un processeur auquel la
tâche initiale a été attribuée doit répartir la tâche initiale donnée en une pluralité de segments de charge
initiale qui doivent être attribués aux autres proces-
seurs inoccupés, lors de l'étage initial d'équilibrage
de charge. Aussi, est-il impossible que le système clas-
sique effectue l'équilibrage de charge initiale à grande
vitesse.
Cependant, à l'issu de l'équilibrage de charge effectué entre le premier et le deuxième processeur dans le cadre du système multi processeur, il est souhaitable
que le premier et le deuxième processeurs puissent ef-
fectuer indépendamment des traitements respectifs sans que des données représentatives d'un environnement de travail du premier processeur ne soient transmises au
deuxième processeur.
Afin d'effectuer l'équilibrage de charge sus-men-
tionné dans le cadre d'un système multi processeur clas-
sique, un environnement de travail prédéterminé, néces-
saire pour le second processeur doit être extrait (ou choisi), des environnements de travail obtenus par l'exécution de traitements prédéterminés dans le cadre
du premier processeur avant que ne soit effectué l'é-
quilibrage de charge dans le premier processeur, et ledit environnement de travail prédéterminé, doit être
transmis au second processeur.
En d'autres termes, le sus-dit environnement de
travail prédéterminé est identique par rapport à l'in-
formation obtenue en exécutant les traitements prédéter-
minés autres que ledit procédé d'équilibrage de charge
dans le cadre du premier processeur. Un tel environne-
ment de travail prédéterminé est nécessaire pour le second processeur dans le cas o une certaine proportion
de la charge de travail à exécuter dans le premier pro-
cesseur est partagée avec, et exécutée par le second
processeur. De plus, la quantité d'informations repré-
sentatives des environnements de travail doit être aug-
mentée au fur et à mesure que le système traite ladite charge. Pour cette raison, une assez grande quantité
d'informations doit être transmise aux autres proces-
seurs dans le cas o l'on procède à l'équilibrage de charge après qu'un long traitement ait été exécuté dans
chaque processeur.
Selon ce qui est décrit ci-dessus, le premier pro-
cesseur doit arrêter d'exécuter le traitement original et doit extraire l'environnement de travail prédéterminé
nécessaire à l'équilibrage de charge à partir des en-
vironnements de travail concernés (lors d'une étape de
génération de charge), et c'est alors que ledit environ-
nement de travail prédéterminé, chargé d'une importante quantité d'informations, doit être transféré au deuxième processeur. Par la suite, le second processeur doit stocker les informations qui lui ont été transmises (dans le cours d'une étape de mémorisation de charge)
afin de continuer le traitement original desdites infor-
mations. En détail, une conversion de données doit être exigée pour le transfert desdites informations par l'u- tilisation du réseau. Dans la présente demande, le sens de "conversion de données" sera considéré comme étant inclu dans les sens attribués aux termes "génération de
charge" et "mémorisation de charge" sus-mentionnés.
Comme on peut le voir dans la figure 1, un certain temps système doit inévitablement être accompagné de l'équilibrage de charge sus-mentionné dans un système
multi processeur classique. Dans la figure 1, le pre-
mier processeur ne peut éviter l'apparition d'un premier temps système, et le second processeur non plus ne peut
éviter la survenance d'un second temps système.
En raison du temps système qui accompagne l'équi-
librage de charge (ou en particulier en raison de l'ar-
rêt du traitement dans le premier processeur), aucun processeur ne peut montrer la capacité de traitement nécessaire en fonction de toutes les unités de temps retenues. De plus, l'équilibrage de charge doit être
effectué entre processeurs selon une chronologie arbi-
traire et asynchrone. Ainsi, le système multi pro-
cesseur classique souffre-t-il du problème suivant: il
n'est pas possible de démontrer l'effet parallèle sus-
décrit. Cet effet parallèle peut être évalué par la capacité totale qu'il est possible d'obtenir à partir de la formule suivante: (capacité totale) = (capacité de traitement de chaque processeur) x (nombre de processeurs pouvant fonctionner
en parallèle en vue de traiter la charge donnée).
Ainsi, le système conventionnel doit-il avoir besoin d'un réseau extrêmement onéreux, capable de transférer
une masse importante d'informations selon une chrono-
logie arbitraire et asynchrone. En vue de transférer la quantité importante d'informations, le réseau est oc- cupé pendant de longues périodes de temps, ainsi, il
devient impossible d'effectuer correctement l'équili-
brage de charge entre les processeurs. Le système clas-
sique souffre donc d'un problème dans la mesure o un
déséquilibrage de charge doit inévitablement se pro-
duire. En comparaison avec une récente amélioration de la vitesse de traitement du processeur, l'amélioration de la vitesse de transfert du réseau dans le cadre du système multi processeur est relativement faible. On
crée ainsi une tendance à augmenter les temps de com-
munication du réseau plus que ceux des processeurs. Dans ce cas, le problème sus-mentionné devient sérieux. Au fur et à mesure que le nombre de processeurs dans le
système multi processeur augmente, cette tendance de-
vient remarquable.
Ensuite, une description du problème sus-mentionné
est donnée de manière concrète dans le cadre de la fi-
gure 2, lorsque l'on exécute le PROLOG en parallèle dans
le système multi processeur.
Dans le cas o le premier processeur effectue l'é-
quilibrage de charge sur le second processeur dans le cadre de l'exécution parallèle OU ci-dessus décrite, le premier processeur divise un traitement OU provenant de
toutes les branches de l'arbre d'inférence, et le trai-
tement OU ainsi divisé est attribué au second proces-
seur. Dans ce cas, les données de transmission (données devant être transmises du premier processeur au second
processeur) peuvent être classées sous l'entête de don-
nées de transmission primaire et secondaire. Les données de transmission primaire représentent les informations
du traitement OU divisé. Les données de transmission se-
condaire représentent les informations du traitement OU
divisé plus une autre catégorie d'informations néces-
saires pour l'exécution du traitement OU divisé.
Le premier processeur doit transférer les sus-dites
données de transmission secondaire au deuxième proces-
seur lorsque les premiers et seconds processeurs exécu-
tent indépendamment ces traitements respectifs après un
stade d'équilibrage de charge. Et ce parce que le deuxi-
ème processeur doit se référer à l'environnement de travail du premier processeur, lorsque ledit premier processeur transmet au second processeur les premières données de transmission au lieu des deuxièmes données de transmission. Cependant, les deuxièmes données de transmission doivent inclure des informations représentatives de la quantité importante d'informations de l'environnement de travail du premier processeur, qui est nécessaire pour l'exécution du traitement OU divisé. Cet environnement de travail dans l'exécution du PROLOG comprend "des
données de liaison" représentatives d'une relation d'in-
terconnection entre les variables et les valeurs et "des informations de controle" pour controler le déroulement
du PROLOG, par exemple.
L'environnement de travail sus-mentionné est créé par le premier processeur avant la mise en oeuvre de l'équilibrage de charge. Le second processeur nécessite un tel environnement de travail pour pouvoir exécuter le traitement OU divisé après l'exécution de l'équilibrage
de charge. Et ce parce que, lorsque le deuxième pro-
cesseur obtient indépendamment une solution (ou un ré-
sultat de traitement) dans le cadre de la tâche ini-
tiale, en effectuant le traitement OU divisé, le second
processeur peut avoir besoin de l'ensemble des informa-
tions de liaison produites par le premier processeur entre l'instant o la tâche initiale est attribuée, et un instant subséquent dans lequel le premier processeur commence à effectuer l'équilibrage de charge. De plus, la quantité de telles données de liaison doit augmenter presque en proportion avec le temps de traitement. Pour cette raison, le premier processeur doit transférer une quantité assez importante d'informations représentatives de l'environnement de travail dudit premier processeur
au second processeur, lorsque le premier processeur ef-
fectue l'équilibrage de charge pour le second processeur
à l'issue d'un temps de traitement prolongé.
Dès lors que le premier processeur doit diviser le traitement OU, et transmettre l'importante quantité d'informations représentatives de l'environnement de travail dudit premier processeur, chaque fois que ledit premier processeur effectue l'équilibrage de charge sur le deuxième processeur, il sera nécessaire d'interrompre
de manière intermittente le traitement original du pre-
mier processeur.
D'autre part, dès lors que le deuxième processeur reçoit l'environnement de travail du premier processeur
à chaque exécution de l'équilibrage de charge, le trai-
tement original du deuxième processeur doit être inter-
rompu afin de permettre la réception de l'importante quantité d'informations représentant l'environnement de travail du premier processeur ainsi que la mémorisation
de l'information ainsi transmise.
Donc, chaque processeur ne pourra démontrer sa capacité de traitement. De plus, l'équilibrage de charge est nécessaire entre les processeurs dans une situation
de chronologie arbitraire et asynchrone. Ainsi, le sys-
tème multi processeur souffre-t-il du problème issu du fait qu'il est impossible d'obtenir l'effet parallèle
ci-dessus décrit.
De plus, le système classique exige un réseau ex-
trémement onéreux pour permettre la transmission d'une importante quantité d'informations dans le cadre de la chronologie arbitraire et asynchrone. Dans le présent cas, le réseau est occupé longuement pour permettre la transmission d'une importante quantité d'informations,
ainsi, il devient presque impossible d'effectuer l'équi-
librage de charge entre processeurs. Pour cette raison,
le système multi processeur classique souffre du pro-
blème résultant du déséquilibrage de charge qui se pro-
duit selon la description ci-dessus.
Le problème sus-mentionné devient sérieux dans le cadre d'une machine à inférence séquentielle récemment développée (ou machine PROLOG) qui peut exécuter elle même l'inférence séquentielle à grande vitesse. Ceci résulte du fait que lorsque le système multi processeur gère un millier de machines de ce genre (c'est-à-dire de processeurs), et plus encore en parallèle, le système classique entraine une tendance se traduisant par le fait qu'une amélioration de la vitesse de transfert des données du réseau devient plus faible que celle de la
vitesse de traitement de chaque machine ci-dessus décri-
te. Au fur et à mesure qu'augmente le nombre de proces-
seurs dans le système multi processeur, la tendance sus-
mentionnée devient de plus en plus remarquable.
La machine d'inférence séquentielle de 1 MLIPS
(c'est-à-dire un million d'inférences logiques par se-
conde) produit l'environnement de travail qui contient environ 5 méga mots d'informations (dans le cas de quarante bits/mot). Par exemple, il sera nécessaire de disposer d'un interface série de 10 MBPS (c'est-à-dire
mégas bits par seconde) entre deux processeurs ad-
jacents dans le réseau qui interconnecte toutes les machines d'inférence séquentielle disposées, au nombre de mille, dans le système multi processeur. Dans ce cas,
il est possible de transférer 0,25 méga mots d'informa-
tions (nombre obtenu en divisant 10 MBPS par 40 bits/-
mot) par seconde, représentant l'environnement de tra-
vail entre deux processeurs adjacents.
Dans ce cas, le temps de traitement pour l'exécu-
tion de l'inférence divisé par le temps de communication du réseau devient égal à 1/20, ladite valeur 20 étant obtenue en divisant 5 méga mots par 0,25 méga mots. En raison de l'équilibrage de charge (ou en raison de la transmission d'une importante quantité d'informations en particulier), la machine d'inférence séquentielle
(c'est-à-dire le processeur) doit interrompre l'exécu-
tion du traitement d'inférence original pendant une période de temps prolongée. Ainsi, la capacité apparente de traitement de la machine d'inférence séquentielle
doit-elle être réduite.
Dès lors que les processeurs, qui fonctionnent, et le réseau sont occupés à transmettre les informations représentatives des environnements de travail pendant
une longue période de temps, il devient impossible d'ef-
fectuer l'équilibrage de charge nécessaire, de telle ma-
nière que la disponibilité réelle du processeur doit
être révisée en baisse. Ainsi, l'effet parallèle im-
pliqué au système multi processeur doit être révisé en
baisse selon ce qui est expliqué ci-dessus.
Un objectif primordial de la présente invention
consiste donc à permettre un procédé de traitement d'é-
quilibrage de charge dans un système de multi proces-
seur, qui pourra atteindre un effet parallèle élevé, en effectuant l'équilibrage de charge initiale de la tâche
initiale à grande vitesse lorsque le langage de program-
mation logique est exécuté en parallèle dans le système
multi processeur.
Un autre objet de la présente invention consiste à
proposer un procédé de traitement d'équilibrage de char-
ge dans un système multi processeur, qui réduise de
manière significative la quantité d'informations trans-
mise entre les processeurs, afin d'effectuer l'équili-
brage de charge à grande vitesse, et sans interruption
intermittente du traitement original de chaque proces-
seur, afin que l'on puisse obtenir un effet parallèle élevé, même lorsque l'on adapte un réseau d'un coût
raisonnable au système multi processeur.
Dans un premier aspect de cette invention, un sys-
tème multi processeur est proposé pour le traitement
d'une charge donnée, écrite dans un langage de program-
mation prédéterminé, caractérisé en ce qu'il comprend: - une pluralité de processeurs et un réseau pour interconnecter lesdits processeurs, - chacun des processeurs comprenant:
a.des premiers moyens de mémorisation d'informa-
tions système représentant des caractéristiques du système multi processeur, et b.des seconds moyens de sélection automatique et dynamique d'un segment spécifique de la charge initiale à partir de la charge donnée en faisant appel aux informations-système, sans transmission d'informations, entre les processeurs; d'o il résulte qu'on obtient un équilibrage de charge
initiale dans le système multi processeur.
Dans un deuxième aspect de l'invention, on propose un système multi processeur pour le traitement d'une charge donnée écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend: - une pluralité de processeurs et un réseau pour interconnecter lesCits processeurs - chacun des processeurs comprenant: a.un premier moyen pour générer une information historique, dont le volume est inférieur à celui d'une information représentant l'environnement de travail total d'un processeur source tout en effectuant le traitement d'un segment de charge spécifique attribué à chaque processeur; b.un second moyen pour permettre la transmission de l'information historique à un processeur récepteur, tout en travaillant dans le cadre du système multi processeur,
c.des troisièmes moyens de reproduction de l'en-
vironnement de travail du processeur source met-
tant en oeuvre l'information historique transmise à partir d'un processeur source, et
d.des quatrièmes moyens pour effectuer le traite-
ment d'un segment de charge spécifique en utili-
sant l'environnement de travail reproduit du pro-
cesseur source,d'o il résulte qu'un équilibrage de charge est obtenu au niveau du système multi processeur. Dans un troisième aspect de l'invention, on propose un procédé d'exécution d'équilibrage de charge dans un système multi processeur, équipé d'une pluralité de
processeurs et d'un réseau interconnectant lesdits pro-
cesseurs, auquel est attribuée une charge écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes:
- mémoriser des informations-système représenta-
tives des caractéristiques du système multi processeur,
- sélectionner un segment de charge spécifique ini-
* tiale, pour chaque processeur à partir de la charge donnée, en utilisant les informations-système, sans transfert d'informations automatique et dynamique entre processeurs, et - traiter indépendamment le premier segment de charge initiale dans chaque processeur, d'o il résulte qu'un équilibrage de charge initiale est obtenu dans le
système multi processeur.
Dans un quatrième aspect de l'invention, on propose un procédé d'exécution d'équilibrage de charge dans un
système multi processeur ayant une pluralité de proces-
seurs et un réseau interconnectant lesdits processeurs, auquel est attribuée une charge écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes: - générer une information historique dans un pre- mier processeur,dont le volume est inférieur à celui
d'une information représentant l'ensemble de l'environ-
nement de travail du premier processeur, alors que le premier processeur traite un premier segment de charge spécifique à lui attribuer, transmettre l'information historique du premier
processeur au second processeur tout en gérant le sys-
tème multi processeur, - reproduire l'environnement de travail du premier
processeur dans le second processeur au moyen de l'in-
formation historique transmise dynamiquement à partir du premier processeur, et - traiter un segment de charge spécifique du second processeur dans le cadre dudit second processeur en
utilisant l'environnement de travail reproduit du pre-
mier processeur, d'o il résulte qu'un effet d'équili-
brage de charge est obtenu entre le premier et le second processeur, et un segment partiel de charge du premier
processeur est partagé avec le second processeur.
Dans un cinquième aspect de l'invention, on propose un procédé d'exécution d'équilibrage de charge dans un
système multi processeur équipé d'une pluralité de pro-
cesseurs et d'un réseau interconnectant lesdits proces-
seurs, auquel est attribué une charge écrite, dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes:
- mémoriser des informations-système représen-
tatives des caractéristiques du système multi proces-
seur,
- sélectionner un premier segment de charge spéci-
fique pour chaque processeur dars la charge attribuée, par l'utilisation des informations-système, sans trans- mission automatique et dynamique d'informations entre processeurs, - exécuter ledit segment de manière indépendante du
segment initial de charge spécifique dans chaque proces-
seur, d'o il résulte que l'on obtient un équilibrage de charge initiale dans le système multi processeur,
- générer une information historique dans un pre-
mier processeur, dont le volume est plus réduit que celui d'un ensemble d'informations représentatif de l'ensemble de l'environnement de travail du premier processeur alors que le premier processeur exécute un segment de charge spécifique qui lui est attribué, - transmettre l'information historique à partir du premier processeur à destination d'un second processeur pendant le fonctionnement du système multi processeur, reproduire l'environnement de travail du premier processeur dans le cadre d'un second processeur par l'utilisation de l'information historique transmise dynamiquement à partir du premier processeur,et
- exécuter un segment spécifique de charge du se-
cond processeur dans ledit second processeur par l'u-
tilisation de l'environnement de travail reproduit du premier processeur, d'o il résulte que l'on obtient un
équilibrage de charge entre le premier et le second pro-
cesseur, et le partage d'un segment de charge partiel
du premier processeur avec le second processeur.
D'autres objets et avantages de la présente inven-
tion apparaitront au cours de la description ci-dessous, description qui se réfère aux dessins annexés, dans
lesquels des formes de réalisation préférées de la pré-
sente invention sont clairement illustrées.
La figure 1 présente des diagrammes de temps pour expliquer la résultante inévitable en temps système de l'équilibrage de charge dans un système multi processeur classique.
La figure 2 illustre un exemple d'un arbre d'in-
férence représentant une solution en langage PROLOG.
La figure 3 est un schéma fonctionnel illustrant un mode de réalisation pour un système multi processeur
complet selon la présente invention.
La figure 4 est un schéma fonctionnel illustrant une première réalisation du processeur qui constitue le
système multi processeur selon la présente invention.
Les figures 5 et 6 illustrent des arbres d'infé-
rence pour expliquer l'équilibrage de charge initiale de
la tâche initiale traitée dans le système multi pro-
cesseur selon la présente invention.
Les figures 7 et 8 sont des schémas fonctionnels illustrant l'un et l'autre une seconde réalisation du processeur dans le cadre du système multi processeur
selon la présente invention.
La figure 9 est une illustration d'une partie d'ar-
bre d'inférence du langage de programmation logique pour expliciter un processus d'élaboration pour produire une information historique (représentée par des données de trois mots ou de cinq mots) à transférer dans le premier processeur.
La figure 10 illustre en partie un arbre d'infé-
rence pour expliquer un processus de reproduction des- tiné à la reproduction de l'environnement de travail nécessaire par l'utilisation de l'information historique transférée (représentée par des données de trois mots)
en direction du second processeur.
La figure 11 illustre en partie un arbre d'infé-
rence pour expliquer un processus de reproduction pour reproduire l'environnement de travail nécessaire par l'utilisation de l'information historique transférée (représentée par des données de cinq mots) en direction
du second processeur.
La figure 12 illustre en partie un arbre d'infé-
rence pour expliquer un processus de reproduction du
deuxième processeur, pour la reproduction de l'envi-
ronnement de travail nécessaire par l'utilisation de l'information historique transférée représentée par des données de (1 + 2n) mots répondant à des temps "n" pour
effectuer l'équilibrage de charge dans le premier pro-
cesseur.
En se référant aux dessins, dans lesquels des ré-
férences semblables désignent des parties semblables ou correspondantes à travers plusieurs vues, la figure 3 est un schéma fonctionnel illustrant la constitution dans son ensemble d'un système multi processeur (1) selon la présente invention. Le système multi processeur (1) (entouré de pointillés) constitue un réseau (entouré
par des lignes pointillées) et une pluralité de proces-
seurs PRO & PRn (o "n" représente un nombre entier).
Ces processeurs PRO à PRn sont interconnectés au moyen du réseau. La présente invention met en évidence chaque processeur plûtot que le réseau, et c'est ainsi que la
description du réseau sera omise dans la présente de-
mande.
Dans une première forme de réalisation une descrip-
tion de la constitution d'un premier mode de réalisa-
tion du processeur PRi (ou "i" indique un nombre entier
entre 1 et "n") est donnée en liaison avec la figure 4.
Dans la figure 4, chaque processeur PRi comprend un
registre Rpi pour la mémorisation de données représenta-
tives d'un identificateur de processeur pi, un registre Rpn pour stocker les données représentatives d'un nombre pn de processeurs (qui sont ciaprès appelés processeurs affectables) qui sont assujettis à l'équilibrage de charge initiale de la tâche initiale, un compteur Cpc
pour dénombrer un nombre pc des branches situées à cha-
que noeud (par exemple lors de chaque traitement pour
rechercher la branche souhaitée en cours de l'équili-
brage de charge initiale), une section drapeau F pour mémoriser un drapeau destiné à indiquer si l'équilibrage de charge initiale a été effectué ou pas, une section d'opérations (11) pour effectuer les opérations ainsi
que les décisions qui seront décrites ci-après, une mé-
moire programme (12) pour stocker les programmes écrits dans le langage de programmation logique et devant être
exécutés, et une mémoire de travail (13) pour le stoc-
kage des données représentatives des environnements de
travail qui sont utilisés pour exécuter les programmes.
Ensuite, une description est donnée dans le domaine
d'une procédure stratégique pour l'exécution du trai-
tement OU dans chaque processeur PRi en liaison avec la figure 5. La figure 5 illustre une procédure stratégique pour effectuer l'équilibrage de charge initiale dans le cas o le nombre de processeurs initialement affectables est de 12 (douze). Dans la figure 5, chacun des ca- ractères pO à pli, désigne chacun des identificateurs pi
des 12 processeurs.
Dans la description suivante un chiffre id repré-
sentant la profondeur d'inférence du langage logique de programmation varie successivement "0","1"l,"2",... au
fur et à mesure que le niveau d'inférence s'accroit.
De plus, le chiffre id est égale à "O" au stade de la tâche initiale. De plus, un chiffre m (ou m représente un nombre entier) de branches bm connectées sur un noeud commun varie successivement "0","1",... en succession à
partir de la branche la plus à gauche.
Premièrement, le système multi processeur initia-
lise les registres Rpi et Rpn, le compteur Cpc et la section drapeau F. Deuxièmement, les processeurs affectables sont également affectés aux branches de l'arbre d'inférence, lequel prend une structure arborescente au point d'une tâche initiale. Par exemple, cinq processeurs ayant les
identificateurs pO, pl, p2, p3 et p4 sont affectés res-
pectivement et dynamiquement à cinq branches bO, bl, b2,
b3 et b4, qui sont rattachées au noeud commun (c'est-à-
dire le point de la tâche initiale) sur la branche si-
tuée le plus à gauche. De la même manière sept autres processeurs, ayant les identificateurs p5 à pli sont
affectés aux cinq branches bO à b4. Ainsi, trois proces-
seurs ayant les identificateurs pO, p5 et plO, sont affectés à la branche bO. De plus, les trois processeurs ayant les identificateurs pl,p6 et pll sont affectés à la branche bl. De la même manière, les deux processeurs ayant les identificateurs p4 et p9 sont affectés à la branche b4.
Conformément à ce qui est décrit ci-dessus, plu-
sieurs processeurs sont affectés à chacune des branches
bO à b4. Les processeurs affectés à une branche défi-
nissent les processeurs affectables au niveau d'un stade suivant.
Ensuite, le système en question effectue l'équi-
1-ibrage de charge initiale dans le sens de la profondeur
d'inférence. De manière similaire à la procédure sus-
mentionnée, les processeurs affectés à une branche sont affectés à des branches suivantes raccordées sur une branche. Lorsqu'un processeur est affecté à chacune des branches suivantes, l'équilibrage de charge initiale est
complet. Dans ce cas, lorsque le nombre pn de pro-
cesseurs affectables est plus petit que le nombre de branches affectables, une branche voisine de la branche affectée par le dernier processeur est mise de côté pour le dernier processeur (c'est-à-dire la branche de droite est mise de côté pour le dernier processeur), mais les branches situées à côté des branches qui sont chacune
affectées par les autres processeurs ne sont pas con-
cernées (c'est-à-dire les branches de droite sont cou-
pées pour les autres processeurs).
Par exemple, les processeurs ayant les identifica-
teurs pO, p5 et plO sont respectivement affectés aux branches bO, bl et b2 à un niveau d'inférence
id = 1, et la branche b3 est conservée pour le pro-
cesseur ayant l'identificateur plO. De la même manière, d'autres branches sont affectées par les processeurs
correspondants, comme on le voit dans la figure 5.
Ce qui précède constitue une explication schéma-
tique de l'équilibrage initial de charge pour la tâche
initiale. Par la suite, une description généralisée sera
donnée dans le domaine de l'équilibrage de charge ini-
tiale.
En un premier lieu, le système présent initialise les registres Rpi et Rpn, le compteur Cpc et la section
de drapeau F selon la description ci-dessous.
a) l'identificateur pi de chaque processeur est
mémorisé dans le registre Rpi.
b) le nombre pn de processeurs affectables est
stocké dans le registre Rpn.
c) le drapeau d'état "1" attestant que le pro-
cesseur est initialisé, est apparent dans la section de drapeau F. Le niveau d'inférence id est égale à "k", dont la
valeur varie séquentiellement selon O, 1,...
a) dans le cas o le nombre pn de processeurs af-
fectables dépasse 1, l'équilibrage de charge initiale est effectué selon la séquence des procédures suivantes
(i) à (v).
i.le compteur Cpc compte le nombre actuel pc de branches. Dans la figure 5, la valeur de compte
du compteur Cpc est égale à "5".
ii. la valeur de l'identificateur pi stockée dans registre Rpi est divisée par la valeur de compte du compteur Cpc de manière à obtenir un quotient égale à "a", et un reste égale à "b". Sur la base du quotient et du reste, les processeurs
sont affectés aux branches correspondantes.
Dans le cas d'un processeur ayant un identifi-
cateur pi égale à "8" comme on le voit dans la figure 5, ladite valeur "8" est divisée par la valeur "5" de manière à obtenir un quotient égale à "1" et un reste égale à "3" (c'est-à-dire
a = 1 et b = 3). Ceci veut dire que ledit proces-
seur est affecté à la branche b3 dans le rôle de
second processeur.
La valeur ci-dessus désignée "a" est stockée dans
le registre Rpi sous la forme d'un nouvel identi-
ficateur pi.
iii. Ensuite, le système actuel sélectionne une bran-
correspondant au reste "b". Lorsque le reste "b"
est inférieur à la valeur de (pn - 1), une bran-
che à droite d'une telle branche est coupée.
Cependant, lorsque le reste "b" n'est pas infé-
rieur à la valeur de (pn - 1), une branche à
droite d'une telle branche est conservée.
Par exemple, les processeurs pO,p5 et plO peu-
vent être affectés aux quatre branches bO à
b3 sur le côté gauche de le niveau d'in-
férence id = 1. Dans ce cas, le nombre pn de processeurs affectables est égale à 3 de telle manière que la valeur de (pn - 1) soit égale à 2. Ainsi, les branches de droite parmi les branches bO et bl sont coupées, et les
processeurs pO et p5 sont respectivement affec-
tés aux branches bO et bl. Au contraire, la branche b3 à droite de la branche b2 n'est pas coupée, mais elle est conservée, et le processeur
plO est affecté aux deux branches b2 et b3.
iv.le nombre pn stocké dans le registre Rpn est di-
visé par la valeur de compte du compteur Cpc de manière à obtenir un quotient "c" et un reste "d". Dans la tâche initiale illustrée dans la
figure 5, on divise 12 par 5 de manière à ob-
tenir un quotient "c"="2" et un reste "d"="2".
Lorsque le système actuel compare le reste "b" avec le reste "d" et détermine que le reste "b" est inférieur au reste "d", une valeur (c + 1) est stockée dans le registre Rpn. D'autre part, lorsque le reste "b" est égal ou supérieur à la valeur du reste "d", la valeur "c" est stockée
dans le registre Rpn.
Dans le cas sus-mentionné, trois processeurs (c'est-à-dire c + 1) sont affectés à chacune des branches bO et bl. De plus, deux processeurs (c'est-à-dire c) sont affectés à chacune des
branches b2, b3 et b4.
Selon la description précédente, "c" (c'est-à-
dire 2) processeurs sont affectés à chacune des branches (c'est-à-dire les branches b2 à b4) sur le côté droit de la branche (c'est-à-dire la
branche bl) affecté au dernier processeur (c'est-
à dire le processeur p1l). Par ailleurs, (c + 1) (c'est-à-dire 3) processeurs sont affectés à chacune des branches côté gauche (c'est-à-dire
les branches bO et bl).
v.Ensuite, les traitements similaires au traitement décrit dans le cadre des procédures ci-dessus (i)
à (iv) dans (2) sont effectués de manière répé-
titive dans le cas d'un niveau d'inférence id = m + 1 sur la base d'un identificateur pi nouvellement saisi et d'un nombre pn nouvellement
déterminé de processeurs affectables.
Dans une zone située sur la gauche de l'arbre d'inférence illustré dans la figure 5 et à un niveau d'inférence id = 1, l'équilibrage de charge initiale sus-mentionné est effectué en utilisant le nombre pn = 3, et en faisant varier
l'identificateur pi selon les valeurs 0, 1 et 2.
b.Dans le cas ou le nombre pn de processeurs affec-
tables est égal ou inférieur à 1, l'équilibrage
de charge initiale est effectué comme suit.
En mettant le drapeau situé dans la section F dans l'état "0", l'équilibrage de charge initiale est complété. Ainsi, l'équilibrage de charge
initiale illustré dans la figure 5 est effectué.
Ensuite, le tableau suivant (voir page suivante) montre comment les valeurs stockées dans les registres de chaque processeur varient, dans le cas o la tâche initiale est divisée en traitement OU multiple sur la
base des procédures stratégiques décrites dans la colon-
ne (a), dans un exemple donné pour quatre processeurs, comme montré à la figure 6. Il est facile de comprendre
le contenu du tableau suivant, sur la base des procé-
dures décrites dans la colonne (a), leur description
sera donc omise.
Dans le tableau suivant, une portion en rangée du reste "b" montre comment sélectionner la branche de
recherche pour chaque niveau d'inférence id. D'une ma-
nière plus spécifique, cette portion en forme de ran-
gées indique si la branche de droite est coupée ou con-
servée. De plus, les rangées de "Rpi'" et "Rpn'" (ou "'" veut dire "tiret") et les rangées de "Rpi" et "Rpn" ont l'une et l'autre le même contenu entre les colonnes de id = O et id = 1, et entre les colonnes de id = 1 et
id = 2.
// // / / / // /J /-
/
/
- 27 -
TABLEAU
NIVEAU PROCESSEUR PROCESSEUR PROCESSEUR PROCESSEUR
D'INFERENCE PRO PR1 PR2 PR3
id = 0 Rpi = 0 Rpi = 1 Rpi = 2 Rpi = 3 Rpn = 4 Rpn = 4 Rpn = 4 Rpn = 4 Cpc = 2 Cpc = 2 Cpc = 2 Cpc = 2 a =0 a =0 a =1 a =1 b =0 b =1 b =0 b = 1 coupée coupée coupée coupée c =2 c =2 c =2 c =2 d =0 d =0 d =0 d =0 Rpi'= O Rpi'= 0 Rpi'= 1 Rpi'= 1 Rpn'= 2 Rpn'= 2. Rpn'= 2 Rpn'= 2 id = 1 'Rpi = 0 Rpi = 0 Rpi = 1 Rpi = 1 Rpn = 2 Rpn = 2 Rpn = 2 Rpn = 2 Cpc = 3 Cpc = 4 Cpc = 3 Cpc = 4 a =0 a =0 a =0 a =0 b = 0 b =0 b = 1 b = 1 25.coupée coupée conservée conservée c =0 c =0 c =0 c =0 d =2 d =2 d =2 d =2 Rpi'= O Rpi'= O Rpi'= 0 Rpi'= O Rpn'= 1 Rpn'= 1 Rpn'= 1 Rpn'= 1 id = 2 Rpi = O Rpi = 0 Rpi = 0 Rpi = 0 Rpn = 1 Rpn = 1 Rpn = 1 Rpn = 1 F coupé F coumé F coupé F coupé
Selon la description ci-dessus, les processeurs
dans le système précédent sélectionnent simultanément et
indépendamment les traitements OU en utilisant l'iden-
tificateur pi de chaque processeur et le nombre pn de processeurs affectables. Ainsi, il est possible d'effec-
tuer l'équilibrage de charge initiale de la tâche ini-
tiale à grande vitesse et sans transmission d'informa-
tions entre les processeurs.
De plus, le système présent peut réduire la quan-
tité d'informations transmises parce que chaque proces-
seur dans le système présent produit une partie de l'information en provenance d'une autre processeur,
auquel la charge initiale a été attribuée, dans un sys-
tème classique. Dans la figure 6, les processeurs pO et p2 exécutent en parallèle la même charge de la branche bO, à titre d'exemple. Dans ce cas, les processeurs pO et p2 produisent à ce niveau le même environnement de travail, il est donc inutile de transférer l'information entre les processeurs pO et p2. Comme décrit ci-dessus, il est possible de réduire la quantité d'informations qu'accompagne l'équilibrage de charge initiale et qui
est transmise entre les processeurs.
Incidemment, l'équilibrage initial de charge de la tâche initiale cidessus décrite tend à assigner les charges initiales à tous les processeurs. Cependant, la
première forme de réalisation ne se rapporte pas à l'é-
quilibrage de charge intervenant après l'équilibrage de
charge initiale, et pour cette raison la description en
sera omise.
Selon la description ci-dessus, il est possible
d'obtenir les effets suivants (ou avantages) (i) à (iii)
dans le premier mode de réalisation.
i. Il est inutile de transférer l'information entre les processeurs lorsque les segments de charge initiale sont dynamiquement affectés à tous les processeurs après
que la tâche initiale ait été attribuée au système ac-
tuel. Ainsi, la nécessité d'effectuer l'équilibrage de charge initiale ne doit pas être concentré sur un seul processeur, et il est possible d'effectuer l'équilibrage
de charge initiale de la tâche initiale à grande vi-
tesse. ii. Le traitement spécifique OU est assigné à chaque processeur, et les processeurs qui exécutent le même traitement partiel OU en parallèle produisent la même
information partielle. Ainsi, il est inutile de trans-
férer l'information partielle entre ces processeurs,
lors de l'exécution de l'équilibrage de charge initiale.
Ainsi, il est possible de réduire la quantité d'informa-
tions dans le premier mode de réalisation.
En résultat, il est possible de réduire la capacité
de communication (c'est-à-dire la vitesse de transmis-
sion et la capacité de transmission) du réseau actuel appliqué au premier mode de réalisation du système multi processeur à un niveau moindre que dans le cas d'un réseau classique. Ainsi, l'échelle et le prix du réseau actuel peuvent être réduits, cependant, il est possible d'obtenir un effet parallèle presque similaire à celui obtenu avec un système classique. En d'autres termes, si
le réseau classique s'applique au système multi proces-
* seur actuel, l'effet parallèle du système multi proces-
seur actuel peut être remarquablement augmenté.
iii. On peut s'attendre à ce que chaque processeur présente un haut niveau de disponibilité juste après que la tâche initiale ait été attribuée au système multi
processeur actuel. De plus, le système actuel peut ré-
duire la quantité d'informations transmises entre les processeurs, ainsi, le système multi processeur actuel permet d'obtenir un effet parallèle de haut niveau en général.
Une description est ensuite donnée en ce qui con-
cerne la constitution d'un deuxième mode de réalisation pour le processeur PRi en liaison avec la figure 7. Ce
deuxième mode de réalisation du processeur PRi est es-
sentiellement constitué d'une unité centrale de trai-
tement (CPU) (21), d'une mémoire (22), d'une première
section (23) générant des informations, et d'une deu-
xième section (24) générant des informations.
La première section (23) générant des informations gé-
nère une information historique qui n'est pas nécessaire pour la reproduction de l'environnement de travail, et
cette information historique est transmise pendant l'é-
quilibrage de charge. D'un autre côté, la deuxième sec-
tion (24) génératrice d'informations génère l'environ-
nement de travail nécessaire sur la base de l'infor-
mation historique qui est transmise à destination de
ladite section pendant l'équilibrage de charge.
La figure 8 est un schéma fonctionnel permettant d'expliquer une fonction du deuxième mode de réalisation sus-mentionné pour le processeur PRI illustré dans la figure 7. De manière plus spécifique, la figure 8 est un schéma fonctionnel permettant d'expliquer la fonction du processeur PRi qui exécute une charge donnée écrite par le langage logique de programmation, c'est-à-dire le langage PROLOG. Les parties illustrées dans la figure 8 correspondent à celles illustrées dans la figure 4, elles sont identifiées par les mêmes références, ainsi
évitera-t-on d'en faire une description détaillée. Dans
la figure 8, les première et deuxième sections (23) et (24) générant des informations (et entourées par des traits pointillés) comprennent le registre Rpi pour stocker l'identificateur pi de chaque processeur PRi, un registre Ridb pour le stockage d'un niveau d'inférence idb de l'équilibrage de charge, un registre Rblp pour le stockage d'un identificateur blp du traitement OU qui est assigné au processeur PRi, une mémoire historique d'équilibrage de charge (25) pour stocker une paire du niveau d'inférence idb et de l'identificateur blp, l'un
et l'autre dépendant des temps mis à compléter l'équi-
librage de charge, et une section opérationnelle (26) pour effectuer des opérations simples en utilisant les données stockées dans les registres sus-mentionnés Rpi, Ridb et Rblp et les données stockées dans la mémoire
(25) sus-mentionnée.
De plus, le processeur comprend également le comp-
teur Cpc pour compter le nombre pc de branches de re-
cherche à chaque noeud, le registre Rpn pour stocker le nombre pn de processeurs affectables connectés et la
section de drapeau F permettant de savoir si l'équili-
brage de charge initiale est effectué ou si l'environ-
nement de travail a été généré.
De plus, la mémoire programme (12) stocke les pro-
grammes écrits dans le langage de programmation logique,
et la mémoire de travail est utilisée pour stocker l'en-
vironnement de travail pendant l'exécution des pro-
grammes. A ce sujet, la mémoire historique d'équilibrage de charge (25) peut être incluse dans la mémoire de travail (13).
Ensuite, une description du fonctionnement du deu-
xième mode de réalisation est donnée.
D'abord, on donne une description concernant le
cas o le premier processeur effectue l'équilibrage de charge sur le deuxième processeur en liaison avec la figure 9. D'une manière plus spécifique, la figure 9 montre un arbre d'inférence pour expliquer des exemples
d'une procédure destinée à générer l'information his-
torique qui est essentielle pour la protection de l'en-
vironnement de travail, et une autre procédure pour générer l'environnement de travail (qui sera nécessaire à l'issue de l'équilibrage de charge) par l'utilisation de l'information historique transmise. Incidemment, le premier processeur est défini par le référence PRI et le second processeur est défini par la référence PR2 pour
des raisons de commodités.
Comme montré dans la figure 9, le premier pro-
cesseur PR1 effectue l'équilibrage de charge en deux temps à des niveaux d'inférence successivement égaux à "3" et "7". Dans la figure 9 les branches (exécutées) qui ont déjà été exécutées sont représentées avec des traits comparativement fins, les branches (exécutantes) qui sont maintenant exécutées sont desssinées avec des traits.renforcés, et les branches (non exécutées) qui ne
sont pas exécutées sont dessinées en traits pointillés.
L'équilibrage de charge actuellement en cours divise les
branches (ou les traitements OU) qui ne sont pas exécu-
tées mais qui sont relativement proches du noeud repré-
sentatif de la tâche initiale.
De manière conventionnelle, le premier processeur PR1 transfère l'ensemble de l'information représentatif des environnements de travail, au deuxième processeur PR2. Les environnements de travail de ce genre sont générés dans les branches exécutantes dessinées en
traits renforcés avant que ne soit effectué l'équili-
brage de charge (c'est-à-dire avant les branches non exécutées dessinées en traits pointillés). Par la suite, le deuxième processeur PR2 exécute les branches non
encore exécutées.
Au contraire, le premier processeur PR1 transmet l'information historique nécessaire pour la reproduction des environnements de travail de ce premier processeur
au second processeur PR2 dans le deuxième mode de réa-
lisation de l'invention. Dans ce cas, les mots de don-
nées représentatifs de l'information historique tota-
lisent trois mots dans un premier équilibrage de charge, cinq mots dans un second équilibrage de charge et (1 +
2n) mots dans le nième équilibrage de charge respective-
ment. Puis, le second processeur PR2 reproduit les en-
vironnements de travail générés dans les branches d'exé-
cution (représentées en traits renforcés) du premier processeur PR1 en utilisant l'information historique transmise.
D'abord, chaque processeur PRi effectue l'équili-
brage de charge initiale de la tâche initiale selon la
description donnée dans le premier mode de réalisation.
Ce premier équilibrage de charge est effectué en uti-
lisant les registres Rpi et Rpn, le compteur Cpc, la
section de drapeau F et la section opérationnelle (26).
Fondamentalement, l'équilibrage initial de charge en question est obtenu par la répétition d'une procédure dans laquelle chaque branche (ou chaque traitement OU)
est répartie également en direction de chaque pro-
cesseur.
Lorsque l'on obtient l'équilibrage de charge ini-
tiale, la recherche concernant les branches est pour-
suivie selon un ordre de priorité prédéterminé,
(c'est-à-dire recherche d'abord en profondeur) de ma-
nière à ce que la recherche dans les branches soit ef-
fectuée de haut en bas et de gauche à droite selon un
ordre de priorité du niveau d'inférence dans le pre-
mier processeur PRI. Lorsque la branche correcte n'est pas l'objet de la recherche, le premier processeur PR1
régresse jusqu'au noeud précédent et recommence la re-
cherche sur la branche. Aux niveaux d'inférence "3" et "7", un segment partiel de charge du premier processeur
PR1 est partagé avec les autres processeurs.
Dans le premier équilibrage de charge, le premier processeur PR1 transmet l'information historique selon une conformation de trois mots qui représentent (a) l'identificateur pi du premier processeur PR1, (b) le
niveau d'inférence idb (1 = 3) de l'équilibrage de char-
ge et (c) l'identificateur blp (1) du traitement OU qui
est partagé avec un autre processeur.
L'identificateur pi (a) sus-mentionné doit varier dans le cadre de l'équilibrage de charge initiale. Le premier processeur PR1 utilise, cependant comme valeur
pour ledit identificateur pi, l'identificateur pi ini-
tialement utilisé au cours du premier équilibrage ini-
tial de charge. Cependant, dans le cas o une branche
bep(1) est choisie au niveau d'inférence "3", les re- gistres correspondants mémorisent respectivement un pointeur blp (1)
désignant le traitement OU non exécuté ainsi que le niveau d'inférence idb (1). Le pointeur blp (1) indique l'adresse de la mémoire programme (12)
ou l'information représentative du numéro de la branche.
Ainsi, on peut obtenir les éléments sus-mentionnés sui-
vants, (b) le niveau d'inférence idb et (c) l'identifi-
cateur blp du traitement OU.
En tant que représentation historique de l'équi-
librage de charge, la mémoire (25) stocke l'information représentative du niveau d'inférence idb (1) = 3 et de
la branche choisie bep(1).
Dans le deuxième équilibrage de charge, le premier processeur PR1 transmet l'information historique dans le
format de cinq mots qui représentent (a) l'identifica-
teur pi du premier processeur PR1, (b) le niveau d'in-
férence idb (1 = 3) qui est stockée dans la mémoire (25)
au cours du premier équilibrage de charge, (c) la bran-
che choisie bep(1) qui est stockée dans la mémoire (25)
au cours du premier équilibrage de charge, (d) un nou-
veau niveau d'inférence idb (2 = 7) du deuxième équi-
librage de charge et (e) un identificateur idb (2) du
traitement OU devant faire l'objet du deuxième équili-
brage de charge.
Dans le cas o la branche blp(2) est choisie au niveau d'inférence "7", les registres correspondants stockeront respectivement un pointeur blp(2) pour le traitement non exécuté OU et le niveau d'inférence idb (2 = 7). Ainsi pourra-t-on obtenir le niveau d'inférence sus-mentionnée (d) idb (2 = 7) et (e) l'identificateur
idb (2).
Comme dans le premier cas d'équilibrage de charge, la mémoire (25) stocke le niveau d'inférence idb (2) et
la branche choisie bep(2) au stade actuel en tant qu'é-
lément historique du deuxième équilibrage de charge.
Ces éléments historiques des équilibrages de charge primaire et secondaire sont identiques à une partie de l'information historique qui est transmise à partir du premier processeur PR1 dans l'équilibrage de charge suivant. Les environnements de travail du premier processeur PRI sont nécessaires pour le second processeur PR2 après l'équilibrage de charge. Les environnements de travail de ce genre sont reproduits en utilisant l'information historique transmise à partir du premier processeur PR1
à destination du second processeur PR2.
Ensuite, une description est donnée dans le cadre
du procédé sus-mentionné pour reproduire les environ-
nements de travail et du premier processeur PR1 dans le
second processeur PR2.
L'information historique transmise à partir du
premier processeur PR1 à destination du second proces-
seur PR2 comprend les éléments d'information suivants: (a) l'identificateur pi de chaque processeur (b) le niveau d'inférence idb de l'équilibrage de charge (c) l'identificateur blp du traitement OU partagé
avec le second processeur PR2.
Les quantités des deux éléments d'information ci-
dessus indiqués (b) et (c) (l'un et l'autre) sont aug-
mentées en fonction du temps de traitement pour l'équi-
librage de charge.
Le second processeur PR2 stocke l'information his-
torique transmise y compris les éléments d'information sus-mentionnés (a) à (c). Ensuite, le second processeur PR2 exécute le traitement qui lui est attribué selon l'algorithme suivant. Incidemment, le niveau d'inférence est égal à idc au stade présent dans le deuxième
processeur PR2 dans le cadre de la description ci-des-
sous. Le procédé de reproduction des environnements de travail du premier processeur PR1 en direction du second processeur PR2 se déroule selon les procédures suivantes
au niveau du niveau d'inférence idc.
(a) initialisation du compteur, des registres, de
la mémoire et de la section de drapeau.
(i) initialisation du compteur Cpc, des registres Rpi et Rpn:
l'identificateur pi du processeur est confi-
guré dans le registre Rpi; le nombre pn de processeurs affectables est configuré dans le registre Rpn; la valeur "0" est configurée sur le compteur Cpc. (ii) initialisation de la section drapeau F:
le drapeau à l'état "1" indiquant que l'équi-
librage de charge initiale est en cours ou que l'environnement de travail est en cours de reproduction est configuré dans la section de drapeau F. (iii) initialisation de la mémoire (25): la mémoire (25) stocke à la fois le niveau d'inférence idb de l'équilibrage de charge et l'identificateur blp du traitement OU qui est
partagé avec le second processeur PR2.
(iv) initialisation des registres Ridb et Rblp: les registres Ridb et Rblp stockent le mot de niveau supérieur des informations stockées dans la mémoire (25) selon une séquence du niveau d'inférence; à partir du niveau d'inférence affecté d'un petit chiffre et en allant dans le sens du niveau d'inférence
affectée d'un chiffre important.
(b) exécution d'un équilibrage de charge initiale
au moyen des registres Rpi, Rpn et du compteur Cpc.
Comme montré à la figure 10 et dans les figures
suivantes, cet équilibrage de charge initiale est exé-
cuté en utilisant l'identificateur pi du premier proces-
seur PR1. D'une manière plus spécifique, le second pro-
cesseur PR2 effectue de manière continue l'équilibrage
de charge initiale selon la description dans l'équili-
brage de charge initiale du premier processeur PR1 il-
lustré dans la figure 9 et ce jusqu'à ce que l'équili-
brage de charge initiale soit complété.
(c) procédure pour reproduire l'environnement de
travail du premier processeur après équilibrage de char-
ge initiale.
(i) Dans le cas o le niveau d'inférence idc est
inférieur à la valeur du registre Ridb, on choi-
sit la branche la plus à droite et celle-ci est exécutée à chaque niveau d'inférence. Par la suite, on configurera le niveau d'inférence suivant idc = idc + 1, et le traitement ci-dessus est exécuté de
manière répétitive à ce nouveau niveau d'inférence.
(ii) Dans le cas o le niveau d'inférence idc est égal à la valeur du registre Ridb: - si le dernier mot est lu à partir de la mémoire (25), la branche correspondant à la valeur du registre Rblp est exécutée et la branche située à droite
est conservée. On configure ensuite la section de dra-
peau F dans l'état "0" de manière à compléter la reproduction des environnements de travail (c'est-à-dire à compléter l'équilibrage de charge); - si le mot lu à partir de la mémoire (25)
n'est pas le dernier mot, la branche corres-
pondant à la valeur du registre Rblp est seule exécutée et la branche à droite de ce registre
est coupée.
Par la suite, les données de mots suivants lus dans la mémoire (25) sont stockées dans les
registres Ridb et Rblp, et le niveau d'infé-
rence suivante idc =idc + 1 est configuré de manière à effectuer de façon répétitive le
traitement sus-mentionné de (i).
Selon les procédures sus-mentionnées, un environne-
ment de travail spécifique du premier processeur PR1 est reproduit au niveau du second processeur PR2 avant que le premier processeur PR1 n'effectue l'équilibrage de charge. Le second processeur PR2 peut reproduire les environnements de travail spécifiques de ce genre sur la base des informations historiques transmises à partir du
premier processeur PR1.
Cet environnement de travail spécifique est essen-
tiel pour le second processeur PR2 après que le premier
processeur PR1 effectue son équilibrage de charge.
Dans les procédures illustrées dans la figure 10, le second processeur PR2 reproduit l'environnement de travail du premier processeur PR1 (qui est généré avant que le premier processeur PR1 n'effectue l'équilibrage de charge) en utilisant l'information historique en format trois mots transmis au second processeur PR2 en un premier temps. Ledit environnement de travail est
illustré en lignes renforcées avant un noeud représen-
tatif du niveau d'inférence "3". Par la suite le second
processeur PR2 effectue certains traitements après l'é-
quilibrage de charge. Lesdits certains traitements sont
illustrés en traits pointillés après le noeud représen-
tatif du niveau d'inférence "3".
Dans la figure 10 l'équilibrage de charge initiale est effectué en utilisant l'identificateur pi du premier processeur PR1 en un premier temps. Ensuite, la branche la plus à droite est choisie et exécutée jusqu'à ce que le niveau d'inférence atteigne la valeur idb (1 = 3)
valeur à laquelle l'équilibrage de charge est effectué.
En dernier, le second processeur PR2 choisit et exécute la branche représentée par l'identificateur blp (1) du traitement OU partagé lequel est partagé avec le second
processeur PR2 au niveau d'inférence "3".
Dans le cas ci-dessus, l'identificateur blp (1) du traitement OU partagé est indiqué par le dernier mot de l'information stockée dans la mémoire (25). Ainsi, la branche de droite de la branche ci-dessus correspondant au dernier mot de la mémoire (25) est conservée parce que ladite branche de droite doit probablement être exécutée. Selon les procédures susmentionnées, l'équilibrage de charge entre le premier processeur PR1 et le second
processeur PR2 est obtenu complètement au niveau d'in-
férence "3" et ce par la seule transmission de données
en format trois mots.
Dans les procédures illustrées dans la figure 11, le second processeur PR2 reproduit l'environnement de travail du premier processeur PR1 (qui est généré avant que le premier processeur PRI n'effectue l'équilibrage de charge) en utilisant l'information historique au
format cinq mots transmis en direction du second proces-
seur PR2 en un premier temps. Ledit environnement de travail est illustré en traits renforcés avant un noeud représentatif du niveau d'inférence "7". Par la suite, le second processeur PR2 exécute certains traitements à la suite de l'équilibrage de charge. Lesdits certains traitements sont illustrés par des traits pointillés
après le noeud représentatif du niveau d'inférence "7".
Dans la figure 11, l'équilibrage de charge initiale est effectué en utilisant l'identificateur pi du premier processeur PR1 en un premier temps. Ensuite, la branche la plus à droite est choisie et exécutée jusqu'à ce que le niveau d'inférence atteigne la valeur idb (1 = 3), dont les données sont stockées dans la mémoire (25). A ce niveau d'inférence "3", la branche bep(1) stockée dans la mémoire (25) seule est choisie et exécutée. Dans
ce cas, cette branche bep (1) ne correspond pas au der-
nier mot stocké dans la mémoire (25), donc, la branche
de droite de cette nouvelle branche bep (1) est coupée.
Ensuite, le second processeur PR2 choisit et exé-
cute la branche la plus à droite à chaque niveau d'in- férence jusqu'à ce que le niveau d'inférence atteigne
le niveau d'inférence idb(2 = 7), auquel niveau l'équi-
librage de charge est effectué. En dernier, le second processeur PR2 choisit et exécute la branche représentée par l'identificateur blp (2) du traitement OU partagé,
qui est sujet à l'équilibrage de charge au niveau d'in-
férence "7". Cette branche correspond au dernier mot stocké dans la mémoire (25), donc, la branche de droite
de cette branche n'est pas coupée mais elle est con-
servée.
Selon les procédures illustrées dans la figure 11, le premier processeur PR1 effectue l'équilibrage de
charge sur le second processeur PR2 au niveau d'infé-
rence "7" en transmettant l'information historique dans
le format cinq mots.
Dans les procédures générales illustrées dans la
figure 12, le second processeur PR2 reproduit l'environ-
nement de travail du premier processeur PR1 (qui est généré avant que le premier processeur PR1 n'effectue l'équilibrage de charge) en utilisant l'information historique de (1 + 2n) mots transmis en un premier temps
au second processeur PR2. Par la suite, le second pro-
cesseur PR2 effectue certains traitements après l'équi-
librage de charge.
De même que dans les procédures illustrées dans les
figures 10 et 11, le second processeur effectue l'équi-
librage de charge initiale en utilisant l'identificateur
pi du premier processeur PR1.
Par la suite, et jusqu'à ce que 2e niveau d'infé-
rence atteigne un niveau d'inférence de "20" auquel
l'équilibrage de charge est effectué, le second proces-
seur PR2 choisit et exécute les branches b2 et bl à des niveaux d'inférence de "7" et "15", dont les données
sont stockées par exemple dans la mémoire (25). En rai-
son du fait que ces branches b2 et bl ne correspondent pas au dernier mot stocké dans la mémoire (25), les branches de droite parmi ces branches b2 et bl sont coupées. Aux niveaux d'inférence autres que les niveaux
d'inférence "7" et "15", et inférieurs au niveau d'in-
férence "20", la branche la plus à droite est sélection-
née et exécutée pour chaque niveau d'inférence.
Enfin, le second processeur PR2 choisit et exécute
la branche b3 du traitement OU partagé au niveau d'in-
férence "20" o est effectué l'équilibrage de charge.
Cette branche correspond au dernier mot stocké dans la mémoire (25), la branche de droite sur cette branche
n'est donc pas coupée mais conservée.
Selon les procédures ci-dessus décrites, le premier processeur PR1 peut effectuer et compléter l'équilibrage
de charge sur le second processeur PR2 à un niveau d'in-
férence arbitraire, simplement en transmettant l'infor-
mation historique, dont le volume correspond à la pé-
riode de temps prise par le premier processeur PR1 pour
effectuer l'équilibrage de charge, dans le passé.
* Dans le second mode d'exécution, le second proces-
seur PR2 reproduit l'environnement de travail (qui est obtenu entre la tâche initiale et le niveau d'inférence
actuel) du premier processeur PR1 en utilisant l'infor-
mation historique transmise audit premier processeur.
Cependant, le second processeur PR2 peut réutiliser une
partie de l'environnement de travail du premier proces-
seur de manière à reproduire un environnement de travail
partiel du premier processeur PRI en comparant l'infor-
mation historique transmise avec l'information stockée dans le second processeur PR2. Cette information stockée
dans le second processeur PR2 est identique aux iden-
tificateurs précédents pi et au contenu des données
stockées dans la mémoire (25).
Selon la description dans le cadre du second mode
d'exécution, dans le système multi processeur qui exé-
cute le langage de programmation logique (par exemple le
PROLOG), le premier processeur PR1 transmet l'infor-
mation historique de (1 + 2n) mots dont le volume est
relativement réduit par rapport & celui second proces-
seur PR2, chaque fois que le premier processeur PR1 ef-
fectue l'équilibrage de charge, le volume de cette in-
formation historique transmise correspond aux éléments de temps "n" occupés pour effectuer l'équilibrage de charge dans le premier processeur PR1. En utilisant l'information historique
transmise, le second processeur PR2 reproduit l'environ-
nement de travail qui est essentiel pour le second processeur PR2 après que le premier processeur PRI ait
effectué l'équilibrage de charge. Par la suite, le se-
cond processeur PR2 en effectue le traitement après
équilibrage de charge effectué en utilisant l'environ-
nement de travail reproduit. En comparant le deuxième mode d'exécution avec le système conventionnel, il est possible d'obtenir les avantages suivants: Il n'est pas nécessaire d'interrompre de manière intermittente le déroulement du traitement original de chaque processeur dans le cadre de l'équilibrage de charge. Ainsi, il est possible d'effectuer l'équilibrage de charge à grande vitesse et avec une quantité assez
réduite d'informations transmises entre les processeurs.
En particulier, les avantages du second mode d'exé-
cution sont effectivement intéressants lorsque le lan-
gage de programmation logique (PROLOG) est appliqué au système multi processeur. Le système multi processeur classique souffre d'un problème qui résulte de la charge en temps système qui est entrainé par la génération de charge de travail, la communication nécessaire pour transmettre une quantité assez importante de ce qui constitue l'environnement de travail, le stockage de la
charge, et autres éléments similaires.
Cependant, le deuxième mode de réalisation peut
éliminer les temps système qui sont l'objet de la des-
cription ci-dessus. Ainsi, il est possible d'élaborer une machine parallèle en PROLOG à multi processeur,
douée d'une grande vitesse de traitement et de communi-
cation, avec un effet parallèle de haut niveau.
Au lieu de transmettre l'environnement de travail
qui contient un assez grand volume d'informations li-
néairement en proportion avec les temps mis pour effec-
tuer le traitement d'inférence, le deuxième mode d'exé-
cution transmet l'information historique contenant une quantité de données assez réduites, et qui correspond au temps "n" pris pour effectuer l'équilibrage de charge (c'est-à-dire, l'information historique de (1 =2n) mots
lorsque le PROLOG est attaché au deuxième mode de réa-
lisation). Ainsi, l'équilibrage de charge du second mode de réalisation est-il complété. Aussi, est-il possible de réduire de manière notable le volume de communication pour les éléments transmis en cours d'équilibrage de
charge. En d'autres termes, les temps consacrés à l'é-
quilibrage de charge peuvent être réduits de manière
moins importante que ceux consacrés au traitement d'in-
férence. En comparant le réseau du système multi processeur de la présente demande avec celui d'un système multi processeur classique, la capacité de communication du
deuxième mode de réalisation peut être réduite de ma-
nière notable. Ainsi, le second mode de réalisation peut
obtenir un effet parallèle similaire à celui d'un sys-
tème multi processeur classsique, même lorsque le deuxième mode de réalisation utilise un réseau de coût raisonnable et d'échelle réduits. En d'autres termes, il est possible d'élaborer un système multi processeur ayant un effet parallèle d'un niveau supérieur à celui d'un système multi processeur classique, lorsque le second mode de réalisation utilise un réseau similaire à
celui d'un système multi processeur classique.
Le deuxième mode de réalisation est élaboré en interconnectant de manière complémentaire plusieurs
registres et mémoires à la machine d'inférence séquen-
tielle existante (ou à la machine PROLOG existante) et en interconnectant les machines PROLOG l'une à l'autre à
l'aide d'un simple réseau. Selon les procédures ci-des-
sus décrites, le second mode de réalisation génère l'in-
formation historique devant être transmise en cours d'équilibrage de charge, et reproduit l'environnement de travail essentiel en utilisant l'information historique
transmise, procédé par lequel le second mode de réali-
sation peut effectuer l'équilibrage de charge à grande
vitesse. De plus, il est possible de réaliser une ma-
chine PROLOG parallèle du type multi processeur douée
d'une grande vitesse et d'un haut niveau d'effet pa-
rallèle.
Selon la description des avantages sus-mentionnés,
le second mode de réalisation peut éliminer le temps système qui est inévitablement entrainé dans le cours de l'équilibrage de charge classique comme on le voit dans
la figure 1. Ainsi, les problèmes auxquels on est ex-
posés dans le système classique peuvent être éliminés
par le second mode de réalisation.
Par ailleurs, la présente invention ne se limite
pas à une méthode de sélection et de génération d'infor-
mations historiques, méthode qui est essentielle pour la reproduction de l'environnement de travail, et à une méthode alternative pour reproduire l'environnement de
travail nécessaire en utilisant l'information histo-
rique, par exemple.
De plus, la présente invention n'impose pas (et ne limite pas) la structure interne détaillée de chaque
processeur, ou la constitution du réseau qui intercon-
necte les processeurs, mais propose également une mé-
thode pour reconnaitre les processeurs inoccupés. Ainsi, il est possible d'utiliser un bus, un réseau en mailles,
ou un réseau utilisant un routeur multi-étage pour cons-
tituer le réseau selon les présentes. De plus, il est possible d'utiliser un réseau qui reçoit en entrée une information représentative d'un état (par exemple d'un état inoccupé ou occupé) pour chaque processeur. De
plus, il est possible d'ajouter extérieurement un péri-
phérique qui gère la condition ci-dessus mentionnée pour
chaque processeur.
La présente invention peut être réalisée par d'au-
tres moyens encore, sans se départir de son esprit ou de
ses caractéristiques essentielles. Par exemple, le lan-
gage de programmation appliqué au système multi pro-
cesseur objet de la présente demande n'est pas limité
par le langage de programmation logique, et il est pos-
sible d'utiliser un langage de programmation général dans le cadre du système multi processeur objet de la
demande. Pour cette raison, les modes préférés de réa-
lisation décrits dans la présente sont-ils illustratifs
et non pas restrictifs, le domaine couvert par l'inven-
tion étant indiqué par les revendications, et toutes les
variations pouvant entrer dans le sens de ces revendi-
cations en feront partie.

Claims (12)

REVENDICATIONS
1/ Système multi processeur pour le traitement d'une charge de travail donnée écrite dans un langage de
programmation prédéterminé, caractérisé en ce qu'il com-
prend: - une pluralité de processeurs et un réseau inter- connectant lesdits processeurs, - chacun desdits processeurs comprenant:
a.des premiers moyens de mémorisation d'informa-
tions système représentant des caractéristiques dudit système multi processeur, et b.des seconds moyens pour sélectionner de manière automatique et dynamique un segment spécifique de la charge initiale à partir de ladite charge
donnée en utilisant lesdites informations- sys-
tème sans transmission d'informations entre les-
dits processeurs,d'o il résulte qu'un équili-
brage de charge initiale est obtenu dans ledit
système multi processeur.
2/ Système multi processeur pour le traitement
d'une charge donnée écrite dans un langage de program-
mation prédéterminé caractérisé en ce qu'il comprend:
- une pluralité de processeurs et un réseau inter-
connectant lesdits processeurs, - chacun desdits processeurs comprenant: a.des premiers moyens pour générer une information historique, dont le volume est plus réduit que
celui d'une information représentative de l'en-
vironnement de travail total d'un processeur source pendant le traitement d'un segment de charge spécifique attribué à chaque processeur, b.des seconds moyens (50) pour la transmission de ladite information historique en direction
d'un processeur récepteur pendant le fonctionne-
ment dudit système multi processeur, c.des troisièmes moyens pour la reproduction dudit environnement de travail dudit processeur source,
et par l'utilisation de ladite information histo-
rique transmise à partir d'un processeur source,
d.des quatrièmes moyens pour l'exécution dudit seg-
ment de charge spécifique par l'utilisation de
l'environnement de travail reproduit dudit pro-
cesseur source,d'o il résulte que l'obtient un équilibrage de charge dans ledit système multi processeur.
3/ Système multi processeur selon les revendica-
tions 1 ou 2, caractérisé en ce que ledit langage de
programmation prédéterminé est un langage de program-
mation logique.
4/ Système multi processeur selon la revendication 1, dans lequel le système de données est caractérisé en ce qu'il comprend: a. une première information représentative d'un identificateur pour chaque processeur et b. une deuxième information représentative d'un nombre de processeurs affectables qui sont soumis audit
équilibrage de charge initiale.
/ Système multi processeur selon la revendication 2, caractérisé en ce que ladite information historique comprend: a. une troisième information représentative d'un niveau d'inférence pour ledit processeur source, et b. une quatrième information représentative d'un identificateur d'un segment de charge partielle dudit processeur source, lequel est dynamiquement affecté
audit processeur récepteur, un couple de ladite troi-
sième information et de ladite quatrième information étant généré chaque fois que ledit segment de charge partielle dudit processeur source est partagé par ledit processeur destinataire. 6/ Procédé d'exécution d'équilibrage de charge dans
un système multi processeur ayant une pluralité de pro-
cesseurs, et un réseau interconnectant lesdits proces-
seurs,auquel est attribuée une charge écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes: - mémoriser un système d'informations représentatif des caractéristiques dudit système multi processeur, ' - choisir un segment de charge initiale spécifique
pour chaque processeur dans la charge donnée, en utili-
sant lesdites informations-système sans transférer d'in-
formations entre lesdits processeurs de manière automa-
tique et dynamique,et
- exécuter ledit segment de charge initiale indé-
pendamment dans chaque processeur, d'o il résulte que l'on obtient un équilibrage de charge initiale dans
ledit système multi processeur.
7/ Procédé d'exécution d'équilibrage de charge dans
un système multi processeur ayant une pluralité de pro-
cesseurs et un réseau interconnectant lesdits proces-
seurs, auquel est attribuée une charge écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes:
- générer une information historique dans un pre-
mier processeur, dont le volume est plus réduit que celui d'une information représentative de l'ensemble de l'environnement de travail du premier processeur, alors que le premier processeur exécute un segment de charge spécifique à lui attribuer, - transmettre ladite information historique dudit premier processeur à un second processeur pendant le fonctionnement dudit système multi processeur, - reproduire ledit environnement de travail dudit
premier processeur dans ledit second processeur en uti-
lisant ladite information historique transmise dynami-
quement à partir du premier processeur, et - exécuter un segment de charge spécifique dudit
second processeur dans ce dernier en utilisant l'envi-
ronnement de travail reproduit du premier processeur, d'o il résulte qu'un équilibrage de charge est obtenu entre ledit premier et ledit second processeur, et un segment de charge partielle dudit premier processeur est
partagé avec ledit second processeur.
8/ Procédé d'exécution d'équilibrage de charge dans
un système multi processeur ayant une pluralité de pro-
cesseurs et un réseau interconnectant lesdits proces-
seurs,auquel est attribuée une charge écrite dans un langage de programmation prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes:
- mémoriser des informations système représen-
tatives des caractéristiques dudit système multi proces-
seur, - choisir un segment de charge spécifique initiale pour chaque processeur à partir de la charge donnée, par
l'utilisation desdites informations-système, sans trans-
mission automatique et dynamique des informations entre lesdits processeurs,
- exécuter ledit segment de charge initiale spé-
cifique indépendamment dans chaque processeur, d'o il
résulte que l'on obtient un équilibrage de charge ini-
tiale dans ledit système multi processeur,
- générer une information historique dans un pre-
mier processeur, dont le volume est plus réduit que celui d'une information représentative de l'ensemble de l'environnement de travail dudit premier processeur alors que ledit premier processeur exécute un segment de charge spécifique qui lui est attribué,
- transmettre ladite information historique à par-
tir dudit premier processeur à un second processeur
pendant le fonctionnement dudit système multi proces-
seur, - reproduire ledit environnement de travail dudit
premier processeur dans ledit second processeur en uti-
lisant ladite information historique transmise dynami-
quement à partir dudit premier processeur,et - exécuter un segment de charge spécifique dudit
second processeur à l'intérieur de ce dernier en utili-
sant l'environnement de travail reproduit dudit premier
processeur, d'o il résulte que l'on obtient un équi-
librage de charge entre ledit premier et ledit second processeur, et un partage du segment de charge partielle
dudit premier processeur avec ledit second processeur.
9/ Procédé selon les revendications 6, 7 ou 8 ca-
ractérisé en ce que ledit langage de programmation pré-
déterminé est un langage de programmation logique.
10/ Procédé selon les revendications 6 ou 9, carac-
térisé en ce que les informations-système comprennent: a. une première information représentative d'un identificateur de chaque processeur et 00e b. une seconde information représentative d'un nombre de processeurs affectables qui sont assujettis
audit équilibrage de charge initiale.
11/ Procédé selon les revendications 7 ou 9, carac-
térisé en ce que ladite information historique comprend: a. une troisième information représentative d'un niveau d'inférence dudit premier processeur et, b. une quatrième information représentative d'un identificateur d'un segment de charge partielle dudit premier processeur qui est affecté dynamiquement audit
second processeur, le couple constitué par ladite troi-
sième information et ladite quatrième information étant
généré chaque fois que ledit segment de charge partiel-
le dudit premier processeur est partagé avec ledit se-
cond processeur.
12/ Procédé selon les revendications 8 ou 9, carac-
térisé en ce que lesdites informations système com-
prennent: a. une première information représentative d'un identificateur pour chaque processeur et, b. une deuxième information représentative d'un nombre de processeurs affectables qui sont assujettis audit équilibrage de charge initiale; et ladite information historique comprend:
a.ladite première information représentative du-
dit identificateur de chaque processeur, b.une troisième information représentative d'un niveau d'inférence dudit premier processeur, et c.une quatrième information représentative d'un identificateur d'un segment de charge partielle
dudit premier processeur, lequel est dynamique-
ment affecté audit second processeur, le couple constitué par ladite troisième information et ladite quatrième information étant généré chaque fois que ledit segment de charge partielle dudit premier processeur est partagé avec ledit second processeur. 13/ Procédé selon la revendication 10 caractérisé en ce que chaque processeur comprend: a. un premier registre pour la mémorisation de la première information,
b. un second registre pour la mémorisation de la-
dite seconde information et
c. des moyens d'exécution pour effectuer une opéra-
tion prédéterminée en utilisant lesdites première et
seconde informations.
14/ Procédé selon la revendication 11, caractérisé en ce que chaque processeur comprend: a. un troisième registre pour mémoriser ladite troisième information,
b. un quatrième registre pour mémoriser ladite qua-
trième information, c. des moyens de mémoire pour mémoriser lesdites troisième et quatrième informations et
d. des moyens d'exécution pour effectuer une opéra-
tion prédéterminée en utilisant lesdites troisième et
quatrième informations.
15/ Procédé selon la revendication 12, caractérisé en ce que chaque processeur comprend:
a. un premier registre pour mémoriser ladite pre-
mière information, b. un second registre pour mémoriser ladite seconde information, - c. un troisième registre pour mémoriser ladite troisième information, d. un quatrième registre pour mémoriser ladite qua- trième information, e. des moyens de mémoire pour mémoriser lesdites troisième et quatrième informations et
f. des moyens d'exécution pour effectuer une o-
pération prédéterminée en utilisant lesdites informa-
tions, de la première à la quatrième.
DEPOSANT: NIPPON TELEGRAPH & TELEPHONE CORPORATION
MANDATAIRE: Cabinet Michel LAURENT
FR8718115A 1986-12-19 1987-12-18 Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme Expired - Lifetime FR2608807B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP61303412A JPH0743650B2 (ja) 1986-12-19 1986-12-19 マルチプロセッサ情報処理装置および該装置における負荷分散方法
JP12733887A JP2587830B2 (ja) 1987-05-25 1987-05-25 マイクロプロセッサ情報処理装置および該装置における分散処理方法

Publications (2)

Publication Number Publication Date
FR2608807A1 true FR2608807A1 (fr) 1988-06-24
FR2608807B1 FR2608807B1 (fr) 1994-07-08

Family

ID=26463316

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8718115A Expired - Lifetime FR2608807B1 (fr) 1986-12-19 1987-12-18 Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme

Country Status (4)

Country Link
US (1) US5053950A (fr)
DE (1) DE3741953A1 (fr)
FR (1) FR2608807B1 (fr)
GB (1) GB2199966B (fr)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0293836A (ja) * 1988-09-30 1990-04-04 Toshiba Corp 分散型データベース管理装置
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
US5155851A (en) * 1989-05-15 1992-10-13 Bell Communications Research, Inc. Routing an incoming data stream to parallel processing stations
US5471622A (en) * 1989-10-04 1995-11-28 Paralogic, Inc. Run-time system having nodes for identifying parallel tasks in a logic program and searching for available nodes to execute the parallel tasks
US5239649A (en) * 1989-10-30 1993-08-24 International Business Machines Corporation Channel path load balancing, through selection of storage volumes to be processed, for long running applications
US5287509A (en) * 1989-11-07 1994-02-15 Nec Corporation Multitasking system for in-procedure loops
US5379438A (en) * 1990-12-14 1995-01-03 Xerox Corporation Transferring a processing unit's data between substrates in a parallel processor
DE4132764C2 (de) * 1991-10-02 1995-01-05 Johann Rost Verfahren und Anordnung zur Zuordnung von Prozessen eines Prozeßsystems zu den einzelnen Rechnern eines Rechnernetzwerks
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
FR2692058B1 (fr) * 1992-06-09 1994-07-29 Bull Sa Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail.
JP3408850B2 (ja) * 1992-12-09 2003-05-19 三菱電機株式会社 クライアント・サーバシステムおよびその制御方法、並びにクライアント機装置
US5634125A (en) * 1993-09-02 1997-05-27 International Business Machines Corporation Selecting buckets for redistributing data between nodes in a parallel database in the quiescent mode
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5630129A (en) * 1993-12-01 1997-05-13 Sandia Corporation Dynamic load balancing of applications
EP0668564A1 (fr) * 1994-02-22 1995-08-23 International Business Machines Corporation Mesure de ressource dans un complexe à multiples systèmes d'exploitation
DE4439060A1 (de) * 1994-11-02 1996-05-09 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
US5715457A (en) * 1995-10-06 1998-02-03 Matsushita Electtic Industrial Multiprocessor system for determining assignment of task in view of access time to storage resource
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US6192388B1 (en) * 1996-06-20 2001-02-20 Avid Technology, Inc. Detecting available computers to participate in computationally complex distributed processing problem
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
US6345041B1 (en) * 1996-10-24 2002-02-05 Hewlett-Packard Company Method and apparatus for automatic load-balancing on multisegment devices
US6405282B1 (en) * 1997-10-06 2002-06-11 Emc Corporation Method for analyzine disk seek times in a disk array storage device
US6202080B1 (en) * 1997-12-11 2001-03-13 Nortel Networks Limited Apparatus and method for computer job workload distribution
US6748413B1 (en) 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for load balancing of parallel servers in a network environment
US6748414B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for the load balancing of non-identical servers in a network environment
US6859927B2 (en) 1999-12-21 2005-02-22 Lockheed Martin Corporation Apparatus and method for controlling allocation of resources and task execution
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
TW577237B (en) * 2002-11-18 2004-02-21 Inst Information Industry Load balance system and method of wireless LAN
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
JP4126707B2 (ja) * 2006-07-28 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報システムの状態を解析する技術
TWI342498B (en) * 2007-01-12 2011-05-21 Asustek Comp Inc Multi-processor system and performance enhancement method thereof
US9723070B2 (en) * 2008-01-31 2017-08-01 International Business Machines Corporation System to improve cluster machine processing and associated methods
US8817614B1 (en) * 2010-09-16 2014-08-26 Vasona Networks Inc. Policy enforcer having load balancing capabilities
EP3255287B1 (fr) 2016-06-10 2024-03-20 Claverham Limited Système de réglage pour un actionneur hydraulique
US20230041718A1 (en) * 2021-08-09 2023-02-09 Kenneth Raymond Perry Automated code generation based on pseudo-code

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3813648A (en) * 1970-06-09 1974-05-28 Siemens Ag Apparatus and process for distribution of operation demands in a programmed controlled data exchange system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3348210A (en) * 1964-12-07 1967-10-17 Bell Telephone Labor Inc Digital computer employing plural processors
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US4099235A (en) * 1972-02-08 1978-07-04 Siemens Aktiengesellschaft Method of operating a data processing system
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
US4262331A (en) * 1978-10-30 1981-04-14 Ibm Corporation Self-adaptive computer load control
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
JPS61253572A (ja) * 1985-05-02 1986-11-11 Hitachi Ltd 疎結合マルチプロセツサ・システムの負荷配分方式
AU588389B2 (en) * 1985-11-14 1989-09-14 Data General Corporation Multiprocessor data processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3813648A (en) * 1970-06-09 1974-05-28 Siemens Ag Apparatus and process for distribution of operation demands in a programmed controlled data exchange system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PROCEEDINGS OF THE 1986 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, août 1986, pages 1010-1012; E. DEKEL et al.: "Optimal parallel algorithms for constructing a balanced m-way search tree" *
PROCEEDINGS OF THE 1986 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, août 1986, pages 519-527; D. KUCK et al.: "Execution of parallel loops on parallel processor systems" *
PROCEEDINGS OF THE 1986 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, août 1986, pages 528-535; P. TANG et al.: "Processor self-scheduling for multiple-nested parallel loops" *

Also Published As

Publication number Publication date
DE3741953A1 (de) 1988-06-30
GB2199966A (en) 1988-07-20
GB2199966B (en) 1991-08-07
US5053950A (en) 1991-10-01
FR2608807B1 (fr) 1994-07-08
GB8729409D0 (en) 1988-02-03

Similar Documents

Publication Publication Date Title
FR2608807A1 (fr) Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme
EP0059018B1 (fr) Multiprocesseur avec affectation dynamique des tâches en multitraitement et son utilisation
US11449355B2 (en) Non-volatile memory (NVM) based method for performance acceleration of containers
FR2767939A1 (fr) Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur
FR2667171A1 (fr) Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
FR2472233A1 (fr) Dispositif de commande de memoire pour systeme de traitement des donnees
WO2007051935A1 (fr) Procede et systeme de calcul intensif multitache et multiflot en temps reel
FR2824160A1 (fr) Conteneur generique configurable de facon dynamique
FR2677146A1 (fr) Systeme et methode de gestion de memoire de donnees avec attribution d'espace de memoire selon la classe de services demandee.
FR2582829A1 (fr) Systeme de gestion de memoire d'ordinateur
FR2625345A1 (fr) Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
EP2366147A1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
EP1290554B1 (fr) Systeme informatique modulaire et procede associe
EP0439855B1 (fr) MicrocontrÔleur pour l'exécution rapide d'un grand nombre d'opérations décomposables en séquences d'opérations de même nature
FR2573888A1 (fr) Systeme pour la transmission simultanee de blocs de donnees ou de vecteurs entre une memoire et une ou plusieurs unites de traitement de donnees
EP0251861B1 (fr) Unité de gestion de mémoire
FR2811784A1 (fr) Dispositif de gestion de memoire permettant l'inscription de blocs de donnees par substitution
FR2637708A1 (fr) Dispositif pour le traitement de donnees
WO2013104875A1 (fr) Systeme et procede de gestion de correspondance entre une memoire cache et une memoire principale
FR2587519A1 (fr) Agencement de changement de mode permettant de changer selectivement des modes d'exploitation d'un systeme de machine virtuelle
FR2574197A1 (fr) Processeur du type a sequence de donnees
EP1436694B1 (fr) Microprocesseur disposant d'un espace adressable etendu
FR2787901A1 (fr) Organisation memoire par zones physiques
FR2559286A1 (fr) Machine de traitement de l'information pour l'interpretation de langages de programmation logique
EP0270457A2 (fr) Machine informatique destinée à l'exécution de traitements symboliques pour les applications de l'intelligence artificielle

Legal Events

Date Code Title Description
CA Change of address