Brevet FR3075413A1 — publié le 20190621

L'invention concerne un procede de pre-chargement de donnees. L'un des problemes poses dans le contexte des applications necessitant un calcul haute performance (HPC) reside dans racces efficace aux donnees. Les architectures de calcul et de stockage distribues rencontrent frequemment des latences dues a des temps d'acces aux donnees importants, la vitesse de traitement des microprocesseurs etant souvent plus rapide que l'acheminement des donnees en memoire centrale. Les memoires caches permettent d'eviter ces latences a la condition que les donnees necessaires aux processeurs soient presentent dans les caches au bon moment. Cette condition peut etre remplie grace aux methodes de pre-chargement des donnees. Ces pre-chargements sont des optimisations materielles ou logicielles qui visent a placer des donnees dans le cache avant que le processeur ne les demande en permettant ainsi d'eviter la latence memoire et d'augmenter les performances. II s'agit donc de prevoir a l'avance qu'elles seront les demandes futures. Un procede permettant de predire les acces futurs dans un fichier consiste a detecter 15 une suite logique dans les acces au fichier afin de prevoir, sur la base des acces precedents, quels seront les prochains acces au fichier et mettre ceux-ci dans la memoire cache avant qu'ils ne soient demandes par le processeur. Ce procede presente plusieurs inconvenients. Notamment, it ne permet pas de prendre en compte des acces multiples qui n'ont pas de relation logique entre eux. Par 20 ailleurs it ne permet pas de prendre en compte revolution dynamique des acces en temps reel en se basant sur un faible volume de donnees. Un but de l'invention est donc d'ameliorer les procedes de pre-chargement de donnees d'un fichier. A cet effet, on prevoit selon l'invention un procede de pre-chargement de donnees 25 d'un fichier comprenant les etapes suivantes : - definir plusieurs sous-ensembles de tailles predeterminees dans un fichier, - pour chaque operation d'entree et/ou de sortie executee sur le fichier, determiner le sous-ensemble concerne par ('operation, - compter le nombre d'operations d'entree et/ou de sortie executees dans chaque 30 sous-ensemble du fichier en prenant en compte uniquement un nombre predetermine de dernieres operations sur ('ensemble du fichier, et - lorsque la somme des operations comptees dans un sous-ensemble est superieure a un seuil predetermine, charger sur un support de memoire au moins une zone du fichier determinee a partir de ce sous-ensemble. 35 Ainsi, en temps reel, une sequence glissante comprenant un nombre determine de dernieres operations est prise en compte, et chaque operation est comptabilisee dans un sous-ensemble (aussi appele « bin »). L'utilisation d'une sequence d'operations -2- consecutives permet de prendre en cornpte l'aspect ternporel des acces, sans forcement tenir compte strictement de leur ordre. On peut prevoir qu'en fonction de la densite des operations dans le temps, it est possible d'ajuster la taille de la sequence glissante. L'indexation des operations par sous-ensemble est effectuee par la division entiere 5 des « offsets » (distance separant le debut du fichier des donnees chargees) des operations par la taille des sous-ensembles. On peut bien entendu prevoir que cette indexation soit realisee par toute technique connue de l'homme du metier. L'indentification des sous-ensembles du fichier permet de prendre en compte l'aspect spatial des acces. 10 Le couplage des deux caracteristiques d'acces, spatial et temporel, apporte des elements determinants pour effectuer une analyse multifactorielle et offrir une prediction performante. L'analyse est ainsi effectuee en temps reel et s'appuie sur un faible volume de donnees. En outre, cette methode permet de detecter des zones a pre-charger lors d'acces dans des zones multiples (et disjointes) sans forme de regularite. Par exemple, un processus allant chercher simultanement des donnees dans plusieurs zones disjointes d'un fichier beneficiera du pre-chargement dans ces zones dans la memoire, ce qui n'est pas le cas dans les procedes de l'art anterieur. Une fois que la zone du fichier a ete chargee, les futurs acces dans cette zone 20 beneficieront de l'effet de cache puisque leurs donnees seront déjà en memoire. Le support de memoire peut notamment etre un support de memoire cache. Les operations d'entree et/ou de sortie effectuees par un processus donne pour un fichier donne sont obtenues par ('interception d'un ensemble de fonctions systernes telles que read, write, pread, pwrite, open, close etc. Chacune des operations peut etre decrite 25 par un quintuplet incluant : - un descripteur de fichier, - un numero de processus actif en lecture/ecriture, - un horodatage, - un offset (distance separant le debut du fichier des donnees chargees), et 30 - la taille des donnees chargees. De maniere avantageuse, le procede comprend en outre les etapes suivantes : - identifier au moins un groupement de sous-ensembles adjacents pour lesquels au moins une operation d'entree et/ou de sortie a ete comptee, et - lorsque la somme des operations comptees dans le groupement de sous-ensembles 35 est superieure au seuil predetermine, charger sur le support de memoire au moins une zone du fichier determinee a partir de ce groupement de sous-ensembles. Le regroupement des sous-ensembles adjacents (ou sous-ensembles contigues) est -3- avantageux en ce qu'il supprime ('impact des frontieres de sous-ensemble (effet de bord) dans ('identification des zones du fichier les plus accedees. De la merne fawn que pour les sous-ensembles, une fois que la zone du fichier a ete chargee, les futurs acces dans cette zone beneficieront de l'effet de cache puisque leurs donnees seront déjà en 5 memoire. Avantageusement, le procede est mis en oeuvre au cours de ('execution d'une application. Le procede est ainsi mis en oeuvre en temps reel. De maniere preferee, le nombre predetermine des dernieres operations prises en 10 compte est un entier compris entre 10 et 1000, de preference entre 10 et 200. La sequence glissante des dernieres operations executees a ainsi une petite taille, ce qui permet de tenir compte de ('aspect temporel et donc d'avoir un suivi dynamique des operations executees. On peut prevoir que ce nombre est compris entre 30 et 170, de preference entre 50 et 150, par exemple entre 80 et 120. 15 De preference, la taille des sous-ensembles est comprise entre 1 Mo et 100 Mo, de preference entre 1 Mo et 10 Mo. Une petite taille de sous-ensemble permet d'obtenir plus de precision pour les zones dans lesquelles les acces sont les plus nombreux. Avantageusement, les sous-ensembles ont la merne taille. On peut prevoir que le seuil predetermine declenchant le chargement est compris entre 2 et 100 operations, de preference entre 4 et 10 operations. On peut prevoir que ce seuil est choisi parmi 1, 2, 3, 4, 5, 6, 7, 8, 9, ou 10 operations. On peut bien entendu prevoir que ce seuil est plus eleve, par exemple entre 10 et 20. Un seuil bas permet de mettre plus de zones de fichier en memoire, ameliorant ainsi la 25 probabilite qu'un futur acces au fichier ait lieu dans une zone pre-chargee. De maniere avantageuse, la zone du fichier est centree sur une mediane des positions de certaines au moins des operations concernant le sous-ensemble ou le groupement de sous-ensembles. De preference, la zone du fichier est centree sur une mediane des positions des 2 a 30 10 dernieres operations concernant le sous-ensemble ou le groupement de sous-ensembles. En prenant en compte seulement un petit nombre des dernieres operations executees, on obtient un centrage suivant la tendance des derniers acces au fichier. Dans un mode de realisation, une position de la zone du fichier est determinee de la 35 maniere suivante : - identifier un nombre predetermine de dernieres operations d'entree et/ou de sortie concernant le sous-ensemble ou le groupement de sous-ensembles ayant atteint -4- le seuil predetermine pour declencher le chargement et les indexer en fonction de leur ordre d'arrivee, - determiner par regression lineaire une droite de regression lineaire dans un repere utilisant comme coordonnees l'index des operations et des valeurs d'offset, 5 - centrer la zone du fichier sur un offset determine par une fonction de la droite de regression lineaire pour un index superieur a ceux des operations qui ont permis de construire la droite. De cette fawn, on peut determiner en temps reel une zone potentielle de lecture future. On peut prevoir que l'index superieur a ceux des operations qui ont permis de 10 construire la droite est tres superieur a ces derniers, par exemple situe a 10 increments d'index d'ecart. Auquel cas, on peut deduire une zone a charger pour des operations plus eloignees dans le temps. On peut egalement prevoir que l'index superieur a ceux des operations qui ont permis de construire la droite est directement superieur a ces derniers, ou faiblement superieur a ces derniers, par exemple situe a 2, 3, 4, ou 5 increments 15 d'index d'ecart de sorte qu'on obtient une probabilite plus eleve qu'une future operation ait lieu dans la zone pre-chargee. On peut prevoir que la droite de regression lineaire est choisie comme celle qui est la meilleure au sens de la methode des moindres carres. Avantageusement, la zone du fichier est le sous-ensemble ou le groupement de sous-ensembles ayant atteint le seuil predetermine declenchant le chargement. 20 De maniere preferee, la zone du fichier a charger a une taille predeterminee allant de 1 Mo a 100 Mo. On peut notamment prevoir que cette taille est plus grande, voire beaucoup plus grande, que la taille du sous-ensemble ou du groupement de sous-ensembles. Cela permet de prendre en compte une plus grande zone dans le fichier et donc d'ameliorer 25 les chances qu'une operation future ait lieu dans une zone pre-chargee. De maniere avantageuse, avant de charger la zone du fichier a charger, on verifie si au moins une portion de la zone est déjà chargee sur le support de memoire, - dans le cas oil au moins une portion de la zone du fichier est déjà presente sur le support de memoire, la zone du fichier n'est pas chargee, 30 - dans le cas contraire on charge la zone du fichier sur le support de memoire. Ainsi, on evite de charger de maniere redondante une meme zone du fichier et on economise donc de l'espace sur le support de memoire cache. Avantageusement, le procede comprend les etapes suivantes : - on etablit une liste qui contient les zones (5) qui ont ete déjà ete chargees, et 35 - lorsqu'une zone contenue dans cette liste est presente sur celle-ci depuis une periode superieure a un temps predetermine, on supprime cette zone de la liste. Cette caracteristique est interessante notamment dans les cas ou le systeme de cache -5- ne permet pas de connaitre son contenu. Une fois cette periode de temps terminee, la zone pre-chargee est supprimee de la liste permettant ainsi le rafraichissement de cette meme zone dans le cache. Dans un contexte de haute performance, it est preferable que ce temps soit assez court. On peut prevoir que ce temps est compris entre une et dix 5 secondes, par exemple entre une et cinq secondes, de preference entre une et trois secondes. On peut egalement prevoir un temps plus important, par exemple jusqu'a une heure. L'invention concerne egalement un dispositif apte a mettre en oeuvre le procede tel que decrit precedemment. 10 II peut par exemple s'agit d'un ordinateur, d'une tablette ou d'un telephone. L'invention concerne egalement un programme d'ordinateur comprenant des instructions de code de programme pour ('execution des etapes de procede tel que decrit precedemment. L'invention concerne egalement un support d'enregistrement electronique comprenant 15 sous forme enregistree des donnees permettant de mettre en oeuvre le procede tel que decrit precedemment. Enfin, l'invention concerne egalement un procede de mise a disposition d'un fichier comprenant un programme tel que decrit precedemment en vue de son telechargement sur un reseau de telecommunication. 20 Nous allons maintenant presenter un mode de realisation de l'invention donne a titre d'exemple non limitatif et a l'appui des figures annexees sur lesquelles : - la figure 1 est une representation schematique des sous-ensembles d'un fichier selon l'invention, - la figure 2 est une representation schematique montrant la zone chargee a partir d'une region du fichier ayant atteint le seuil de chargement, - la figure 3 est une representation schematique d'un dispositif apte a mettre en oeuvre le procede selon l'invention, et - la figure 4 est un graphique representant une droite de regression lineaire 30 construite selon un mode de realisation particulier de l'invention. Nous allons presenter un mode de realisation de l'invention ainsi que deux exemples montrant les avantages de l'invention. 35 On suppose qu'on met en oeuvre le procede dans un ordinateur 6 tel qu'un serveur ou un terminal mobile (telephone ou tablette) comprenant un processeur 7, au moins une memoire centrale 9 comprenant des fichiers 1 enregistres et au moins une memoire -6- cache 8. Dans un mode de realisation du procede selon ('invention, un fichier 1 est decoupe fictivement en dix sous-ensembles 2. Tous les sous-ensembles 2 ont la meme taille. On peut par exemple prevoir que chaque sous-ensemble fait 1 Mo. On peut bien entendu 5 prevoir que les sous-ensembles ont une taille plus importante, par exemple une taille comprise entre 1 Mo et 100 Mo, voire entre 1 Mo et 50 Mo, de preference entre 1 Mo et 10 Mo. En temps reel, une sequence glissante de 24 operations 3 est maintenue, et chaque operation 3 est comptee dans un sous-ensemble 2. On peut bien entendu prevoir que la 10 sequence glissante comprend un nombre plus faible ou plus grand d'operations, par exemple entre 10 et 200, voire entre 50 et 150, de preference entre 80 et 120. Dans le cas present, on observe que deux operations 3 ont eu lieu dans les premier, quatrieme et dixieme sous-ensembles 2, quatre operations 3 ont eu lieu dans les deuxieme et cinquieme sous-ensemble 2, sept operations 3 ont eu lieu dans le septieme 15 sous-ensemble 2, trois operations 3 ont eu lieu dans le neuvieme sous-ensemble 2, et aucune operation n'a eu lieu dans les troisieme, sixieme et huitieme sous-ensembles 2. Dans le cas present, le seuil de declenchement du chargement d'une zone de donnees est de quatre operations par sous-ensemble 2 ou groupement 4 de sous-ensembles. Sur la figure 1, les zones ayant atteint le seuil pour declencher le chargement 20 sont representees encadrees. Dans le cas present, trois groupements 4 de sous-ensembles 2 et un sous-ensemble 2 ont atteint ce seuil de quatre operations 3 : - un groupement 4 de sous-ensembles 2 comprenant le premier et le deuxieme sous-ensemble 2, dans lesquels respectivement deux et quatre operations 3 ont eu lieu, soit 25 un total de six operations 3 pour le groupement 4 ; - un groupement 4 de sous-ensembles 2 comprenant le troisieme et le quatrieme sous-ensemble 2, dans lesquels respectivement deux et quatre operations 3 ont eu lieu, soit un total de six operations pour le sous-ensemble 2 ; - le septieme sous-ensemble 2 dans lequel sept operations 3 ont eu lieu ; et - un groupement 4 de sous-ensembles 2 comprenant le neuvieme et le dixieme sous-ensemble dans lesquels respectivement trois et deux operations 3 ont eu lieu, soit un total de cinq operations pour le groupement 4. Dans le cas present, lorsqu'un groupement 4 de sous-ensembles 2 ou un sous-ensemble 2 atteint le seuil de chargement, la zone 5 du fichier correspondant a la taille du groupement 4 de sous-ensembles 2 ou du sous-ensemble 2 est chargee sur un support de memoire cache. Bien entendu, on peut prevoir que ce pre-chargement a lieu sur une zone 5 plus etendue du fichier. On peut par exemple prevoir que le chargement -7- a une taille fixe qui n'est pas en relation avec la taille du groupement 4 de sous-ensembles 2 ou celle du sous-ensemble 2 (voir figure 2). Par exemple, la zone de chargement peut avoir une taille fixe comprise entre 1 Mo et 100 Mo, par exemple entre 10 et 80 Mo, voire entre 20 et 60 Mo. On peut egalement prevoir que la taille de la zone 5 de chargement est variable en fonction de la taille du groupement 4 de sous-ensembles 2 ayant atteint le seuil de chargement. On peut par exemple prevoir que la taille de la zone 5 a pre-chargee est proportionnelle au nombre d'operations ayant eu lieu dans le groupement 4 de sous-ensembles 2 ou le sous-ensemble 2. On peut egalement prevoir que la taille de la zone 5 a pre-chargee est proportionnelle au nombre de sous-ensembles 10 2 compris dans le groupement 4 de sous-ensembles 2 ayant atteint le seuil permettant de declencher le chargement. Une fois que la zone 5 a ete pre-chargee sur le support de memoire cache, les futures operations necessitant d'acceder a une zone du fichier compris dans la zone 5 prechargee seront effectuees plus rapidement puisqu'il n'y aura pas besoin d'acceder a la 15 memoire centrale 9. Exemple 1 Les inventeurs ont teste l'efficacite de la methode selon ('invention en simulant une application demandant des petites lectures/ecritures afin de montrer une diminution du 20 nombre de zones du fichier demandees par ('application qui ne sont pas encore mis en cache et de diminuer par consequent la latence moyenne d'acces aux donnees. Les fonctions systeme read() et write() sont interceptees. De cette maniere, la sequence de toutes les lectures et ecritures peut etre analysee afin de declencher les operations de pre-chargement. 25 Les performances du procede dependent avant tout de sa capacite a predire, pour un processus donne, la localisation des lectures/ecritures a venir. Les cas d'usages cibles dans cet exemple par le procede sont ceux des petites lectures multiples (typiquement inferieure a 4 ko) non prises en charge par les optimisations des systemes d'exploitation et de fichiers. Typiquement sont ciblees les 30 lectures et/ou ecritures (dans le cas « read-modify-write ») qui sont concentrees dans une zone memoire, mais localement aleatoires ou de type multi-sequentiel (globalement ordonnees) avec des motifs locaux suffisamment complexes pour tromper les mecanismes d'optimisation natifs. Pour chaque fichier ouvert (fd) par un processus donne (pid), une sequence 35 d'operations (lectures et ecritures) est executee. Chacune de ces operations est decrite par un triplet : - horodatage (timestamp), -8- - offset (distance separant le debut du fichier des donnees chargees), et - taille des donnees chargees. Ces informations sont utilisees pour ('analyse en temps reel des operations d'entrees/sorties. 5 Une application A est utilisee pour simuler les entrées et sorties dans un environnement control& Dix jeux de parametres pour ('application A ont ete choisis pour simuler des cornportements differents : - d : destination (fichier source) - s : graine pour le generateur de nombre aleatoire 10 - N : nombre d'operations - w : taille d'operation - S : taille de la zone de diffusion (ajout d'un alea dans ('offset) - L : nombre de departs (multi-sequentiel) - I : taille du deplacement entre deux operations 15 - r : nombre de repetions dans le cas multi-sequentiel (L > 1) - Z : espace de travail dans le fichier. Ces donnees pour les differentes analyses sont representees dans le tableau 1 cidessous : Nuttier° s d Z (en L w (en S I N d'analyse Go) ko) 0 1 /fs 1/data/ 1000 1 4 0 4 ko 1000000 1 1 /fs 1/data/ 1000 1 128 1000 0 100000 Go 2 1 /fs 1/data/ 1000 4 4 0 4 ko 1000000 3 1 /fs 1/d ata/ 1000 4 4 10 Mo 4 ko 1000000 4 1 /fs 1/d ata/ 1000 4 10 10 Mo 10 Mo 1000000 5 1 /fs1/data/ 1000 4 128 10 Mo 10 Mo 1000000 6 1 /fs 1/d ata/ 1000 4 4 10 Mo 10 Mo 1000000 7 1 /fs 1/d ata/ 1000 4 10 50 Mo 10 Mo 1000000 8 1 /fs1/data/ 1000 4 128 50 Mo 10 Mo 1000000 9 1 /fs 1/d ata/ 1000 4 4 50 Mo 10 Mo 1000000 Tableau 1: Caractenstiques des differents tests realises en mode lecture. Les differentes analyses correspondent a differentes situations. Les analyses 0 (pur 20 sequentiel) et 1 (pur aleatoire) sont supposees non-accelerables en lecture. En effet, le pur sequentiel est déjà bien pris en charge par le systerne de fichiers utilise pour les tests, -9- et le pur aleatoire (sur 1 To) est de nature impredictible. Ces exemples servent de controle et permettent de mesurer le surcout « overhead » en temps eventuellement du a ('analyse. L'analyse numero 2 correspond a une situation dans laquelle quatre departs 5 d'operations sequentielles sont demandes par l'application A. L'analyse numero 3 correspond a la situation dans laquelle quatre departs d'operations sequentielles sont demandes par l'application A ainsi que des petits departs locaux aleatoires. Les analyses numeros 4, 5 et 6 correspondent a trois situations dans lesquelles quatre 10 departs d'operations sequentielles sont demandes par l'application A ainsi que des petits departs locaux aleatoires. Les analyses numeros 7, 8 et 9 correspondent a trois situations dans lesquelles quatre departs d'operations sequentielles sont demandes par l'application A ainsi que des grands departs locaux aleatoires. 15 Dans un premier temps, le test a ete realise en mode lecture. Le tableau 2 compile les temps des dix executions de reference (instrumentees mais non optimisees) compares aux executions instrumentees et optimisees par le procede selon l'invention. Numero d'analyse Temps de Temps optimise par la methode selon l'invention (en secondes) Facteu r reference (en d'acceleration seconde) 0 15.975 16.288 0.98 1 846.342 842.762 1.00 2 351.198 20.392 17.22 3 297.440 19.968 14.90 4 480.971 26.066 18.45 5 485.708 26.349 18.43 6 587.903 27.445 21.42 7 962.705 26.675 36.09 8 983.861 26.615 36.97 9 988.505 27.832 35.52 Tableau 2 : Resultats des tests en mode lecture. Les analyses 2 a 9 demontrent significativement l'efficacite de la methode pour obtenir une acceleration. On obtient ainsi des facteurs d'acceleration allant de 17 a 35 fois plus 20 rapide lorsque le procede selon l'invention est utilise. -10- Des tests ont egalement ete realises en mode ecriture. Les inventeurs se sont plus particulierement interesses aux cas d'ecritures non-alignes sur une taille de page de 4 ko. Le mecanisme d'ecriture se compose de trois etapes principales : « lecture modification - ecriture ». Ainsi, la methode developpee pour les petites lectures peut 5 egalement aider a accelerer les cas « lecture - modification - ecriture ». Pour ces tests, seules les trois premieres conditions (analyses 0, 1 et 2) ont ete modifiees afin de respecter la condition non-alignee sur les pages de 4 ko. Les conditions des tests sont resumees dans le tableau 3. Numero s d Z (en L w (en d'analyse Go) ko) 0 1 /fs2/data/ 1000 1 128 0 128 1000000 ko 1 1 /fs2/data/ 1000 1 128 1000 0 100000 Go 2 1 /fs2/data/ 1000 4 128 0 128 1000000 ko 3 1 /fs2/data/ 1000 4 4 10 Mo 4 ko 1000000 4 1 /fs2/data/ 1000 4 10 10 Mo 10 Mo 1000000 5 1 /fs2/data/ 1000 4 128 10 Mo 10 Mo 1000000 6 1 /fs2/data/ 1000 4 4 10 Mo 10 Mo 1000000 7 1 /fs2/data/ 1000 4 10 50 Mo 10 Mo 1000000 8 1 /fs2/data/ 1000 4 128 50 Mo 10 Mo 1000000 9 1 /fs2/data/ 1000 4 4 50 Mo 10 Mo 1000000 Tableau 3 : Caracteristiques des differents tests realises en mode ecriture. 10 Le temps d'execution et le nombre de requetes de lecture produites dans les cas acceleres et non-acceleres par le procede selon ('invention sont presentes dans le tableau 4. 15 Numero Temps non acceleres Temps acceleres Facteur d'analyse (en seconde) (en seconde) d'acceleration 0 29.675 29.302 1.01 1 103.328 96.358 1.07 2 32.372 16.932 1.91 3 246.489 50.951 4.84 4 573.069 64.410 8.90 5 620.080 69.194 8.96 6 846.823 111.298 7.61 7 928.966 66.551 13.96 8 949.924 66.236 14.34 9 1279.661 99.522 12.86 Tableau 4 : Resultats des tests en mode lecture. On peut constater que la methode a bien ameliore le temps d'execution dans le cas des tests 2 a 9. Cela montre que la methode a joue un role important en reduisant le temps de lecture a partir d'une page cache. Les analyses 0 (pur sequentiel) et 1 (pur aleatoire) ont le meme comportement dans le cas de la lecture. C'est-a-dire que, dans 5 les cas non-accelerables, it n'y a pas de surcout important du a ('analyse. Exemple 2 Dans cet exemple, on cherche a determiner la zone 5 de fichier 1 qui va etre chargee en se basant sur la tendance des dernieres operations 3 effectuees dans un sous- 10 ensemble 2 ou groupement 4 de sous-ensembles 2. Pour cela, on identifie les N dernieres operations 3 concernant ce sous-ensemble 2 ou groupement 4 de sous-ensembles 2. Ces operations sont indexees selon leur ordre d'arrivee. Dans le cas present, N est egal a 20. Ainsi, ces 20 operations ont des index respectifs de 1 a 20 par increment de 1. On peut bien entendu prevoir que N soit different 15 de 20, par exemple compris entre 5 et 100. Le graphique sur lequel ces operations 3 sont representees est represente en figure 4. L'axe des ordonnees de ce graphique represente les offsets des operations 3 en Mo et l'axe des abscisses represente l'index de ces operations 3. Une analyse par regression lineaire est effectuee et la droite de regression qui est la 20 meilleure au sens de la methode des moindres carres est retenue. L'equation de la droite de regression lineaire est la suivante : y = ax + b. Les parametres resultant de ce calcul permettent d'inferer une zone potentielle de lectures futures par revaluation de la fonction de cette droite pour un index superieur et comprenant par exemple les operations allant jusqu'a 1,5 x N. La zone 5 a charger est centree sur ('offset correspond a l'index predit -12- par la droite (ou equation) de regression pour la 1,5 x N operation. La taille de la zone chargee (representee par la double fleche sur le graphique est predeterminee. Dans le cas present, elle represente environ 8 Mo. 5 L'invention n'est pas limitee aux modes de realisation presentes et d'autres modes de realisation apparaitront clairement a I'homme REVENDICATIONS1. Procede de pre-chargement de donnees d'un fichier (1) comprenant les etapes suivantes : - definir plusieurs sous-ensembles (2) de tailles predeterminees dans un fichier, - pour chaque operation (3) d'entree et/ou de sortie executee sur le fichier, determiner le sous-ensemble concerne par ('operation, - compter le nombre d'operations d'entree et/ou de sortie executees dans chaque sous-ensemble du fichier en prenant en compte uniquement un nombre predetermine de 10 dernieres operations sur ('ensemble du fichier, et - lorsque la somme des operations comptees dans un sous-ensemble est superieure a un seuil predetermine, charger sur un support (8) de memoire au moins une zone (5) du fichier determinee a partir de ce sous-ensemble. 15 2. Procede selon la revendication precedente, comprenant en outre les etapes suivantes : - identifier au moins un groupement (4) de sous-ensembles (2) adjacents pour lesquels au moins une operation (3) d'entree et/ou de sortie a ete comptee, et - lorsque la somme des operations comptees dans le groupement de sous-ensembles 20 est superieure au seuil predetermine, charger sur le support (8) de memoire au moins une zone (5) du fichier determinee a partir de ce groupement de sous-ensembles. 3. Procede selon ('une quelconque des revendications, mis en oeuvre au cours de ('execution d'une application. 25 4. Procede selon ('une quelconque des revendications precedentes, dans lequel le nombre predetermine des dernieres operations (3) prises en compte est un entier compris entre 10 et 1000, de preference entre 10 et 200. 30 5. Procede selon ('une quelconque des revendications precedentes, dans lequel la taille des sous-ensembles (2) est comprise entre 1 Mo et 100 Mo, de preference entre 1 Mo et 10 Mo. 6. Procede selon ('une quelconque des revendications precedentes, dans lequel les 35 sous-ensembles (2) ont la meme taille. 7. Procede selon ('une quelconque des revendications precedentes, dans lequel le -14- seuil predetermine declenchant le chargement est compris entre 2 et 100 operations (3), de preference entre 4 et 10 operations. 8. Procede selon ('une quelconque des revendications precedentes, dans lequel la 5 zone (5) du fichier (1) est centree sur une mediane des positions de certaines au moins des operations (3) concernant le sous-ensemble (2) ou le groupement (4) de sous-ensembles. 9. Procede selon ('une quelconque des revendications precedentes, dans lequel une 10 position de la zone (5) du fichier (1) est determinee de la maniere suivante : - identifier un nombre predetermine de dernieres operations (3) d'entree et/ou de sortie concernant le sous-ensemble (2) ou le groupement (4) de sous-ensembles ayant atteint le seuil predetermine pour declencher le chargement et les indexer en fonction de leur ordre d'arrivee, 15 - determiner par regression lineaire une droite de regression lineaire dans un repere utilisant comme coordonnees ('index des operations et des valeurs d'offset, - centrer la zone du fichier sur un offset determine par une fonction de la droite de regression lineaire pour un index superieur a ceux des operations qui ont permis de construire la droite. 20 10. Procede selon ('une quelconque des revendications precedentes, dans lequel la zone (5) du fichier (1) est le sous-ensemble (2) ou le groupement (4) de sous-ensembles ayant atteint le seuil predetermine declenchant le chargement. 25 11. Procede selon ('une quelconque des revendications 1 a 9, dans lequel la zone (5) du fichier (1) a charger a une taille predeterminee allant de 1 Mo a 100 Mo. 12. Procede selon ('une quelconque des revendications precedentes, dans lequel : - avant de charger la zone (5) du fichier (1), on verifie si au moins une portion de la 30 zone est déjà chargee sur le support (8) de memoire, - dans le cas oil au moins une portion de la zone du fichier est déjà presente sur le support de memoire, on ne charge pas la zone du fichier, - dans le cas contraire, on charge la zone du fichier sur le support de memoire. 35 13. Procede selon ('une quelconque des revendications precedentes, dans lequel : - on etablit une liste qui contient les zones (5) qui ont déjà ete chargees, et - lorsqu'une zone contenue dans cette liste est presente sur celle-ci depuis une -15- periode superieure a un temps predetermine, on supprime cette zone de Ia liste. 14. Dispositif (6) apte a mettre en ceuvre le procede selon I'une quelconque des revendications 1 a 13. 5 15. Programme d'ordinateur comprenant des instructions de code de programme pour ('execution des etapes de procede selon I'une quelconque des revendications 1 a 13 Iorsque ledit programme est execute sur un ordinateur. 16. Support d'enregistrement electronique lisible par un ordinateur comprenant sous forme enregistree des instructions de code de programme permettant de mettre en ceuvre le procede selon I'une quelconque des revendications 1 a 13. 17. Procede de mise a disposition d'un fichier comprenant un programme selon Ia 15 revendication 15 en vue de son telechargement sur un reseau de telecommunication.