Brevet FR3076002A1 (20190628)

REVENDICATIONS1. Procédé d'amélioration du temps d'exécution d'une application informatique, comprenant au moins un cycle comprenant : > une étape de détermination du type de séquence temporelle d'accès mémoire se déroulant lors de l'exécution de ladite application informatique, > une étape de pré-chargement de données, à partir d'un système de fichier, vers un système de mémoire cache, en fonction du type de de séquence temporelle d'accès mémoire déterminé, caractérisé en ce que : > ladite étape de détermination est réalisée par un modèle d'apprentissage ayant été préalablement paramétré à partir d'une base de données de certains types prédéterminés de séquences temporelles d'accès mémoire.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon la revendication 1, caractérisé en ce que : > ledit cycle est répété en permanence et en temps réel.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon la revendication 1 ou 2, caractérisé en ce que : > ladite étape de pré-chargement associe respectivement aux types de séquence temporelle d'accès mémoire déterminés des types prédéterminés de pré-chargement de données.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que : 25 > l'étape de détermination comprend 4 types de séquence temporelle d'accès mémoire qui sont : o le type d'accès séquentiel dans lequel des blocs de données sont lus et/ou écrits consécutivement dans une zone 5 mémoire, o le type d'accès multi-séquentiel avec un décalage régulier entre les séquences, dans lequel des blocs de données sont lus et/ou écrits à partir de plusieurs endroits différents d'une zone mémoire, en passant régulièrement d'un endroit 10 à l'autre, o le type d'accès aléatoire, o le type d'accès complexe dans lequel la séquence est formée de sous-séquences régulières ou quasi-régulières qui se répètent mais de manière désordonnée et/ou dans 15 lequel la séquence est régulière ou quasi-régulière et est formée de sous-séquences qui se répètent mais de manière désordonnée.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application 20 informatique selon la revendication 4, caractérisé en ce que : > aucune donnée n'est pré-chargée dans l'étape de pré-chargement associée au type d'accès aléatoire.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application 25 informatique selon l'une quelconque des revendications précédentes, caractérisé en ce qu'une séquence temporelle d'accès mémoire comprend plusieurs opérations d'accès mémoire qui se succèdent dans le temps : > de préférence au moins 30 opérations, encore plus de préférence 30 au moins 40 opérations, 26 > et/ou de préférence au plus 100 opérations, encore plus de préférence au plus 60 opérations.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application 5 informatique selon la revendication 6, caractérisé en ce que : > une séquence temporelle d'accès mémoire est sous la forme d'une fenêtre glissante au cours du temps et comprenant un nombre fixe d'opérations. 10\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que : > le cycle comprend, après ladite étape de pré-chargement de données, une étape d'utilisation desdites données pré-chargées 15 dans le système de mémoire cache.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que : 20 > ledit modèle d'apprentissage n'a été préalablement paramétré, à partir d'une base de données de certains types prédéterminés de séquences temporelles d'accès mémoire, qu'une seule fois, mais il peut être re-paramétré en cas d'ajout d'au moins un nouveau type prédéterminé de séquence temporelle d'accès mémoire dans ladite 25 base de données.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que : 30 > le type de séquence temporelle d'accès mémoire est défini par la variation au cours du temps de deux caractéristiques qui sont 27 d'une part la taille des blocs de données lus et/ou écrits et d'autre part la position des blocs de données dans la zone mémoire où ils sont lus et/ou écrits. 5\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que : > ledit modèle d'apprentissage est basé sur l'utilisation d'un algorithme de type «k-Moyennes ». 10\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon la revendication 3 et selon la revendication 11, caractérisé en ce que : > le nombre des classes dudit algorithme est strictement supérieur au 15 nombre de types prédéterminés de pré-chargement de données.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon la revendication 11 ou 12, caractérisé en ce que : > le nombre des classes dudit algorithme est compris entre 2 et 10, 20 de préférence entre 3 et\n<CLM>\1\t14. Procédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, caractérisé en ce que le cycle comprend, préalablement à ladite étape de 25 détermination, successivement : > une étape d'extraction de propriétés de données représentatives du type de séquence temporelle d'accès mémoire, suivie d'une étape de regroupement de ces propriétés extraites en vecteurs multidimensionnels, 28 > ladite étape d'extraction étant de préférence précédée d'une étape de prétraitement réalisant une normalisation desdites données représentatives, > ladite étape de regroupement étant de préférence suivie par une 5 étape de projection par analyse en composantes principales, réduisant le nombre de dimensions desdits vecteurs.\n<CLM>\1\tProcédé d'amélioration du temps d'exécution d'une application informatique selon l'une quelconque des revendications précédentes, 10 caractérisé en ce que : > ladite application informatique tourne sur au moins plusieurs centaines de processus d'un ensemble de noeuds de calcul d'un même réseau, de préférence sur au moins plusieurs milliers de ces processus, encore plus de préférence sur au moins plusieurs 15 dizaines de milliers de ces processus. > ladite application accède à plusieurs centaines de fichiers depuis un même processus.