Optimisation de cache d'instructions par analyse statique
|
|
- Ève Auger
- il y a 8 ans
- Total affichages :
Transcription
1 Ecole Normale Supérieure de Lyon Rapport de stage de Licence Optimisation de cache d'instructions par analyse statique Pascal Vanier sous la direction de Benoit Boissinot E.N.S. Lyon Fabrice Rastello E.N.S. Lyon Du 4 juin au 13 juillet 2007 Compsys
2 Table des matières 1 Présentation 3 2 Introduction 3 3 Motivations 4 4 Etat de l'art Call-Graph par Pettis et Hansen [5] Temporal Relationship Graph par Gloy et Smith [3] Minimisation de l'expansion de code de l'algorithme de Gloy et Smith [3] par Bouchez et al. [4] Travail eectué Objectifs Notions utiles Basic Bloc Chaînes de Markov Le graphe de ot de contrôle Le graphe de destination Simulation d'exécution Une simplication du problème Conclusions 11 7 Remerciements 12 Références 12 2
3 1 Présentation Mon stage s'est déroulé au Laboratoire d'informatique du Parallèlisme de l'ens Lyon, plus précisément dans l'équipe Compsys, sous la direction de Benoit Boissinot et de Fabrice Rastello. L'objectif de l'équipe Compsys est le développement de techniques d'optimisation spéciques au processus de compilation pour les systèmes embarqués. Cette équipe travaille en partenariat avec STMicroelectronics qui produit les processeurs embarqués "st200" qui sont ceux sur lesquels nos optimisations vont être appliquées. 2 Introduction Dans un monde parfait, les machines seraient équipées de grandes quantités de mémoire à vitesse d'accès très élevée, mais ce n'est pas le cas : dans la réalité, plus la mémoire est rapide, plus elle coûte cher. Ainsi pour faire le lien entre la mémoire à grande capacité (Disques durs et autres supports de stockage) et les registres du processeur, nous avons besoin de mémoires faisant le compromis entre la vitesse d'accès, la taille et le coût. Le processeur n'ayant accès qu'aux registres, les informations sont rapatriées au fur et à mesure des mémoires les plus lentes vers les mémoires les plus rapides. Une information utilisée fréquemment devrait donc être laissée au niveau des mémoires rapides, c'est à dire qu'il faut empêcher qu'elle ne soit remplacée par d'autres informations. Dans ce stage, nous avons travaillé sur la mémoire cache du cache d'instructions des processeurs de type "st200" fabriqués par STMicroelectronics. Le code doit être chargé dans le cache d'instructions pour pouvoir être exécuté, cependant sa taille ne permet pas en général de charger tout le programme. Un chunk est un bout de code de taille inférieure ou égale à une ligne de cache, on parle de conict-miss lorsqu'un programme a besoin d'exécuter un chunk qui a été remplacé par un autre dans le cache d'instruction. Il est alors nécessaire de le copier à nouveau de la mémoire vers le cache, ce qui se traduit par une perte de performance d'environ 150 cycles pour les processeurs sur lesquels nous travaillons. Un chunk peut être remplacé par un autre dans le cache d'instructions si ceux-ci sont à des adresses i 1 et i 2 en mémoire telles que i 1 i 2 [L] (avec L la taille du cache d'instructions. Pour ce faire, on peut changer la place des procédures dans la mémoire et rajouter des espaces vides an de décaler les procédures. L'intérêt de minimiser les conict-miss est évident. L'autre contrainte du problème est de ne pas avoir une taille de programme trop grosse après le placement du code, car étant donné que les programmes sont destinés à des plateformes embarquées ils seront stockés sur de la mémoire ash qui est très coûteuse. 3
4 3 Motivations Il existe deux sortes de caches : les associatifs et les direct-mapped. Dans les premiers une information peut se trouver dans n'importe quelle place du cache, mais la contrepartie est qu'ils nécéssitent un grand nombre de comparateurs physiques et donc consomment plus. Le cache sur lequel nous travaillons est dit direct-mapped, c'est à dire que si L est la taille du cache d'instructions, la case i du cache ne peut contenir que les instructions placées aux endroits P tels que P i[l]. Ainsi, pour Fig. 1: La boucle génère 2(n + 1) conict-miss éviter les conict-miss, il faut éviter de placer deux chunks souvent appelés en même temps aux mêmes adresses modulo L. L'analyse dynamique consiste à créer une trace à partir d'une exécution sur une entrée donnée et l'exploiter. Le problème de l'analyse dynamique qui, jusqu'à présent, a été l'objet de la plupart des recherches dans le domaine est qu'elle nécessite un jeu de données représentatif ; ceci pose plusieurs problèmes : un tel jeu de données n'est pas évident à choisir pour tous les programmes, et traiter ces données demande de la part de la personne qui compile un eort supplémentaire. Le but de l'analyse statique est donc d'éviter d'avoir à choisir ce jeu de données représentatif qu'il est loin d'être évident de choisir, ainsi que de simplier la vie du developpeur : en eet, avec l'analyse dynamique, le développeur doit prendre une part active dans la phase d'optimisation, tandis que dans le cas statique, les optimisations peuvent avoir lieu de manière totalement transparente. 4
5 4 Etat de l'art 4.1 Call-Graph par Pettis et Hansen [5] A partir d'une trace de programme, c'est à dire la séquence de fonctions par lesquelles il est passé, les auteurs construisent un "call-graph" où les sommets sont les fonctions et les arêtes le nombre d'appels. Seules les procédures les plus utilisées sont conservées dans ce graphe. L'idée de l'algorithme est que deux fonctions proches 1 dans la mémoire auront une place diérente dans le cache, ainsi deux fonctions qui s'appellent souvent seront placées côte à côte dans la mémoire. L'algorithme cherche à maximiser la localité, c'est à dire qu'il cherche à rapprocher dans le placement des fonctions qui sont appelées toutes les deux dans un intervalle de temps court. L'algorithme est glouton, il fusionne itérativement les sommets reliés par une arête de poids maximal en des listes de procédures. Ainsi lors de la fusion de deux sommets A et B (lesquels sont des listes de procédures), il y a quatre possibilités de placement : AB, BA, BA 2 et AB (les autres possibilités sont les listes inversées de celles-ci). Les poids des arêtes sont ensuites sommés dans l'arête fusionnée. 4.2 Temporal Relationship Graph par Gloy et Smith [3] Les auteurs construisent un "Temporal Relationship Graph" (TRG) à partir d'une trace : les procédures sont les n uds et le poids d'une arête entre deux n uds P et Q représente le nombre de fois que deux occurences de la procédure P sont séparées par une occurence de Q dans la trace d'exécution. Ce nombre est le nombre exact de conict-miss qui auraient lieu pour P, si P et Q avaient pour taille une ligne de cache et si elles étaient placées au même endroit. L'algorithme de placement de code construit un graphe de travail à partir du TRG, dans lequel chaque noeud contient une liste de couples dont les premiers éléments sont des procédures et les seconds les décalages relatifs exprimant la position dans le cache de la procédure correspondante par rapport aux autres procédures du n ud. Initialement, chaque n ud contient un seul couple dont la procédure est celle correspondant dans le TRG et dont le décalage est nul. A chaque étape, l'algorithme recherche l'arête de poids maximal et fusionne les noeuds, des permutationset des décalages entres les n uds sont eectués pour trouver le meilleur placement à cette étape. Les positions relatives dénies dans un n ud ne changeront plus de tout l'algorithme : seule la position relative de toutes les procédures d'un n ud par rapport à toutes les procédures d'un autre n ud seront cherchées et modi- 1 Dont la distance est inférieure à la taille du cache 2 Où l'on note A la liste inversée des procédures de A. 5
6 ées à chaque étape. Une fois la fusion eectuée, le décalage des procédures les une par rapport aux autres dans un n ud ne peuvent plus changer. Fig. 2: Illustration de la fusion des ni uds : chaque n ud est ici représenté par un rectangle contenant des procédures (carrés noirs) et leurs décalages relatifs. Ce qui est calculé à la fusion est le décalage entre ces noeuds. 4.3 Minimisation de l'expansion de code de l'algorithme de Gloy et Smith [3] par Bouchez et al. [4] Il s'agit là d'une variante de l'agorithme de Gloy et Smith [3] ayant en plus pour contrainte de minimiser l'expansion de code. Les auteurs utilisent une estimation de l'expansion pour chaque ensemble de procédures an de minimiser celle-ci et de prendre en compte le rapport entre le gain en terme de conits et les pertes au niveau de l'expansion. Une fois le graphe de conit réduit, l'algorithme utilise une méthode optimale pour placer les procédures en conservant les décalages dans le cache. L'expansion de code est bien moins importante que dans l'algorithme de Gloy et Smith [3]. 5 Travail eectué 5.1 Objectifs Le but de ce stage était de construire un graphe de conit de type "Temporal Relationship Graph" à partir d'un graphe de ot de contrôle obtenu par analyse statique ; ceci an de pouvoir ensuite utiliser le TRG obtenu dans l'algorithme de Bouchez et al. [4] 5.2 Notions utiles Basic Bloc Un basic bloc est une portion de procédure s'exécutant insécablement : ainsi un basic block prend n sur un call, une disjonction de cas ou la n de la procédure. 6
7 5.2.2 Chaînes de Markov Une chaîne de Markov est un processus stochastique possédant la propriété Markovienne, c'est à dire que la prédiction du futur ne nécéssite pas d'autre connaissance que celle du présent : le passé n'importe pas. Une chaîne de Markov est représentée par un graphe avec les probas sur les arêtes. On appellera ici chaîne de Markov à pile un ensemble de chaînes de Markov dans lesquelles un état d'une chaîne A peut envoyer au début d'une chaîne B qui une fois l'état nal atteint renverrait à l'état l'ayant appelée dans A. Une chaîne de Markov à pile peut être représentée par un graphe de ot de contrôle Le graphe de ot de contrôle Un graphe de ot de contrôle d'un programme est un graphe dont les sommets sont les basic blocs. Une arête est étiquetée par la probabilité de suivre celle-ci. Ainsi la somme des valuations des arêtes sortant d'un même sommet est toujours 1. Le graphe représentant notre programme est composé de plusieurs sous-graphes de ot de contrôle, un pour chaque procédure. Les appels de procédure sont représentés par des arêtes vertes. La (Fig 3.) donne le graphe de ot de contrôle correspondant aux procédures qui suivent, en commentaires sont marqués les basic blocs correspondant aux instructions : main() début S 0; /* main.1 */ pour i de 1 à 100 faire /* main.3 */ S S + called_fun(i); /* main.2 */ retourner S; /* main.4 */ n called_fun(n) début si n 50 alors /* called_fun.1 */ retourner 40; /* called_fun.2 & called_fun.4 */ n sinon /* called_fun.1 */ retourner n; /* called_fun.3 & called_fun.4 */ 7
8 Fig. 3: Le graphe de ot correspondant au programme précedent : la première case d'un n ud contient son nom, la seconde les instructions qu'il contient et la troisième la procédure qu'il appelle éventuellement Le graphe de destination Le graphe que l'on souhaite obtenir est un graphe du type "Temporal Relationship Graph" an de le passer à l'algorithme de Bouchez et al. [4]. 5.3 Simulation d'exécution Dans un premier temps, on a essayé la solution simple, consistant à parcourir le graphe en eectuant un tirage aléatoire à chaque sommet pour savoir quel successeur on va visiter, tout en simulant 3 un cache associatif de même taille que le cache direct-mapped sur lequel on souhaite travailler. On se sert d'une pile contenant les basic blocks de retour correspondant à chaque appel de fonction : la n de la simulation correspond à arriver à la n d'une fonction alors que la pile est vide. Lorsque l'on a besoin d'un chunk déjà contenu dans le simulateur de cache, on le déplace à la n, en incrémentant les arêtes du TRG de tous les 3 Pour ce faire, on utilise une table de hachage contenant l'adresse en cache du morceau de code. 8
9 chunks contenus entre lui et la n avant le déplacement. Les principaux problèmes posés par cette approche sont que l'on n'est pas sûr que la simulation terminera, de plus celle-ci peut prendre un temps non-négligeable selon la topologie du graphe de ot 4. Cette méthode ne garantit pas l'exploration de tout le graphe de ot et est très dépendante des valeurs aléatoires générées par random : imaginons que le programme ait des options en ligne de commande, l'analyse statique va être incapable de savoir quelles sont celles qui vont être le plus fréquemment utilisés et pourra par exemple mettre une probabilité équivalente pour une option help et work 5 et lors de la simulation, le programme pourrait ne rentrer que dans la branche correspondant au code de l'option help et donc occulter le vrai programme. Nous avons implémenté cette simulation, cependant il nous a été impossible de comparer les résultats obtenus à ceux obtenus par analyse dynamique. Néanmoins, on peut d'ores et déjà armer que cette méthode ne fonctionne pas toujours : ainsi paranoia se simule correctement (de l'ordre de 2-3s pour 1, 1Mo) tandis que l'on peut dire que mp2vloop 6 est trop complexe pour être simulé (une fois sur trois, la simulation ne termine pas et le reste du temps la simulation rentre dans une branche mineure du programme). La (Fig 4.) montre une portion de graphe faisant planter le simulateur ou tout du moins le faisant tourner trop longtemps pour que cela soit intéressant. Fig. 4: La portion de graphe qui fait tourner en rond la simulation sur mp2vloop 5.4 Une simplication du problème An de créer notre TRG, on a besoin de savoir quels sont les chunks qui interfèrent le plus entre eux. Si l'on se restreint aux programmes ne contenant pas de fonctions récursives, on peut insérer les fonctions appelées à l'intérieur du graphe (cf (Fig 5.)). Ce qui permet de n'avoir besoin que de chaînes de Markov et pas de chaînes de Markov à pile, en eet seules les premières ont des propriétés intéressantes connues. On va donc se servir de 4 Par exemple un graphe ayant beaucoup de cycles a de fortes chances de provoquer une simulation longue. 5 Vous comprenez l'idée... 6 ces exécutables nous ont été fournis par STMicroelectronics 9
10 Fig. 5: Le graphe de la (Fig 3.) avant la transformation permettant de se ramener à un graphe correspondant à une chaîne de Markov et après la matrice stochastique associée à notre nouvelle chaîne de Markov 7, notons 7 Pour l'instant, les états de notre chaîne sont des basic blocks et pas des chunks, on passera aux chunks après les exponentiations de matrices pour gagner du temps de calcul. 10
11 la M. On va exponentier successivement M à plusieurs ordres et maintenir en même temps une matrice B telle que : B (l) i,j = l h=1 M h i,j l C'est à dire que la matrice B contient les probabilités d'aller d'un basic bloc i à un basic bloc j en moins de l étapes. L'algorithme va donc calculer les B (l) et M l pour l [1, L], L étant le nombre de lignes de cache total du cache, puis pour chaque couple (P, Q), la probabilité pour qu'une occurence de Q soit contenue entre deux occurences de P est L NP,Q l p (P,Q) = CL l Q,P L l=1 où N l et C (l) sont les matrices d'adjacence construites respectivement à partir de M l et B (l) dont les états sont les chunks et non plus les basic blocs.la transformation consiste en fait à rajouter des matrices diagonales et des 0. Une fois que l'on a calculé cette probabilité, il est facile de contruire un TRG correspondant en multipliant les probabilités obtenues par une constante, car l'on sait que l'algorithme qui tournera dessus par la suite est de type glouton sur la valeur des arêtes. La complexité de ces opérations est O(L K 3 ) où L est le nombre de lignes du cache et K le nombre de basic blocks. Par manque de temps, cet algorithme n'a pas été implémenté, néanmoins nous sommes en mesure d'armer que la complexité ne permettrait pas une exécution rapide de l'algorithme sur un programme de taille habituelle, tel que mp2vloop ou paranoia, ceux-ci ayant un nombre de basic bloc très élevé. 6 Conclusions Nous avons implémenté un simulateur qui permet d'obtenir des résultats sur certains graphes, ne contenant pas de boucles imbriquées dont la probabilité de sortir est trop petite 8. Nous avons également trouvé une solution qui fonctionnerait 9 sur une certaine restriction de programmes : les programmes non récursifs ; ceci avec une complexité de l'ordre de O(L n 3 ) où n est le nombre de basic blocs, néanmoins nous pouvons espérer réduire cette complexité car la matrice d'adjacence du graphe de ôt de contrôle contient beaucoup de 0. 8 Typiquement sur les graphes que nous avons testés, cette probabilité est de l'ordre de ou moindre. 9 L'implémentation pourrait cependant s'avérer dicile à cause des limites des ottants. 11
12 7 Remerciements Je tiens particulièrement à remercier mes maîtres de stage : Benoit et Fabrice, qui tout au long de mon stage m'ont apporté aide et soutien tout en me laissent beaucoup de liberté dans les axes à explorer. Ils m'ont de plus laissé du temps pour préparer le concours d'entrée en même temps que mon stage, et je les en remercie : sans leur soutien je n'y serais probablement pas parvenu. Je tiens également à remercier tous les autres, qui m'ont apporté leur aide à un moment ou à un autre pendant ce stage : Damien Pous, Florent Bouchez, Eric Thierry, Sebastian Hack, Bruno Grenet et Nicolas Estibals. Références [1] A. W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, [2] Pierre Bremaud. Markov Chains. Springer, January [3] Nikolas Gloy and Michael D. Smith. Procedure placement using temporal-ordering information. ACM Transactions on Programming Languages and Systems, 21(5) : , [4] Christophe Guillon, Fabrice Rastello, Thierry Bidault, and Florent Bouchez. Procedure placement using temporal-ordering information : dealing with code size expansion. Journal of Embedded Computing, 1(4) : , [5] Karl Pettis, Robert C. Hansen, and Jack W. Davidson. Prole guided code positioning. SIGPLAN Not., 39(4) :398411,
Rapport de stage de première année de Master Optimisation de cache d instructions
Rapport de stage de première année de Master Optimisation de cache d instructions Benoit Boissinot Benoit.Boissinot@ens-lyon.fr Université Lyon 1 sous la direction de Fabrice Rastello Fabrice.Rastello@ens-lyon.fr
Plus en détailOrdonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1
CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste
Plus en détailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Plus en détailChapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping
Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager
Plus en détailIntroduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.
Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis
Plus en détailSolution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
Plus en détailPROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES
Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.
Plus en détailAlgorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Plus en détailTP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Plus en détailTélécom Nancy Année 2013-2014
Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON
Plus en détailConception d'un réseau de transport d'électricité
La Fédération Française des Jeux Mathématiques et la Société de Calcul Mathématique SA avec l'appui de Réseau de Transport d'electricité Conception d'un réseau de transport d'électricité Auteurs : Florian
Plus en détailSystemes d'exploitation des ordinateurs
! " #$ % $ &' ( $ plan_ch6_m1 Systemes d'exploitation des ordinateurs Conception de Systèmes de Gestion de la Mémoire Centrale Objectifs 1. Conception de systèmes paginés 2. Conception des systèmes segmentés
Plus en détailDÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques
livre blanc DÉVELOPPEMENT INFONUAGIQUE MEILLEURES PRATIQUES ET APPLICATIONS DE SOUTIEN DÉVELOPPEMENT INFONUAGIQUE - MEILLEURES PRATIQUES 1 Les solutions infonuagiques sont de plus en plus présentes sur
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailORACLE TUNING PACK 11G
ORACLE TUNING PACK 11G PRINCIPALES CARACTÉRISTIQUES : Conseiller d'optimisation SQL (SQL Tuning Advisor) Mode automatique du conseiller d'optimisation SQL Profils SQL Conseiller d'accès SQL (SQL Access
Plus en détailConditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailÉléments d'architecture des ordinateurs
Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances
Plus en détailCryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1
Cryptographie Master de cryptographie Architectures PKI 23 mars 2015 Université Rennes 1 Master Crypto (2014-2015) Cryptographie 23 mars 2015 1 / 17 Cadre Principe de Kercho : "La sécurité d'un système
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailPC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!
PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC! MAGIX PC Check & Tuning 2010 est la solution logicielle complète pour l'analyse, la maintenance et l'accélération
Plus en détailLa magie de SVN. Découverte & usage du logiciel
La magie de SVN Découverte & usage du logiciel Menu I) SVN, qu'est-ce que c'est? 2) Comment utiliser SVN? 3) Que faire en cas de problème avec SVN? I) SVN, Qu'est-ce? -Un projet impliquant plusieurs personnes
Plus en détailProgrammation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Plus en détailResolution limit in community detection
Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.
Plus en détailINFORM :: DEMARRAGE RAPIDE A service by KIS
- Création d'un formulaire Ce petit mémo a pour but de donner une vue d'ensemble des étapes menant à la création d'un formulaire avec in- Form. Bien que générique ce document fournit également les informations
Plus en détailBaccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé
Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e
Plus en détailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailLE PROBLEME DU PLUS COURT CHEMIN
LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs
Plus en détailAlgorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détail1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5
1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en
Plus en détail1. Utilisation du logiciel Keepass
Utilisation du logiciel Keepass L'usage de mots de passe est nécessaire pour de nombreux accès ou pour la protection de données personnelles. Il convient d'en utiliser plusieurs, suivant le type d'accès
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détail6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses
6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailPartie 7 : Gestion de la mémoire
INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases
Plus en détailA -Systèmes de fichiers 1 - FAT vs NTFS
A -Systèmes de fichiers 1 - FAT vs NTFS -------------------------------------------- PETIT HISTORIQUE WINDOWS Windows 3.1 (considéré comme juste une interface, une sur couche sur DOS) FAT 16 Windows 95
Plus en détailPourquoi l apprentissage?
Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage
Plus en détailEbauche Rapport finale
Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide
Plus en détailProjet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies
Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure
Plus en détailGuide de configuration de SQL Server pour BusinessObjects Planning
Guide de configuration de SQL Server pour BusinessObjects Planning BusinessObjects Planning XI Release 2 Copyright 2007 Business Objects. Tous droits réservés. Business Objects est propriétaire des brevets
Plus en détailSur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique
Le DNS DNS = Domain Name Service Sert à résoudre les noms d ordinateur en adresse IP. Contention de dénomination pour les domaines Windows 2000 (nommage des domaines W2K) Localisation des composants physiques
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailConduite et Gestion de Projet - Cahier des charges
Conduite et Gestion de Projet - Cahier des charges 1 Introduction Sophie Toulouse LIPN - Université Paris 13 +33.1.49.40.40.73 99 av. Jean-Baptiste Clément toulouse@lipn.univ-paris13.fr 93430 Villetaneuse
Plus en détailSafeNet La protection
SafeNet La protection des données La conception à l'action, SafeNet protège intelligemment les informations pendant tout leur cycle de vie Les informations peuvent faire progresser votre activité, mais
Plus en détailLes clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1
Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailChapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Plus en détailLa contrefaçon par équivalence en France
BREVETS La contrefaçon par équivalence en France I. Introduction Si l'on considère une revendication de brevet qui remplit les conditions de validité au regard de l'art antérieur, le cas de contrefaçon
Plus en détailTutoriel - flux de facturation
1 of 12 17.01.2007 01:41 Tutoriel - flux de facturation Le schéma ci-dessous illustre le flux de facturation classique : Lors de la création d'une facture, elle possède l'état de brouillon, ce qui veut
Plus en détailCOPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.
COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER. 1. Comment déplacer ou copier un fichier sur Windows Vous aurez régulièrement besoin de déplacer ou dupliquer des fichiers sur votre ordinateur. Par exemple
Plus en détailAtelier Transversal AT11. Activité «Fourmis» Pierre Chauvet. pierre.chauvet@uco.fr
Atelier Transversal AT11 Activité «Fourmis» Pierre Chauvet pierre.chauvet@uco.fr Ant : un algorithme inspiré de l éthologie L éthologie Etude scientifique des comportements animaux, avec une perspective
Plus en détailLES DÉTERMINANTS DE MATRICES
LES DÉTERMINANTS DE MATRICES Sommaire Utilité... 1 1 Rappel Définition et composantes d'une matrice... 1 2 Le déterminant d'une matrice... 2 3 Calcul du déterminant pour une matrice... 2 4 Exercice...
Plus en détailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en détailPetit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département
Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département Le nouveau site du département Le nouveau site du département est situé, comme l'ancien à l'adresse suivante
Plus en détailTechnologie SDS (Software-Defined Storage) de DataCore
Technologie SDS (Software-Defined Storage) de DataCore SANsymphony -V est notre solution phare de virtualisation du stockage, dans sa 10e génération. Déployée sur plus de 10000 sites clients, elle optimise
Plus en détailJade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
Plus en détailREALISATION d'un. ORDONNANCEUR à ECHEANCES
REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6
Plus en détailSauvegarder automatiquement ses documents
Sauvegarder automatiquement ses documents Par Clément JOATHON Dernière mise à jour : 22/09/2014 Il n'y a rien de pire que de perdre ses documents suite à un problème avec son ordinateur. Qu'ils s'agissent
Plus en détail"! "#$ $ $ ""! %#& """! '& ( ")! )*+
! "! "#$ $ $ ""! %#& """! '& ( ")! )*+ "! "#$ $ $ ""! %#& """! '& ( ")! )*+, ## $ *$-./ 0 - ## 1( $. - (/$ #,-".2 + -".234-5..'"6..6 $37 89-%:56.#&(#. +6$../.4. ;-37 /. .?.@A&.!)B
Plus en détailVRM Monitor. Aide en ligne
VRM Monitor fr Aide en ligne VRM Monitor Table des matières fr 3 Table des matières 1 Introduction 3 2 Vue d'ensemble du système 3 3 Getting started 4 3.1 Démarrage de VRM Monitor 4 3.2 Démarrage de Configuration
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailENREGISTREUR DE TEMPERATURE
ENREGISTREUR DE TEMPERATURE Jean-Pierre MANDON 2005 www.pictec.org Cet enregistreur de température a été réalisé dans le cadre de la construction d'un chauffe eau solaire. Il me permet d'enregistrer les
Plus en détailTP 1 : prise en main de Windows. TP 1 : prise en main de Windows
TP 1 : prise en main de Windows TP 1 : prise en main de Windows Objectif du TP : prise en main de Windows manipulation de l'environnement utilisation de quelques logiciels de récupération de données Introduction
Plus en détailModèles à Événements Discrets. Réseaux de Petri Stochastiques
Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailInitiation à LabView : Les exemples d applications :
Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple
Plus en détail4D v11 SQL Release 5 (11.5) ADDENDUM
ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release
Plus en détailTechniques d interaction dans la visualisation de l information Séminaire DIVA
Techniques d interaction dans la visualisation de l information Séminaire DIVA Zingg Luca, luca.zingg@unifr.ch 13 février 2007 Résumé Le but de cet article est d avoir une vision globale des techniques
Plus en détailLa NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.
La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of
Plus en détailDossier table tactile - 11/04/2010
Dossier table tactile - 11/04/2010 Intro Je vais brièvement exposer dans ce document: Ce que j'ai fait, comment je l'ai fait, combien ça m'a couté, et combien de temps j'ai mis à fabriquer, dans le cadre
Plus en détailChaînes de Markov au lycée
Journées APMEP Metz Atelier P1-32 du dimanche 28 octobre 2012 Louis-Marie BONNEVAL Chaînes de Markov au lycée Andreï Markov (1856-1922) , série S Problème 1 Bonus et malus en assurance automobile Un contrat
Plus en détailSur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)
1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général
Plus en détailSupport Agile avec Kanban quelques trucs et astuces par Tomas Björkholm
Support Agile avec Kanban quelques trucs et astuces par Tomas Björkholm Avant-propos Il y a un an, j'ai animé un atelier au Scrum Gathering de Stockholm sur le Support Agile. Depuis, j'ai reçu plusieurs
Plus en détailALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE
ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE P. Baudet, C. Azzaro-Pantel, S. Domenech et L. Pibouleau Laboratoire de Génie Chimique - URA 192 du
Plus en détailPrincipe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM
Les snapshots (instantannés) sous Linux et FreeBSD Principe Un instantanné permet de pouvoir figer l'état du système de fichier à un instant t pour des besoins de sauvegarde. Une sauvegarde peux parfois
Plus en détailConfiguration des téléphones VoIP via le web
Configuration des téléphones VoIP via le web Version Date Description Primaire 3.4.2009 configuration des téléphones VoIP via le web Update 1.5.2009 mise à jour Baechler Bruno 01.05.2009 Page 1 de 14 Tables
Plus en détailDémontage d'un ordinateur
Espaces multimédias Communauté de Communes Moyenne Vilaine et Semnon : Démontage d'un ordinateur 1- A quoi sert-il de démonter son ordinateur? A) Par simple curiosité B) Pour nettoyer C) Pour remplacer
Plus en détailCompte-rendu de projet de Système de gestion de base de données
Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison
Plus en détailArtica. La déduplication. Révision Du 08 Février 2011 version 1.5.020818
Artica La déduplication Révision Du 08 Février 2011 version 1.5.020818 Table des matières Introduction :...2 Historique du projet :...2 A qui s'adresse Artica?...2 Licence et support...2 Que fait Artica?...
Plus en détailHubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)
Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02) Ne rien livrer au hasard, c est économiser du travail Pont Sainte Maxence(O C est quoi USB? Comment ça marche? Les standards? La technique en détail
Plus en détailAnnée : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN
Projet de Fin d'étude Rapport de gestion de projet Recherche de méthode d'estimation de volume de production à risque Équipe 5e me Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM
Plus en détailBig Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailSOMMAIRE. Portraits des intervenants Portraits des animateurs Conférence, Débat et Échanges #$%&'(!)(*+,!-$*./)(*-(!"0!1,2*!34"0!5!!
Compte-rendu Tout savoir sur le Big Data pour comprendre qui sont mes clients L'avènement des NTIC et des outils digitaux transforme nos métiers en profondeur. La révolution digitale a donné du pouvoir
Plus en détailI3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M 20 20 80 80 100 100 300 300
I3, Probabilités 2014 Travaux Dirigés TD 1 : rappels. Exercice 1 Poker simplié On tire 3 cartes d'un jeu de 52 cartes. Quelles sont les probabilités d'obtenir un brelan, une couleur, une paire, une suite,
Plus en détail2. RAPPEL DES TECHNIQUES DE CALCUL DANS R
2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications
Plus en détailApplication 1- VBA : Test de comportements d'investissements
Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps
Plus en détailCONNECTEUR PRESTASHOP VTIGER CRM
CONNECTEUR PRESTASHOP VTIGER CRM Page 1 / 14 Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x et 1.5.x Pour vtiger CRM version 5.1, 5.2.0, 5.2.1, 5.3 et 5.4 Introduction En tant que gérant
Plus en détailUtiliser Glary Utilities
Installer Glary Utilities Après avoir téléchargé Glary Utilities sur le site "http://secured-download.com/softwares/1737-glary-utilities ", double-cliquez dessus pour lancer l'installation. Choisissez
Plus en détailRéseau : Interconnexion de réseaux, routage et application de règles de filtrage.
TD réseau - Réseau : interconnexion de réseau Réseau : Interconnexion de réseaux, routage et application de règles de filtrage. Un réseau de grande importance ne peut pas seulement reposer sur du matériel
Plus en détailInstallation de Windows 2003 Serveur
Installation de Windows 2003 Serveur Introduction Ce document n'explique pas les concepts, il se contente de décrire, avec copies d'écran, la méthode que j'utilise habituellement pour installer un Windows
Plus en détailBig Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de
Plus en détailProtéger ses données dans le cloud
Protéger ses données dans le cloud Par Clément JOATHON Dernière mise à jour : 29/06/2015 Même s'il n'est pas vraiment conseillé de stocker des données sensibles sur un espace de stockage en ligne, comme
Plus en détailServeur de travail collaboratif Michaël Hoste -
Serveur de travail collaboratif Michaël Hoste - Table des matières 1. Qu'est ce qu'un serveur de travail collaboratif?...2 2. Pourquoi ce projet?...2 3. Possibilités d'utilisation dans le cadre de l'université...3
Plus en détail