FR3056320A1 - Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice - Google Patents

Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice Download PDF

Info

Publication number
FR3056320A1
FR3056320A1 FR1658799A FR1658799A FR3056320A1 FR 3056320 A1 FR3056320 A1 FR 3056320A1 FR 1658799 A FR1658799 A FR 1658799A FR 1658799 A FR1658799 A FR 1658799A FR 3056320 A1 FR3056320 A1 FR 3056320A1
Authority
FR
France
Prior art keywords
computer
matrix
operations
calculation
sub
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.)
Withdrawn
Application number
FR1658799A
Other languages
English (en)
Inventor
Christophe Genolini
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.)
Zebrys
Original Assignee
Zebrys
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zebrys filed Critical Zebrys
Priority to FR1658799A priority Critical patent/FR3056320A1/fr
Publication of FR3056320A1 publication Critical patent/FR3056320A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Procédé de calcul par au moins un ordinateur d'au moins une opération d'algèbre linéaire sur au moins une matrice, le procédé comportant des étapes de : - 51/ fractionnement, par une unité centrale d'un ordinateur, selon des critères préalablement définis, d'une opération d'algèbre linéaire sur une matrice, en au moins deux opérations sur au moins deux sous-matrices, - 52/ calcul d'une partie des opérations effectuées sur une sous-matrice par une unité centrale de traitement d'au moins un ordinateur, - 53/ calcul d'une partie des opérations effectuées sur une sous-matrice par une carte de calcul de type dit carte graphique pilotée par un ordinateur, - 54/ calcul du résultat d'au moins une opération d'algèbre linéaire sur au moins une matrice à partir du résultat des opérations ayant été effectuées sur au moins deux sous-matrices lors des étapes 52 et 53.

Description

DOMAINE TECHNIQUE DE L’INVENTION
La présente invention s’inscrit dans le domaine des procédés de calcul par ordinateurs. Plus particulièrement, l’invention concerne un procédé de calcul par au moins un ordinateur d’au moins une opération d’algèbre linéaire sur au moins une matrice. La présente invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans la multiplication de matrices de grande taille appliquée au domaine des statistiques.
ÉTAT DE LA TECHNIQUE
De nombreux domaines scientifiques et techniques ont besoin d’effectuer des résolutions de problèmes complexes impliquant de grandes quantités de données. C’est le cas notamment des météorologues, biologistes, économistes, simulateurs, statisticiens. Dans toutes ces disciplines, il est courant de modéliser des phénomènes sous la forme de problèmes linéaires. La résolution de ces problèmes linéaires est généralement réductible à des opérations d’algèbre linéaire sur une ou plusieurs matrices. Il est donc nécessaire d’effectuer des opérations d’algèbre linéaire sur des matrices de très grande taille.
Ces opérations d’algèbre linéaire peuvent, suivant les problèmes à résoudre, consister par exemple en la décomposition QR d’une ou plusieurs matrices, en la multiplication d’au moins deux matrices, ou en tout autre enchaînement d’opérations d’algèbre linéaire.
Pour effectuer ces opérations d’algèbre linéaire, la méthode « naïve >> consiste, avec un ordinateur commun, à charger tous les coefficients des matrices impliquées dans l’opération à l’intérieur de la mémoire vive de l’unité centrale de traitement de l’ordinateur. Puis le processeur de l’unité centrale de traitement de l’ordinateur calculera un par un les coefficients de la matrice résultat de l’opération, en utilisant les formules d’algèbre linéaire usuelles bien connues de l’homme du métier, comme par exemple la formule du produit matriciel ordinaire.
Cette méthode présente plusieurs inconvénients. Premièrement, les algorithmes basés sur les formules d’algèbre linéaire simple ont généralement une complexité en temps élevée. Par exemple, la multiplication de deux matrices par le produit ordinaire a une complexité en temps en O(n3), où n est la taille caractéristique des matrices à multiplier. Le calcul « naïf >> avec un ordinateur commun de ce type d’opérations d’algèbre linéaire, lorsqu’il est appliqué à des matrices de grande taille, peut donc être très coûteux en temps de calcul. De plus, la quantité de données à charger dans la mémoire vive de l’ordinateur peut excéder la capacité de cette mémoire vive si les matrices sont très grandes, ce qui risque de ralentir considérablement l’exécution des calculs.
Pour accélérer l’exécution des opérations d’algèbre linéaire par ordinateur, l’art antérieur comporte en premier lieu des solutions algorithmiques. Pour l’exemple de la multiplication de matrices, l’algorithme de Strassen a une complexité en temps en O(n2807), il permet donc d’effectuer les calculs de multiplications de matrices plus rapidement que la méthode « naïve >>. Mais le calcul d’opérations d’algèbre linéaire sur des matrices de très grande taille, avec un ordinateur commun et même en utilisant ce type d’algorithme réduisant la complexité, peut être très long.
La plupart des opérations d’algèbre linéaire sur des matrices peuvent être fractionnées en plusieurs opérations sur des sous-matrices de plus petite taille. Par exemple, la méthode de la multiplication de matrices par bloc consiste à découper les matrices à multiplier en plusieurs blocs sous-matrices, puis à effectuer des calculs sur ces blocs sous-matrices suivant des formules connues en soi de l’homme du métier, pour obtenir enfin le résultat de la multiplication des deux matrices.
Pour améliorer le temps de calcul des opérations d’algèbre linéaire sur des matrices, il a été proposé par l’art antérieur, en utilisant ce type d’algorithmes basés sur le principe du fractionnement des opérations, d’effectuer les calculs sur des sousmatrices simultanément dans plusieurs unités centrales de traitement. Ces unités centrales de traitements peuvent être implantées dans une même machine, formant un supercalculateur. On parle alors de calcul parallèle.
Mais ces dispositifs de calcul présentent l’inconvénient d’être très coûteux, et leur utilisation n’est pas à la portée d’un grand nombre d’ingénieurs et scientifiques, qui sont donc réduits à effectuer leurs opérations d’algèbre linéaire sur un ordinateur ordinaire par la méthode naïve, ce qui présente l’inconvénient d’être très long.
La présente invention vise à permettre de remédier aux inconvénients des solutions proposées par l’art antérieur pour calculer des opérations d’algèbre linéaire par ordinateurs, en proposant un procédé de calcul par au moins un ordinateur d’au moins une opération d’algèbre linéaire sur au moins une matrice qui soit rapide et efficace, en particulier dans le cas de matrices de grande taille.
OBJET DE L’INVENTION
L’invention concerne à cet effet en premier lieu un procédé de calcul par au moins un ordinateur d’au moins une opération d’algèbre linéaire sur au moins une matrice, le procédé comportant des étapes de :
- 51/ fractionnement, par au moins une unité centrale de traitement d’un ordinateur, selon des critères préalablement définis, d’au moins une opération d’algèbre linéaire sur au moins une matrice, en au moins deux opérations sur au moins deux sous-matrices,
- 52/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une unité centrale de traitement d’au moins un ordinateur,
- 53/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une carte de calcul de type dit carte graphique pilotée par un ordinateur,
- 54/ calcul du résultat d’au moins une opération d’algèbre linéaire sur au moins une matrice à partir du résultat des opérations ayant été effectuées sur au moins deux sous-matrices lors des étapes 52 et 53.
Par ordinateur, on entend un ou plusieurs dispositifs informatiques, pouvant éventuellement être reliés par un réseau, et comportant au moins une unité centrale de traitement ou au moins une carte de calcul de type dit carte graphique.
Par unité centrale de traitement on entend un dispositif informatique programmable, comprenant au moins une mémoire vive et un processeur, étant apte à effectuer des calculs d’algèbre linéaire sur au moins une matrice.
Par carte graphique on entend un dispositif informatique configuré pour permettre la production d’images affichables sur un écran, ledit dispositif étant par ailleurs programmable, comprenant au moins un processeur, et étant apte à effectuer des calculs d’algèbre linéaire sur au moins une matrice. Les processeurs des cartes graphiques d’ordinateur comportent généralement beaucoup plus d’unités de calcul que les processeurs des unités centrales de traitement d’ordinateur.
Par matrice, on entend un tableau de nombres réels, complexes ou appartenant à tout ensemble de nombres adapté à la résolution d’un problème, ce tableau pouvant être de dimension 2, ou d’une autre dimension, ce tableau pouvant être de toute taille.
Une opération d’algèbre linéaire peut consister par exemple en la décomposition QR d’une ou plusieurs matrices, en l’inversion d’une ou plusieurs matrices, en la multiplication d’au moins deux matrices, ou en toutes autre opération applicable à des matrices et connue en soi de l’homme du métier.
Par fractionnement d’une opération d’algèbre linéaire sur une matrice, on entend généralement le remplacement de cette opération sur cette matrice par plusieurs opérations sur des sous-matrices de plus petite taille. Dans le cas d’une matrice de dimension 2, les sous-matrices sont généralement découpées suivant les rectangles délimités dans la matrice par un groupe de lignes adjacentes croisant un groupe de colonnes adjacentes de la matrice.
Ce fractionnement est fait de manière à ce qu’après exécution des opérations nécessaires sur les sous-matrices de plus petite taille, l’application de formules mathématiques, connues en soi de l’homme du métier, permette de reconstituer le résultat de l’opération d’algèbre linéaire sur la matrice à partir du résultat des opérations effectuées sur les sous-matrices. Ainsi, on fractionne une opération d’algèbre linéaire sur au moins une matrice en plusieurs calculs à faire sur plusieurs sous-matrices. Ceci permet de répartir la charge de calcul entre plusieurs processeurs, c’est le calcul parallèle. Les opérations sur les sous-matrices peuvent à leur tour être fractionnées en calculs sur des sous-matrices de sous-matrices, et ainsi de suite autant de fois qu’il est nécessaire.
Par opérations sur les sous-matrices, on entend des multiplications, additions, soustractions ou toutes autres opérations d’algèbre linéaire étant appliquées auxdits blocs sous-matrices, ces opérations suivant les formules adéquates connues en soi de l’homme du métier.
Le procédé selon l’invention présente l’avantage, en utilisant un ou plusieurs ordinateurs ordinaires bon marchés, de réduire beaucoup le temps de calcul des opérations d’algèbre sur une ou plusieurs matrices. En effet, le procédé selon l’invention permet de paralléliser les calculs, qui sont effectués simultanément sur au moins une unité centrale de traitement d’un ordinateur et sur au moins une carte graphique d’un ordinateur. Le procédé selon l’invention permet ainsi d’exploiter au maximum les ressources du ou des ordinateurs utilisés, en répartissant les calculs sur plusieurs processeurs, même s’ils ne sont initialement pas destinés à cet usage, comme c’est le cas du processeur de la carte graphique. De plus, les processeurs des cartes graphiques d’ordinateur comportent généralement beaucoup plus d’unités de calcul que les processeurs des unités centrales de traitement d’ordinateur. Donc l’utilisation des cartes graphiques est adaptée à un type de calculs hautement parallèles, ce qui est le cas des calculs d’algèbre linéaire sur au moins une matrice, car il est algorithmiquement aisé de fractionner ces opérations d’algèbres linéaires sur des matrices de grandes tailles en de nombreuses opérations d’algèbres linéaires sur des matrices de plus petite taille. L’utilisation d’au moins une carte graphique réduit donc considérablement les temps de calcul.
Le procédé selon l’invention permet également, en utilisant un ou plusieurs ordinateurs ordinaires bon marchés, d’augmenter considérable la taille des données traitable. En effet, le découpage, la parallélisation et la répartition des calculs sur plusieurs ordinateurs permettent de traiter des matrices qui n’auraient pas pu être chargé dans la mémoire d’un seul ordinateur (car trop volumineuses). Le fait de les découper en plusieurs sous-matrices réduit considérablement la taille de la mémoire dont l’ordinateur doit disposer pour faire le calcul.
Selon des modes de mise en oeuvre particuliers, l’invention répond en outre aux caractéristiques suivantes, mises en oeuvre séparément ou en chacune de leurs combinaisons techniquement opérantes.
Dans un mode de mise en oeuvre particulier avantageux, les étapes 52 et 53 sont effectuées au moins en partie simultanément.
Dans un mode de mise en oeuvre particulier avantageux, l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux unités centrales de traitement implantées dans deux ordinateurs distincts étant reliés entre eux par un réseau.
Par réseau, on entend au moins une connexion informatique entre deux ordinateurs distincts permettant le transfert de données entre ces deux ordinateurs, ledit réseau pouvant comporter zéro, un ou plusieurs serveurs distants, ledit réseau pouvant être local ou bien transiter via un réseau plus vaste comme un intranet ou internet, la connexion pouvant comporter un câble, ou être sans fil, ou comporter tout moyen de télécommunication adapté et connu en soi de l’homme du métier.
Le procédé selon ce mode de mise en oeuvre particulier permet, à moindre coût et sans infrastructures spécifiques, de paralléliser encore plus les calculs, ce qui permet de réduire le temps de calcul de la multiplication des matrices en répartissant la charge de travail au maximum entre les processeurs disponibles.
Dans un mode de mise en oeuvre particulier avantageux, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux cartes graphiques distinctes implantées dans deux ordinateurs distincts étant reliés entre eux par un réseau.
Effectuer les opérations sur les sous-matrices avec au moins deux cartes graphiques de deux ordinateurs distincts permet, à moindre coût et sans infrastructures spécifiques, de paralléliser encore plus les calculs, ce qui permet de réduire le temps de calcul des opérations d’algèbre linéaire sur les matrices en répartissant la charge de travail au maximum entre les processeurs disponibles. En effet, la structure des cartes graphiques est plus adaptée aux calculs hautement parallèles, car une carte graphique comporte généralement beaucoup plus d’unités de calcul que n’en comporte une unité centrale de traitement d’ordinateur.
Dans un mode de mise en oeuvre particulier avantageux, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux cartes graphiques distinctes implantées dans un même ordinateur.
Compte tenu du faible coût des cartes graphiques et des possibilités de modularités existantes dans l’architecture des ordinateurs actuels, effectuer les opérations sur les blocs sous-matrices avec au moins deux cartes graphiques distinctes implantées dans un même ordinateur présente l’avantage, à moindre coût, de paralléliser encore plus les calculs, ce qui permet de réduire le temps de calcul de la multiplication des matrices.
Dans un mode de mise en œuvre particulier avantageux, l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est effectuée par au moins une unité centrale de traitement d’au moins un ordinateur en mettant en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de l’unité centrale de traitement, en même temps qu’un processeur de l’unité centrale de traitement effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
La mise en œuvre du procédé de chargement et calculs simultanés lors de l’étape 52 du procédé selon notre invention permet de diminuer le temps de calcul de la multiplication des matrices. En effet, l’envoi des données dans la mémoire vive de l’unité centrale de traitement au fur et à mesure que le processeur de l’unité centrale de traitement effectue ses calculs sur les données étant déjà chargées dans sa mémoire vive permet d’éviter que les calculs effectués par le processeur ne soient ralentis ou même arrêtés par la durée du chargement des données en mémoire.
Dans un mode de mise en œuvre particulier avantageux, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une carte graphique met en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de la carte graphique, en même temps qu’un processeur de la carte graphique effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
La mise en œuvre du procédé de chargement et calculs simultanés lors de l’étape 53 du procédé selon notre invention permet de diminuer le temps de calcul de la multiplication des matrices. En effet, l’envoi des données dans la mémoire vive de la carte graphique au fur et à mesure que le processeur de la carte graphique effectue ses calculs sur les données étant déjà chargées dans sa mémoire vive permet d’éviter que les calculs effectués par le processeur ne soient ralentis ou même arrêtés par la durée du chargement des données en mémoire.
Dans un mode de mise en oeuvre particulier avantageux, les opérations réalisées par au moins deux ordinateurs distincts, dits premier ordinateur et deuxième ordinateur, mettent en oeuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs effectués par le deuxième ordinateur, depuis une mémoire du premier ordinateur vers une mémoire du deuxième ordinateur, en même temps qu’au moins un processeur implanté dans le deuxième ordinateur effectue les calculs sur les données étant déjà chargées dans une mémoire dudit deuxième ordinateur.
La mise en oeuvre du procédé de chargement et calculs simultanés entre plusieurs ordinateurs dans un mode de mise en oeuvre du procédé selon notre invention permet de diminuer le temps de calcul de la multiplication des matrices.
Dans un mode de mise en oeuvre particulier avantageux, l’étape 51 de fractionnement d’au moins une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices, est effectuée de manière à ce que les opérations qui seront effectuées lors de l’étape 53 sur au moins une sous-matrice par au moins une carte graphique soient parfaitement adaptées aux capacités de calcul de ladite carte graphique.
Ce mode de mise en oeuvre du procédé selon notre invention présente l’avantage de permettre une diminution du temps de calcul des opérations d’algèbre linéaire sur une ou plusieurs matrices. En effet, le cas où chacune des nombreuses unités de calcul de la carte graphique effectue simultanément des calculs adaptés à ses capacités spécifiques correspond à une mise en oeuvre hautement parallèle très rapide des calculs.
Dans un mode de mise en oeuvre particulier avantageux, l’étape 51 de fractionnement d’au moins une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices, est effectuée de manière à ce que les opérations qui seront effectuées lors de l’étape 53 sur au moins une sous-matrice par au moins deux cartes graphiques distinctes implantées dans deux ordinateurs distincts soient parfaitement adaptées aux capacités de calcul desdits deux ordinateurs.
Dans un mode de mise en oeuvre particulier avantageux, le procédé comporte en outre une étape 55/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle de régression linéaire.
Dans un mode de mise en oeuvre particulier avantageux, le procédé comporte en outre une étape 56/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle d’analyse statistique.
Selon un autre aspect, l’invention concerne un dispositif de calcul par ordinateur configuré pour permettre la mise en oeuvre d’un procédé selon l’un des modes de mise en oeuvre décrit ci-dessus.
Selon un autre aspect, l’invention concerne un dispositif connectable à un ordinateur, comprenant au moins une carte de calcul de type dit carte graphique, ledit dispositif étant configuré pour permettre la mise en oeuvre d’un procédé selon l’un des modes de mise en oeuvre décrits ci-dessus.
L’utilisation d’un tel dispositif, permet de diminuer le temps de calcul des opérations d’algèbre linéaire sur au moins une matrice, tout en étant simple d’usage et en ne nécessitant pas d’infrastructure particulière. En effet, il suffit à l’utilisateur de connecter ledit dispositif sur son ordinateur pour disposer d’au moins une carte graphique supplémentaire, permettant d’accélérer beaucoup les temps de calculs parallèlisables, comme les opérations d’algèbre linéaire.
Selon un autre aspect, l’invention concerne un dispositif de calcul par ordinateur, comprenant au moins deux cartes de calcul de type dit cartes graphiques, ledit dispositif étant configuré pour permettre la mise en oeuvre du procédé selon l’un des modes de mise en oeuvre décrits ci-dessus.
Un ordinateur comportant au moins deux cartes graphiques permet de diminuer considérablement le temps de calcul des opérations d’algèbre linéaire sur au moins une matrice.
BREVE DESCRIPTION DES FIGURES
D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite dans un but explicatif et nullement limitatif en regard des dessins annexés, dans lesquels :
- la figure 1 illustre les étapes d’un mode de mise en oeuvre d’un procédé selon l’invention,
- la figure 2 illustre les étapes d’un autre mode de mise en oeuvre d’un procédé selon l’invention,
- la figure 3 illustre un dispositif destiné à mettre en oeuvre un procédé selon l’invention, comportant une carte graphique,
- la figure 4 illustre un dispositif destiné à mettre en oeuvre un procédé selon l’invention, comportant plusieurs ordinateurs en réseau équipés de cartes graphiques,
- la figure 5 illustre un dispositif destiné à mettre en oeuvre un procédé selon l’invention, comportant plusieurs cartes graphiques dans un même ordinateur,
- la figure 6 illustre un dispositif connectable à un ordinateur destiné à mettre en oeuvre un procédé selon l’invention,
- la figure 7 illustre un dispositif destiné à mettre en oeuvre un procédé selon l’invention, dans un mode de mise en oeuvre du procédé de chargement et calculs simultanés.
DESCRIPTION DETAILLEE D’EXEMPLES DE RÉALISATION DE L’INVENTION
On note, dès à présent, que les figures ne sont pas à l’échelle.
L’invention trouve sa place dans le contexte des procédés de calculs par ordinateurs 3.
Dans un mode de mise en oeuvre illustré par la figure 2, le procédé comporte une étape 55/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle de régression linéaire.
Dans un mode de mise en oeuvre particulier de l’invention, illustré par la figure 2, le procédé comporte une étape 56/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle d’analyse statistique.
En statistiques, un modèle de régression linéaire est un modèle de régression d'une variable expliquée sur une ou plusieurs variables explicatives dans lequel on fait l'hypothèse que la fonction qui relie les variables explicatives à la variable expliquée est linéaire dans ses paramètres. Par exemple, une analyse de régression linéaire peut révéler une relation linéaire existante entre la demande de vélos et différents caractères démographiques (âge, taille) des acheteurs de ce produit. Pour résoudre un modèle d’analyse statistique, par exemple pour identifier des corrélations entre variables lorsqu’on dispose de données, l’utilisation d’un modèle de régression linéaire est fréquente. Dans certains cas, on peut écrire ce problème de régression linéaire sous la forme matricielle suivante :
y = a + ε
Avec :
Y le vecteur de la variable expliquée
X la matrice des variables explicatives a le vecteur des paramètres à estimer ε le vecteur des paramètres d’erreur
Sous certaines hypothèses, la résolution de ce modèle de régression linéaire peut être faite par la méthode des moindres carrés. Dans ce cas, la solution obtenue est l’estimateur des moindres carrés ordinaires, qui minimise la somme des carrés des résidus. Par résidus, on entend la différence entre la valeur de Y observée et estimée. On a alors :
ô =
Avec :
â le vecteur des paramètres estimés par la méthode des moindres carrés
X’ la transposée de X (X’X)'1 la matrice inverse de X’X
Ces formules constituent un exemple nullement limitatif, reposant sur certaines hypothèses particulières. Le principe des modèles de régression linéaire et de la méthode des moindres carrés est connu en soi de l’homme du métier.
On voit que dans certains cas, un modèle d’analyse statistique, mis sous la forme d’un modèle de régression linéaire, voit sa résolution ramenée, en termes de calculs à effectuer, à des inversions, transpositions, et multiplications de matrices. Ces matrices peuvent être de grande taille. Le facteur limitant dans la résolution par un ou plusieurs ordinateurs 3 de certains modèles d’analyse statistique est alors le temps de calcul important qu’impliquent les opérations d’algèbre linéaire sur des matrices de grandes tailles.
Le procédé de calcul par au moins un ordinateur 3 d’au moins une opération d’algèbre linéaire sur au moins une matrice, illustré par la figure 1, comporte des étapes de :
- 51/ fractionnement, par au moins une unité centrale de traitement 1 d’un ordinateur 3, selon des critères préalablement définis, d’au moins une opération d’algèbre linéaire sur au moins une matrice, en au moins deux opérations sur au moins deux sous-matrices,
- 52/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une unité centrale de traitement 1 d’au moins un ordinateur 3,
- 53/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une carte de calcul de type dit carte graphique 2 pilotée par un ordinateur 3, les étapes 52 et 53 étant effectuées au moins en partie simultanément,
- 54/ calcul du résultat d’au moins une opération d’algèbre linéaire sur au moins une matrice à partir du résultat des opérations ayant été effectuées sur au moins deux sous-matrices lors des étapes 52 et 53.
Dans un mode de mise en oeuvre particulier nullement limitatif du procédé selon l’invention, les opérations d’algèbre linéaire à effectuer consistent en la multiplication de deux matrices de dimension 2. Dans ce mode de mise en oeuvre particulier, le fractionnement d’au moins une opération d’algèbre linéaire consiste à découper chacune des deux matrices à multiplier en plusieurs blocs sous-matrices. Par découpage d’une matrice, on entend la partition de cette matrice en plusieurs blocs sous-matrices de même dimension et de tailles inférieures. Dans le cas d’une matrice de dimension 2, la partition se fait suivant les rectangles délimités par un groupe de lignes adjacentes croisant un groupe de colonnes adjacentes de ladite matrice.
Dans un mode de mise en oeuvre, les algorithmes utilisés pour procéder au calcul de la multiplication d’au moins deux matrices sont basés sur le principe de la multiplication de matrices par blocs. Pour illustrer cette propriété du produit matriciel, on donne ci-dessous la formule permettant la multiplication par blocs de deux matrices M et N de dimension 2 à valeurs réelles.
Si l’on considère les matrices suivantes :
Telles que A, B, C, D, E, F, G et H sont des matrices vérifiant que :
- Le nombre de colonnes de A et C est égal au nombre de lignes de E et F
- Le nombre de colonnes de B et D est égal au nombre de lignes de G et H On a alors :
» =
Figure FR3056320A1_D0001
Ces formules constituent un exemple nullement limitatif, reposant sur certaines hypothèses particulières. Le principe de la multiplication de matrices par blocs est connu en soi de l’homme du métier.
On voit comment, dans ce mode de mise en oeuvre particulier, l’opération d’algèbre linéaire sur les deux matrices M et N est fractionnée en plusieurs opérations d’algèbres linéaires sur les sous-matrices A, B, C, D, E, F, G et H de plus petites tailles.
Les algorithmes de multiplication de matrices reposant sur le principe de la multiplication de matrices par blocs permettent de scinder des calculs lourds, comme la multiplication directe de grandes matrices, en de nombreux calculs étant effectués sur des sous-matrices de plus petites tailles. Ceci permet de gagner du temps de calcul en faisant réaliser ces calculs intermédiaires sur les sous-matrices simultanément par plusieurs processeurs distincts d’unités centrales de traitement 1 d’un ou plusieurs ordinateurs 3. On nomme généralement ce mode opératoire calcul parallèle.
Dans un mode de réalisation du procédé selon l’invention, les opérations à effectuer sur les sous-matrices peuvent être effectuées simultanément, par au moins une unité centrale de traitement 1 d’au moins un ordinateur 3 d’une part, et part au moins une carte graphique 2 pilotée par un ordinateur 3 d’autre part.
La majorité des ordinateurs 3 ordinaires sont aujourd’hui équipés d’une carte graphique 2. L’utilisation de cette carte graphique 2 pour effectuer une partie des calculs nécessaires dans des opérations d’algèbre linéaire sur au moins une matrice permet de diminuer le temps nécessaire à ces opérations en permettant d’effectuer une partie des calculs simultanément sur la carte graphique 2 d’un ordinateur 3, et sur son unité centrale de traitement 1. Ce mode de mise en oeuvre de l’invention avec un ordinateur 3 ordinaire étant équipé d’une carte graphique 2 présente l’avantage de ne nécessiter aucun matériel particulier, et il est donc possible de le mettre en oeuvre simplement et à moindre coût.
Les unités centrales de traitement 1 d’ordinateurs 3 comportent généralement peu d’unités de calcul (8 unités de calculs par exemple), mais comportent des mémoires vives de taille importante. Cette structure est adaptée à effectuer relativement peu de calculs simultanément, mais sur des données de grande taille. Au contraire, Les cartes de calculs de type carte graphique 2 comportent généralement un grand nombre d’unités de calculs, mais relativement peu de mémoire vive. Cette structure est adaptée à effectuer de nombreux calculs simultanément sur des données de relativement petite taille.
La structure des cartes graphiques 2 est donc très bien adaptée aux opérations d’algèbre linéaire sur des matrices, qui sont décomposables en de nombreux calculs sur des sous-matrices de plus petite taille. Autrement dit, la structure hautement parallèle des cartes graphiques 2 est adaptée aux opérations d’algèbre linéaire, qui sont aisément parallèlisables. Il est donc clair que le temps de calcul des opérations d’algèbre linéaire sur des matrices est considérablement réduit par l’utilisation d’une carte graphique 2 effectuant une partie des calculs.
La ou les cartes graphiques 2 utilisées dans les modes de mise en oeuvre particuliers de l’invention peuvent être de toute marque et modèle. Il peut s’agir de cartes graphiques 2 ordinaires d’électronique grand public, comme par exemple la carte NDIVIA quadro K4100M®, ou bien de cartes graphiques 2 de conception et/ou fabrication spécifique.
La ou les unités centrales de traitement 1 utilisées dans les modes de mise en oeuvre particuliers de l’invention peuvent être de toute marque et modèle. Il peut s’agir d’unités centrales de traitement 1 ordinaires d’électronique grand public, comme par exemple le processeur Intel Core 17-4910MQ®, ou bien d’unités centrales de traitement 1 de conception et/ou fabrication spécifiques.
Le procédé selon l’invention permet des gains de temps de calculs particulièrement sensibles lorsqu’il est appliqué à au moins une matrice de grande taille. Par matrice de grande taille on entend, par exemple, une matrice réelle de dimension 2, ayant mille colonnes et un million de lignes, c’est-à-dire une matrice qui occupe un espace d’environ 1 Gigaoctet dans la mémoire d’un ordinateur 3. Ces valeurs ne sont données qu’à titre d’exemple, le procédé selon l’invention pouvant être appliqué à n’importe quelle matrice de n’importe quelle taille.
Dans un mode de mise en oeuvre, l’utilisation du procédé selon l’invention permet une diminution des temps de calcul nécessaires aux opérations d’algèbre linéaire sur des matrices d’un facteur 100 à 1000, par rapport au temps nécessaire pour effectuer les mêmes opérations, sur le même ordinateur 3, sans utiliser le procédé selon l’invention. Par exemple, dans le cas particulier d’un calcul d’imputation multiple, le procédé selon invention est 1022 fois plus rapide que le calcul avec le même matériel sans utiliser le procédé selon l’invention.
Dans un mode particulier de mise en oeuvre du procédé selon l’invention, l’étape 51 de fractionnement d’au moins une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices, est effectuée de manière à ce que les opérations qui seront effectuées lors de l’étape 53 sur au moins une sous-matrice par au moins une carte graphique 2 soient parfaitement adaptées aux capacités de calcul de ladite carte graphique 2.
Il est généralement possible de fractionner une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices de plus petite taille. De même, il est généralement possible de fractionner chacune des opérations sur les sous-matrices en plusieurs opérations sur des sous-matrices de sous-matrices d’encore plus petite taille. On peut ainsi fractionner les opérations de manière récursive, jusqu’à un point où la résolution de l’opération d’algèbre linéaire initiale sur au moins une matrice est équivalente à la résolution d’un grand nombre d’opérations d’algèbre linéaire sur des sous-matrices de petite taille.
Il est possible de choisir algorithmiquement jusqu’à quelle taille de sousmatrices on fractionne les calculs. Il est possible de fractionner les opérations sur certaines sous-matrices en de très nombreuses opérations sur de très petites sousmatrices, et/ou de fractionner peu ou pas certaines autres sous-matrices. L’idéal est de fournir à chaque unité de calcul des opérations à faire sur des sous-matrices dont la taille est égale à la taille de la mémoire vive. De cette manière, on répartit au maximum possible la charge de calcul entre toutes les unités de calcul disponibles, et dont on connaît les caractéristiques techniques. Dans ce mode de mise en oeuvre, on utilise simultanément toutes les unités de calcul de la carte graphique 2 pour faire de nombreux calculs portant sur des sous-matrices de dimension adaptée à la taille de la mémoire vive de chacune des unités de calcul. Or on a rappelé plus haut que les cartes graphiques 2 comportent généralement beaucoup plus d’unités de calcul que les unités centrales de traitement 1 d’ordinateurs 3. Une carte graphique 2 peut comporter, par exemple, mille unités de calculs, alors qu’une unité centrale de traitement 1 d’un ordinateur 3 n’en comporte généralement que 8. Donc l’utilisation simultanée des nombreuses unités de calcul de la carte graphique 2 permet de réduire considérablement le temps de calcul des opérations d’algèbre linéaire sur des matrices. La structure hautement parallèle de la carte graphique 2 est adaptée à la nature aisément parallèlisable des opérations d’algèbre linéaire sur des matrices. Et plus la taille des sous-matrices est adaptée à la taille de la mémoire vive de chaque unité de calcul, plus le calcul parallèle sera efficace et rapide.
Dans un mode de mise en oeuvre, l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux unités centrales de traitement 1 implantées dans deux ordinateurs 3 distincts étant reliés entre eux par un réseau 4.
Dans un mode de mise en oeuvre illustré par la figure 4, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux cartes graphiques 2 distinctes implantées dans deux ordinateurs 3 distincts étant reliés entre eux par un réseau 4.
Selon un autre aspect, l’invention concerne un dispositif de calcul par ordinateur 3 configuré pour permettre la mise en oeuvre d’un procédé selon l’invention, illustré par la figure 3.
Les opérations d’algèbre linéaire sur des matrices pouvant être fractionnées en d’autres opérations d’algèbre linéaire sur des sous-matrices de plus petite taille comme on l’a vu plus haut, il est clair que plus grand est le nombre de processeurs qu’on peut affecter en parallèle à ces calculs, plus rapide sera l’exécution de ces opérations d’algèbre linéaire.
Dans un mode de réalisation de l’invention où plusieurs ordinateurs 3 sont reliés entre eux par un réseau 4, il est possible de transmettre des sous-matrices d’un ordinateur 3 à un autre via le réseau 4, avec des instructions de calculs à effectuer sur ces sous-matrices. Chaque ordinateur 3 du réseau 4 pourra alors effectuer les calculs qui lui sont attribués, puis renvoyer le résultat à un des ordinateurs 3 du réseau 4, qui reconstituera le résultat global des opérations d’algèbre linéaire sur des matrices, à partir des résultats des opérations effectuées par les différents ordinateurs 3 du réseau 4 sur les sous-matrices de plus petite taille.
Dans un mode de réalisation, chacun des ordinateurs 3 du réseau 4 devant effectuer des opérations d’algèbre linéaire sur au moins une sous-matrice va fractionner les opérations sur ces sous-matrices en de nombreuses opérations sur des sous-matrices de plus petite taille. Les calculs sur les sous-matrices de plus petite taille seront effectués simultanément par les nombreuses unités de calcul de la carte graphique 2 de l’ordinateur 3, et par les unités de calcul de l’unité centrale de traitement 1 de l’ordinateur 3.
Dans ce mode de réalisation, le gain de temps de calcul des opérations d’algèbre linéaire dû à l’utilisation du procédé selon l’invention sur chaque ordinateur 3 peut être multiplié par le nombre d’ordinateurs 3 étant reliés entre eux par un réseau 4.
Par réseau 4, on entend au moins une connexion informatique entre deux ordinateurs 3 distincts permettant le transfert de données entre ces deux ordinateurs 3, ledit réseau 4 pouvant comporter un ou plusieurs serveurs distants, ledit réseau 4 pouvant être local ou bien transiter via un réseau 4 plus vaste comme un intranet ou internet, la connexion pouvant comporter un câble, ou être sans fil, ou comporter tout moyen de télécommunication adapté et connu en soi de l’homme du métier. Le réseau 4 peut par exemple fonctionner par connexion câblée ou encore wifi de tous les ordinateurs 3 à un cloud, ou serveur distant, ou à un ordinateur 3 principal distant.
De nombreuses entreprises ou organisations disposent d’un réseau 4 d’ordinateurs 3, reliés entre eux par un intranet, ou via un serveur externe, ou par tout autre moyen. Un réseau 4 d’entreprise peut par exemple comporter quelques ordinateurs 3, ou jusqu’à plusieurs milliers d’ordinateurs 3 interconnectés. Tous ces ordinateurs 3 comportent généralement une carte graphique 2. Les capacités de calcul de ces réseaux 4 d’ordinateurs 3 sont généralement sous-utilisées. Par exemple, la plupart des ordinateurs 3 des réseaux 4 d’entreprise ne sont pas utilisés la nuit, ou encore à l’heure du déjeuner. A condition d’y installer un programme informatique adéquat, ce type de réseaux 4 d’ordinateurs 3 d’entreprise peut constituer un dispositif permettant la mise en oeuvre du procédé selon l’invention. Dans ce mode de réalisation, sans presque aucun coût supplémentaire pour l’entreprise disposant du réseau 4 d’ordinateurs 3, il est possible de mettre en oeuvre le procédé selon l’invention, permettant d’effectuer des opérations d’algèbre linéaire sur au moins une matrice de grande taille, de manière très rapide.
Dans un mode de mise en oeuvre, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice est réalisée par au moins deux cartes graphiques 2 distinctes implantées dans un même ordinateur 3.
Selon un autre aspect, l’invention concerne un dispositif de calcul par ordinateur 3, illustré par la figure 5, comprenant au moins deux cartes de calcul de type dit cartes graphiques 2, ledit dispositif étant configuré pour permettre la mise en œuvre du procédé selon un mode de mise en œuvre de l’invention.
Dans un autre mode de mise en œuvre, le dispositif destiné à mettre en œuvre un procédé selon l’invention consiste en un ordinateur 3 spécifique, dont on a conçu l’architecture pour qu’il comprenne plusieurs cartes graphiques 2. Compte tenu des possibilités modulaires des cartes et composant électroniques modernes, il est possible de fabriquer à moindre coût, à partir de composant électroniques grand public, un ordinateur 3 comportant au moins deux cartes graphiques 2. On obtient alors un ordinateur 3 ayant des capacités de calcul simultané démultipliées du fait de ses nombreuses unités de calcul présentes dans ses multiples cartes graphiques 2. La structure hautement parallèle de cet ordinateur 3, permet de mettre en œuvre un procédé selon l’invention ayant des temps de calcul des opérations d’algèbre linéaire sur les matrices très courts. En outre, l’ordinateur 3 décrit ici est beaucoup moins coûteux à concevoir, fabriquer et exploiter qu’un supercalculateur.
Selon un autre aspect illustré par la figure 6, l’invention concerne un dispositif connectable 5 à un ordinateur 3, comprenant au moins une carte de calcul de type dit carte graphique 2, ledit dispositif étant configuré pour permettre la mise en œuvre d’un procédé selon l’invention.
Dans un autre mode de réalisation de l’invention, un boîtier, comportant une ou plusieurs cartes graphiques 2 est destiné à être branché à un ordinateur 3 commun par un de ses ports standards, par exemple un port USB, ou un autre port. Une fois le boîtier connecté à l’ordinateur 3, la capacité de calcul parallèle de l’ensemble est démultipliée par le nombre de cartes graphiques 2 pouvant effectuer des calculs simultanément. Ce dispositif est adapté à mettre en œuvre le procédé selon l’invention avec des temps de calculs très courts.
Dans un mode de mise en œuvre du procédé selon l’invention, l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sous3056320 matrice est effectuée par au moins une unité centrale de traitement 1 d’au moins un ordinateur 3 en mettant en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de l’unité centrale de traitement 1, en même temps qu’un processeur de l’unité centrale de traitement 1 effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
Dans un mode de mise en œuvre du procédé selon l’invention, l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice par au moins une carte graphique 2 met en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de la carte graphique 2, en même temps qu’un processeur de la carte graphique 2 effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
Le fonctionnement d’un ordinateur 3 exécutant des opérations d’algèbre linéaire sur au moins une matrice est généralement le suivant :
- Les données nécessaires aux calculs sont copiées depuis le disque dur de l’ordinateur 3 vers des mémoires vives de l’unité centrale de traitement 1 et/ou de la carte graphique 2 de l’ordinateur 3,
- Les processeurs de l’unité centrale de traitement 1 et/ou de la carte graphique 2 effectuent des calculs sur les données présentes dans leurs mémoires vives respectives,
- Les résultats des calculs sont renvoyés des mémoires vives vers le disque dur de l’ordinateur 3.
Le procédé décrit ci-dessus de transfert des données au sein d’un ordinateur 3 effectuant des opérations d’algèbre linéaire simultanément sur une carte graphique 2 et/ou une unité centrale de traitement 1 présente l’inconvénient d’être ralenti par des temps de transferts de données entre le disque dur de l’ordinateur 3 et les processeurs qui effectuent les calculs.
Dans un mode de mise en œuvre de l’invention, un procédé de chargement et calculs simultanés est mis en œuvre, qui comprend des étapes de :
- transfert des données nécessaires aux prochains calculs des processeurs depuis le disque dur vers les mémoires vives des processeurs de la carte graphique 2 et/ou de l’unité centrale de traitement 1,
- en même temps que l’étape précédente, calcul par les processeurs sur les données étant déjà chargées dans leurs mémoires vives,
- au moins en partie en même temps que les deux étapes précédentes, envoi des résultats des calculs ayant été effectués depuis les mémoires vives des processeurs vers le disque dur de l’ordinateur 3.
Ce mode de mise en œuvre de l’invention présente l’avantage de réduire le temps total de calcul des opérations d’algèbre linéaire sur au moins une matrice en effectuant au moins en partie simultanément le transfert des données entre les mémoires et le calcul sur ces données.
Dans un mode de réalisation, ce procédé revient à sous-dimensionner volontairement la sous-matrice qu’on envoie au processeur. Par exemple, supposons qu’on doive effectuer des calculs sur 40 Gigaoctet de données en utilisant un processeur ayant une mémoire vive de 10 Gigaoctet. Plutôt que de fractionner les calculs en 4 opérations à effectuer sur 4 paquets de données d’une taille de 10 Gigaoctet, on va utiliser le procédé de chargement et calculs simultanés. On pourra par exemple envoyer les données par paquets de 2 Gigaoctet. Ainsi, dès le premier petit paquet de données reçu, le processeur peut commencer à effectuer les calculs sur ces données. Et pendant que le processeur effectue des calculs sur ce premier petit paquet de données, on envoie dans sa mémoire vive un autre paquet de données. Ainsi, le temps de transfert des données et le temps de calcul sur les données sont parallélisés, ce qui permet de réduire le temps total de l’opération.
Dans un mode de mise en œuvre du procédé selon l’invention, illustré par la figure 7, les opérations réalisées par au moins deux ordinateurs 3 distincts, dits premier ordinateur 3 et deuxième ordinateur 3, mettent en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs effectués par le deuxième ordinateur 3, depuis une mémoire du premier ordinateur 3 vers une mémoire du deuxième ordinateur 3, en même temps qu’au moins un processeur implanté dans le deuxième ordinateur 3 effectue les calculs sur les données étant déjà chargées dans une mémoire dudit deuxième ordinateur 3.
Dans certains modes de mise en œuvre du procédé selon l’invention, l’utilisation en parallèle de plusieurs cartes graphiques 2 et/ou unités centrales de traitement 1 appartenant à plusieurs ordinateurs 3 distincts implique des transferts d’importantes quantités de données entre ordinateurs 3, via le réseau 4. Si les moyens de communication entre ordinateurs 3 qui constituent le réseau 4 ne sont pas suffisamment rapides, ce qui est généralement le cas, alors les temps de transferts des données entre les ordinateurs 3 peuvent être importants, et ralentir l’exécution des calculs. En effet, Si l’on procède de manière intuitive, c’est-à-dire si un premier ordinateur 3 envoie d’abord les données à un deuxième ordinateur 3 qui va effectuer les calculs dessus, puis que le deuxième ordinateur 3 effectue ses calculs, et qu’ensuite il renvoie le résultat de ses calculs au premier ordinateur 3, alors le temps d’exécution global des opérations d’algèbre linéaire sur au moins une matrice est ralenti par le temps de transfert des données entre ordinateurs 3 via le réseau 4. Ce temps n’est en général pas négligeable.
Pour diminuer le ralentissement des calculs dû aux temps de transfert entre ordinateurs 3, dans un mode de mise en œuvre, le procédé de chargement et calcul simultanés. Ce procédé consiste à transférer les données nécessaires aux prochains calculs effectués par le deuxième ordinateur 3, depuis une mémoire du premier ordinateur 3 vers une mémoire du deuxième ordinateur 3, en même temps qu’au moins un processeur implanté dans le deuxième ordinateur 3 effectue les calculs sur les données étant déjà chargées dans une mémoire dudit deuxième ordinateur 3. De cette manière, le transfert des données entre ordinateurs 3 et les calculs sur les données transmises sont effectuées en parallèle. Ceci permet de diminuer le temps d’exécution des opérations d’algèbre linéaire sur au moins une matrice par un réseau 4 d’ordinateurs 3. Ce principe est illustré par la figure 7.

Claims (15)

  1. REVENDICATIONS
    1. Procédé de calcul par au moins un ordinateur (3) d’au moins une opération d’algèbre linéaire sur au moins une matrice, le procédé comportant des étapes de :
    - 51/ fractionnement, par au moins une unité centrale de traitement (1) d’un ordinateur (3), selon des critères préalablement définis, d’au moins une opération d’algèbre linéaire sur au moins une matrice, en au moins deux opérations sur au moins deux sous-matrices,
    - 52/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une unité centrale de traitement (1) d’au moins un ordinateur (3), caractérisé en ce que le procédé comporte en outre des étapes de :
    - 53/ calcul d’au moins une partie des opérations effectuées sur au moins une sous-matrice par au moins une carte de calcul de type dit carte graphique (2) pilotée par un ordinateur (3),
    - 54/ calcul du résultat d’au moins une opération d’algèbre linéaire sur au moins une matrice à partir du résultat des opérations ayant été effectuées sur au moins deux sous-matrices lors des étapes 52 et 53.
  2. 2. Procédé selon la revendication 1, dans lequel les étapes 52 et 53 sont effectuées au moins en partie simultanément.
  3. 3. Procédé selon l’une des revendications 1 à 2, dans lequel l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice est réalisée par au moins deux cartes graphiques (2) distinctes implantées dans un même ordinateur (3).
  4. 4. Procédé selon l’une des revendications 1 à 3, dans lequel l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice est effectuée par au moins une unité centrale de traitement (1) d’au moins un ordinateur (3) en mettant en oeuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de l’unité centrale de traitement (1), en même temps qu’un processeur de l’unité centrale de traitement (1) effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
  5. 5. Procédé selon l’une des revendications 1 à 4, dans lequel l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice par au moins une carte graphique (2) met en oeuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs vers une mémoire vive de la carte graphique (2), en même temps qu’un processeur de la carte graphique (2) effectue les calculs sur les données étant déjà chargées dans sa mémoire vive.
  6. 6. Procédé selon l’une des revendications 1 à 5, dans lequel l’étape 51 de fractionnement d’au moins une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices, est effectuée de manière à ce que les opérations qui seront effectuées lors de l’étape 53 sur au moins une sous-matrice par au moins une carte graphique (2) soient parfaitement adaptées aux capacités de calcul de ladite carte graphique (2).
  7. 7. Procédé selon l’une des revendications 1 à 6, comportant en outre une étape 55/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle de régression linéaire.
  8. 8. Procédé selon l’une des revendications 1 à 7, comportant en outre une étape 56/ d’exploitation des résultats du calcul d’au moins une opération d’algèbre linéaire sur au moins une matrice pour la résolution d’un modèle d’analyse statistique, incluant le calcul des coefficients, des intervalles de confiance et leur significativité.
  9. 9. Procédé selon l’une des revendications 1 à 8, dans lequel l’étape 52 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice est réalisée par au moins deux unités centrales de traitement (1) implantées dans deux ordinateurs (3) distincts étant reliés entre eux par un réseau (4).
  10. 10. Procédé selon l’une des revendications 1 à 9, dans lequel l’étape 53 de calcul d’au moins une partie des opérations effectuées sur au moins une sousmatrice est réalisée par au moins deux cartes graphiques (2) distinctes implantées dans deux ordinateurs (3) distincts étant reliés entre eux par un réseau (4).
  11. 11. Procédé selon l’une des revendications 9 à 10, dans lequel les opérations réalisées par au moins deux ordinateurs 3 distincts, dits premier ordinateur et deuxième ordinateur, mettent en œuvre un procédé, dit procédé de chargement et calcul simultanés, consistant à transférer les données nécessaires aux prochains calculs effectués par le deuxième ordinateur, depuis une mémoire du premier ordinateur vers une mémoire du deuxième ordinateur, en même temps qu’au moins un processeur implanté dans le deuxième ordinateur effectue les calculs sur les données étant déjà chargées dans une mémoire dudit deuxième ordinateur.
  12. 12. Procédé selon la revendication 10, dans lequel l’étape 51 de fractionnement d’au moins une opération d’algèbre linéaire sur au moins une matrice en au moins deux opérations sur au moins deux sous-matrices, est effectuée de manière à ce que les opérations qui seront effectuées lors de l’étape 53 sur au moins une sous-matrice par au moins deux cartes graphiques (2) distinctes implantées dans deux ordinateurs (3) distincts soient parfaitement adaptées aux capacités de calcul desdits deux ordinateurs (3).
  13. 13. Dispositif de calcul par ordinateur configuré pour permettre la mise en œuvre d’un procédé selon l’une des revendications 1 à 12.
  14. 14. Dispositif connectable (5) à un ordinateur (3), comprenant au moins une carte de calcul de type dit carte graphique (2), ledit dispositif étant configuré pour permettre la mise en oeuvre d’un procédé selon l’une des revendications 1 à
    12.
  15. 15. Dispositif de calcul par ordinateur, comprenant au moins deux cartes de calcul de type dit cartes graphiques (2), ledit dispositif étant configuré pour permettre la mise en oeuvre du procédé selon l’une des revendications 9 à 12.
FR1658799A 2016-09-20 2016-09-20 Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice Withdrawn FR3056320A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1658799A FR3056320A1 (fr) 2016-09-20 2016-09-20 Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1658799A FR3056320A1 (fr) 2016-09-20 2016-09-20 Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice
FR1658799 2016-09-20

Publications (1)

Publication Number Publication Date
FR3056320A1 true FR3056320A1 (fr) 2018-03-23

Family

ID=58314308

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1658799A Withdrawn FR3056320A1 (fr) 2016-09-20 2016-09-20 Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice

Country Status (1)

Country Link
FR (1) FR3056320A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632461A (zh) * 2020-12-22 2021-04-09 无锡江南计算技术研究所 一种定制阵列计算结构上复杂线性代数运算的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SATOSHI OHSHIMA ET AL: "Parallel Processing of Matrix Multiplication in a CPU and GPU Heterogeneous Environment", 10 June 2006, HIGH PERFORMANCE COMPUTING FOR COMPUTATIONAL SCIENCE - VECPAR 2006; [LECTURE NOTES IN COMPUTER SCIENCE;;LNCS], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 305 - 318, ISBN: 978-3-540-71350-0, XP019078042 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632461A (zh) * 2020-12-22 2021-04-09 无锡江南计算技术研究所 一种定制阵列计算结构上复杂线性代数运算的实现方法

Similar Documents

Publication Publication Date Title
EP3019957B1 (fr) Procede d'optimisation de traitement parallele de donnees sur une plateforme materielle
JP7300798B2 (ja) ニューラル・ネットワーク・データを圧縮するためのシステム、方法、コンピュータ・プログラム、およびコンピュータ可読記憶媒体
WO2013107819A1 (fr) Procédé d'optimisation de traitement parallèle de données sur une plateforme matérielle.
FR2936384A1 (fr) Dispositif d'echange de donnees entre composants d'un circuit integre
EP3084588B1 (fr) Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal.
FR2940694A1 (fr) Procede et systeme pour classifier des donnees issues de base de donnees.
FR3038997A1 (fr) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
FR3056320A1 (fr) Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice
EP3803574A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
US20220027434A1 (en) Providing recommendations via matrix factorization
Shen et al. FedConv: A Learning-on-Model Paradigm for Heterogeneous Federated Clients
WO2017108398A1 (fr) Circuit electronique, notamment apte a l'implementation de reseaux de neurones a plusieurs niveaux de precision
EP3087401B1 (fr) Système de simulation et de test
WO2010057936A1 (fr) Procede de structuration d'une base de donnees d'objets
Sabarad et al. Color and texture feature extraction using Apache Hadoop framework
FR2914525A1 (fr) Procede de simulation transactionnelle d'un modele generique de noeud de communication, produit programme d'ordinateur et moyen de stockage correspondants
EP2756398B1 (fr) Procede, dispositif et programme d'ordinateur pour allouer dynamiquement des ressources d'un cluster a l'execution de processus d'une application
US10318530B1 (en) Iterative kurtosis calculation for big data using components
FR3045863A1 (fr) Procede et calculateur d'analyse predictive
WO2019025744A1 (fr) Systeme informatique pour la visualisation de parcours logistique d'entites dans le temps
US20240281289A1 (en) Operation decomposition using edge devices
Tessier Convolutional neural networks pruning and its application to embedded vision systems
CN116011560A (zh) 模型的训练方法、数据重构方法以及电子设备
Besse et al. Statistique et Big Data Analytics; Volum\'etrie, L'Attaque des Clones
Bhoj et al. Challenges and opportunities in edge computing architecture using machine learning approaches

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20180323

ST Notification of lapse

Effective date: 20180531