Brevet FR2685511A1 — publié le 19930625

PROCEDE DE CLASSIFICATION DES ARCHITECTURES D'ORDINATEUR. La présente invention concerne un procédé de classification des architectures d'ordinateurs pour, par exemple, l'utilisation dans la bibliothèque de définition d'architectures utilisé lors de l'exécution d'un programme évaluateur de performance. Lorsque l'on utilise un programme évaluateur de performance, soit pour déterminer le coût d'une requête définie, soit pour évaluer le système optimum adapté au type d'utilisation que l'on souhaite faire (ex: application fixée, SGDB fixé, operating système fixé), il est nécessaire de paramétrer une bibliothèque contenant les caractéristiques de l'architecture du système pour lequel l'évaluation va être effectuée Dans cette définition de l'architecture, un problème va se poser à l'utilisateur sur la détermination de la classification de l'architecture en modèle distribuée ou en modèle en mémoire partagée Cette classification a une répercussion sur la méthode d'évaluation utilisée. Un premier but de l'invention est donc de proposer un procédé qui permette d'effectuer à partir de la description du système une classification automatisée de l'architecture en vue de son utilisation dans une bibliothèque d'architecture d'un évaluateur. Ce premier but est atteint par le fait que le procédé de classification des architectures d'ordinateur en vue d'un évaluation de performance, ledit ordinateur étant constitué de plusieurs processeurs mis en relation avec une ou plusieurs mémoires à travers un ou plusieurs réseaux d'interconnexion (ex: bus) consiste à, d'une part évaluer le nombre de communications locales entre une mémoire et un processeur et d'autre part évaluer le nombre de communications partagées entre le processeur et plusieurs mémoires, à déterminer un coefficient de portée par le calcul du rapport entre le nombre de communications locales sur le nombre de communications partagées. Selon une autre particularité, le procédé comporte une étape de détermination de l'équivalence des architectures de même portée consistant à déterminer un coefficient de portée pondéré en calculant le rapport entre la somme des tailles mémoire des communications locales sur la somme des tailles mémoire des communications partagées; à comparer les coefficients de portée pondérée; à considérer comme équivalentes des architectures de même coefficient de portée pondérée. Selon une autre particularité, le procédé consiste en outre à comparer la valeur du coefficient de portée ou de portée pondérée par rapport à la valeur 1. Selon une autre particularité, le procédé consiste à considérer l'architecture comme distribuée si le coefficient de portée est supérieur à 1 et comme partagée si le coefficient de portée est inférieur à 1. Un autre but est de proposer une utilisation du procédé dans un programme évaluateur de performance. Selon une autre particularité, le procédé consiste à mémoriser cette information dans la mémoire du système exécutant le programme évaluateur à l'adresse de la bibliothèque de description de l'architecture du système pour lequel la classification est effectuée. Selon une autre particularité, le procédé consiste à mémoriser dans la mémoire du système les liens avec les architectures de même type (distribuée et partagée) qui sont considérées comme équivalentes. Selon une autre particularité, la description du système dont on veut classifier l'architecture est rentrée sous forme de schéma affiché à l'écran du système sur lequel le programme est exécuté, les mémoires de description du système étant représentées par des objets à l'intérieur desquels les valeurs des tailles mémoires correspondant au schéma sont inscrites et des moyens déterminent automatiquement en fonction de la description les types de communication associées aux mémoires pour calculer les coefficients de portée et de portée pondérée. Selon une autre particularité, la description du système est entrée au clavier du système informatique servant à l'exécution en utilisant un langage de description spécifique (ESL environnement spécification language). D'autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après faite en référence aux dessins annexés dans lesquels: La figure 1 représente un schéma représentatif d'un exemple d'architecture pour laquelle la classification est recherchée; La figure 2 représente un schéma représentatif d'un deuxième exemple d'une architecture pour laquelle la classification est recherchée; La figure 3 représente un schéma représentatif d'un troisième exemple d'architecture pour laquelle la classification est recherchée; La figure 4 représente un schéma représentatif d'un quatrième exemple d'architecture pour laquelle la classification est recherchée; La figure 5 représente schématiquement la classification des différentes architectures des figures 1 à 4 selon le mode partagé et distribué, et les architectures équivalentes dans un mode donné. La figure 1 représente un premier exemple d'architecture d'un système informatique dans lequel une mémoire ( 10) de taille M est reliée par un bus ( 2) à trois processeurs ( 31,32,33) qui se partagent cette mémoire Une telle architecture est dite massivement partagée Dans un cas aussi simple, il n'est peut être pas nécessaire d'avoir une méthode et un procédé de classification d'architecture, mais dans des cas plus complexes représentés aux figures suivantes, la méthode trouve toute son utilité. Pour analyser une architecture du type de celle de la figure 1, on détermine les communications locales qui représentent les communications entre une mémoire et un processeur et les communications partagées dans lesquelles une mémoire communique avec plusieurs processeurs Dans le cas de la figure 1, il existe trois communications partagées COPA ( 21,22,23) entre respectivement les processeurs ( 31,32,33) et la mémoire ( 10) L'architecture de la figure 1 ne comporte aucune communication locale La méthode de classification consiste à déterminer un coefficient de portée qui est le rapport entre la somme des communications locales par la somme des communications partagées Ce coefficient de portée CP dans le cas de la figure 1 est nul Pour déterminer si la mémoire et l'architecture est de type distribué ou de type partagé, on compare ensuite ce coefficient de portée avec la valeur 1. Si ce coefficient de portée est inférieur à 1, l'architecture est dite partagée, si le coefficient de portée est supérieure à 1, l'architecture est dite distribuée Le procédé consiste également dans une étape ultérieure à calculer un coefficient de portée pondéré constitué par la somme des tailles mémoire qui sont en communication locale et à diviser cette valeur par la somme des tailles mémoire en communication partagée Ce coefficient de portée pondéré CPP ainsi obtenu permet de déterminer pour des architectures différentes tombant dans le même type de classification si ces architectures sont équivalentes On comprendra mieux à la lumière des exemples des figures suivantes, l'utilité des coefficients de portée et des coefficients de portée pondéré. Dans le cas de la figure 1, le coefficient de portée pondéré est également nul. Le deuxième exemple d'architecture représenté à la figure 2 est constitué d'une mémoire ( 10) de taille Ml communicant par un bus ( 4) avec un ensemble de trois mémoires de taille M 2 ( 11) respectivement ( 12), respectivement ( 13) reliées au bus 4 par les liaisons ( 41), respectivement ( 42), respectivement ( 43) Ces mémoires de tailles M 2 ( 11,12,13) sont elles-mêmes reliées à trois processeurs ( 31) respectivement ( 32), respectivement ( 33) par des liaisons respectives ( 44,45,46) Ainsi sur cette architecture le processeur ( 31) est relié d'une part à la mémoire ( 11) par une communication locale ( 51), et d'autre part aux autres mémoires de même taille par les communications partagées ( 212, 213) et à la mémoire ( 10) de taille Ml par la communication partagée ( 210) Ainsi, un processeur ( 31) est relié d'une part par une communication locale à une mémoire de taille M 2, d'autre part par deux communications partagées à deux mémoires de taille M 2 et par une troisième communication partagée à une mémoire de taille Ml. En conséquence, le coefficient de portée est égal à 3 sur 9 Trois communications locales pour les trois processeurs ( 31,32,33) et 9 communications partagées pour les 3 processeurs. Le coefficient de portée: 3 = 1/3 = CP Le coefficient de portée pondéré est égal à: CPP= 3 M 2 3 M, ±6 M 2 Si la taille M 1 est 50 Méga-octets et la taille M 2 de 1 Méga-octet, CPP = 3 3 -0019 50 X 3 + 6 156 Ceci constitue le cas 2 a. Si les tailles mémoires Ml sont de 1 méga-octet et M 2 de 50 méga- octets, le coefficient de portée pondéré devient: CPP = 50 X 3 = 150 = 0,495 6 x 50 + 3 303 Ceci constitue le coefficient de portée pondéré du cas 2 b. L'architecture représentée à la figure 3 est constituée d'une mémoire de ( 10) de taille Ml reliée par un bus ( 4) et ses prolongements ( 41, 42,43) à respectivement trois processeurs ( 31,32,33) Chacun des processeurs est relié par une liaison respective ( 44,45,46) à une mémoire de taille de M 2 respectivement ( 11,12,13) Pour ce type d'architecture, un processeur donné ( 31, respectivement 32, respectivement 33) a une seule communication locale ( 33,11, respectivement 32,12, respectivement 33,13) Chaque processeur ( 31, respectivement 32,33) a également une seule communication partagée ( 31,10, respectivement 32,10, respectivement 33,10) En effet, le processeur ( 32) ne peut pas communiquer avec la mémoire ( 11) sans passer par le processeur ( 31) L'architecture a donc trois communications locales et trois communications partagées et le coefficient de portée est donc égale à 1 Le coefficient de portée pondéré CPP sera égal au rapport M 2 sur Ml Si la taille M 2 est inférieure à la taille Ml, le coefficient de portée pondéré sera inférieur à 1 et l'architecture sera plutôt à mémoire partagée Ainsi pour le cas 3 a o M 2 est égal à 1 méga-octet et Ml égal 50 méga-octets, le coefficient CPP du cas 3 a sera égal à 0,02. Si la taille M 2 est supérieure à la taille Ml, ce coefficient de portée pondéré sera supérieur à 1 et l'architecture sera plutôt à mémoire distribuée. Dans le cas 3 b o M 2 égal 50 méga-octets et Ml 1 méga- octet, le coefficient CPP du cas 3 b sera égal à 50. La figure 4 représente un dernier exemple d'architecture dans lequel une mémoire 10 de taille Ml est relié par un bus 4 et les liaisons ( 41,42, 43) à respectivement 3 processeurs ( 31,32,33) Chacun des processeurs est relié par une liaison respective ( 44,45,46) à une mémoire de taille M 2 ( 11, respectivement 12, respectivement 13). Chaque mémoire de taille M 2 est reliée elle-même par une liaison respectivement ( 47,48,49) au bus 4. Une telle architecture permet donc pour un processeur ( 31) d'avoir une liaison locale avec la mémoire de type M 2 qui lui est associée respectivement ( 11) et trois liaisons partagées dont une avec le mémoire de type M 1 ( 10) et deux avec les mémoires ( 12, respectivement 13) associées aux autres processeurs de type M 2 ( 32,33) L'ensemble de l'architecture réalise donc trois liaisons locales M 2, trois liaisons partagées M 1 et 6 communications partagées M 2 CP est égal à 1/3 Le coefficient CPP = 3 M 3 Mî+îM 2 Le coefficient de portée pondérée dans le cas 4 A o la mémoire M 1 est de 50 Méga-octets, les mémoires M 2 de 1 méga-octets sera de: CPP = 3 = 3 = 0,019 x 3 + 6 156 Dans le cas 4 B o M 2 = 50 Méga-octets et M 1 = 1 Méga-octet, le coefficient de portée pondérée CPP sera: CPP 150 = 150 = 0,425 3 + 6 x 50 353 En plaçant les différentes valeurs obtenues pour chacun des cas étudiés, sur l'axe gradué de la figure 5, entre les valeurs O et l'infini et ayant pour valeur frontière la valeur 1, on constate que les cas 1,2,4, et 3 a sont du type plutôt partagé et le cas 3 b est du type distribué et que les cas 2 a et 4 a sont équivalent puisque les CPP sont il égaux, et le cas 3 a est pratiquement équivalent aux deux précédent Cette méthode permet donc d'instaurer une classification en architecture de type partagée ou distribuée et de mémoriser le résultat de cette classification dans la bibliothèque d'architecture de la mémoire du système qui utilisera ce résultat pour par la suite effectuer une évaluation de performance de l 'architecture décrite. L'architecture décrite peut être rentrée sous forme graphique par des objets associés aux mémoires à représenter comme des rectangles et à l'intérieur desquelles les valeurs des tailles mémoires sont inscrites. Des traits représentent les liaisons entre les mémoires et les processeurs qui eux-mêmes sont représentés par d'autre objets tels que des cercles. Un logiciel examine ensuite les différentes communications et les classe en type local ou partagé, puis détermine par calcul les coefficients. Une autre possibilité consiste à rentrer directement au clavier le nombre de communications locales et de communications de type partagé ainsi que les tailles mémoires associées à ces communications de portée et de portée pondérée. Le logiciel calculant par la suite tout seul, les coefficients CP et CPP, et rangeant le résultat en mémoire après avoir fait la comparaison avec la valeur 1 pour déterminer si l'architecture est de type partagée ou distribuée et classant dans une même zone les architectures de même type qui sont considérées comme équivalentes par comparaison des CPP dans un type d'architecture donné. D'autres modifications à la portée de l'homme de métier font également partie de l'invention. REVENDICATIONS 1 Procédé de classification des architectures d'un ordinateur en vue d'une évaluation de performance, ledit ordinateur étant constitué de plusieurs processeurs mis en relation avec une ou plusieurs mémoires à travers des réseaux d'interconnexion caractérisé en ce qu'il consiste à d'une part évaluer le nombre de communications locales entre une mémoire et un processeur et d'autre part évaluer le nombre de communications partagées entre un processeur et plusieurs mémoires, à déterminer un coefficient de portée par le calcul du rapport entre le nombre de communications locales sur le nombre de communications partagées. 2 Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape de détermination de l'équivalence des architectures de même portée consistant à déterminer un coefficient de portée pondéré en calculant le rapport entre la somme des tailles mémoire des communications locales sur la somme des tailles mémoire des communications partagées; à comparer les coefficients de portée pondérée; à considérer comme équivalentes des architectures de même coefficient de portée pondérée. 3 Procédé selon la revendication 1 ou 2 caractérisé en ce qu'il consiste en outre à comparer la valeur du coefficient de portée ou de portée pondérée par rapport à la valeur 1. 4 Procédé selon la revendication 3 caractérisé en ce qu'il consiste à considérer l'architecture comme distribuée si le coefficient de portée est supérieur à 1 et comme partagée si le coefficient de portée est inférieur à 1. Procédé selon la revendication 4 caractérisé en ce qu'il consiste à mémoriser cette information dans la mémoire du système exécutant un programme évaluateur de performance faisant appel à une bibliothèque de description d'architectures à l'adresse de la bibliothèque de description de l'architecture de l'ordinateur pour lequel la classification est effectuée. 6 Procédé selon une des revendications précédentes caractérisé en ce qu'il consiste à mémoriser dans la mémoire du système les liens avec les architectures de même type (distribuée et partagée) qui sont considérées comme équivalentes. 7 Procédé selon une des revendications précédentes caractérisé en ce que la description du système dont on veut classifier l'architecture est rentrée sous forme de schéma affiché à l'écran du système sur lequel le programme est exécuté, les mémoires de description du système à classifier étant représentées par des objets à l'intérieur desquels les valeurs des tailles mémoires correspondant au schéma sont inscrites et des moyens déterminent automatiquement les types de communication associées aux mémoires pour calculer les coefficient de portée et de portée pondérée. 8 Procédé selon la revendication 7 caractérisé en ce que la description du système est entrée au clavier du système informatique servant à l'exécution en utilisant un langage de description spécifique.