Changes between Version 3 and Version 4 of MjpegCourse/Multipro
- Timestamp:
- Feb 26, 2008, 11:54:45 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MjpegCourse/Multipro
v3 v4 70 70 de l'application sur station de travail POSIX, en mesurant les temps passés dans les différentes tâches. 71 71 72 La mise en oeuvre du profilage d'une application multithreadée en utilisant les outils actuellement installés sur le réseau 73 est non triviale. Comme elle ne représente pas un intérêt particulier pour le TP, on vous fournit un script pour 74 réaliser le profilage. Il s'utilise avec deux paramètres: le temps pendant lequel il faut lancer le programme, et le programme à lancer. 75 {{{ 76 $ ~pouillon/opt/bin/gprof-mt 15 ./exe.posix 77 }}} 72 On prend comme charge relative entre les tâches les valeurs suivantes: 78 73 79 Dès qu'il parvient à obtenir les résultats, le script vous rend sur la première colonne le temps relatif 80 (en %) passé dans chacunes des 5 tâches `demux`, `vld`, `iqzz`, `idct` et `libu`. 74 || idct || 45% || 75 || vld || 34% || 76 || izqq ||10% || 77 || demux || 8% || 78 || libu || 3% || 81 79 82 [[Image(MjpegCourse:q.gif)]] Q2: Donnez l'estimation des temps de calcul relatifs pour chacune des 5 tâches "logicielles" de l'application MJPEG. 83 Qu'en déduisez-vous sur les façons optimales de déployer MJPEG sur 2, 3, 4 et 5 processeurs ? 80 [[Image(MjpegCourse:q.gif)]] Q2: Qu'en déduisez-vous sur les façons optimales de déployer MJPEG sur 2, 3, 4 et 5 processeurs ? 84 81 85 82 == 2.2 Déploiement sur une architecture à 5 processeurs == … … 97 94 98 95 Déployez l'application MJPEG sur des architectures matérielles comportant 4, puis 3, puis 2 processeurs, 99 en utilisant les informations d e profilage et de taux d'utilisation obtenues dans les questions précédentes,100 p our placer''intelligemment'' les tâches de façon à obtenir les temps de décompression les plus courts possibles.96 en utilisant les informations données sur les charges de chacune des tâches, 97 placez ''intelligemment'' les tâches de façon à obtenir les temps de décompression les plus courts possibles. 101 98 102 99 [[Image(MjpegCourse:q.gif)]] Q6: Quel est le nombre de cycles minimal pour décompresser 25 images avec 4 processeurs ? … … 108 105 == 2.4 Influence de la taille des caches == 109 106 110 On souhaite maintenant évaluer l'influence de la taille des caches sur le temps de décompression. 107 On souhaite maintenant évaluer l'influence de la taille des caches sur le temps de décompression. 108 Utilisez la ligne de commande de votre description pour lui passer systématiquement la taille des caches: 109 {{{ 110 # debut du fichier de description 111 111 112 Pour faciliter l'exploration architecturale sans avoir à modifier le source de votre description à chaque fois 113 que vous voulez changer un paramètre, il serait judicieux d'utiliser la ligne de commande lors de 114 l'interprétation de la description. Dans ce but, on fournit un fichier attachment:cmdline_parser.py . 115 Une fois placé dans le répertoire de votre description DSX, il s'utilise de la manière suivante: 116 {{{ 117 from cmdline_parser import * 112 from dsx import * 113 import sys 114 115 dcache_lines = int(sys.argv[1]) 116 icache_lines = int(sys.argv[2]) 118 117 }}} 119 Il définit les variables suivantes: 120 * `dcache_lines`, nombre passé sur la ligne de commande après le flag `--dl`, à défaut, 1024. 121 * `icache_lines`, nombre passé sur la ligne de commande après le flag `--il`, à défaut, 1024. 122 Utilisez ces variables à l'instanciation de votre plateforme. 123 Pour créer une plateforme avec des caches avec 64 lignes de données, il suffira alors d'exécuter: 124 {{{ 125 $ ./mjpeg --dl 64 126 }}} 118 Utilisez ensuite les deux variables dcache_lines et icache_lines. 127 119 128 120 On se place dans l'hypothèse d'une architecture à 2 processseurs, en conservant le placement … … 158 150 }}} 159 151 160 Le fichier `mjpeg.py` sera celui de la partie 2.4, avec la prise en compte des arguments sur la ligne161 de commande.Les deux sources C sont ceux des deux derniers TP, éventuellement modifiés.152 Le fichier `mjpeg.py` sera celui de la partie 2.4, avec la gestion de la ligne de commande. 153 Les deux sources C sont ceux des deux derniers TP, éventuellement modifiés. 162 154 163 155 Cette archive devra être livrée avant le mardi 4 mars 2008, 18h00 à [MailAsim:nipo Nicolas Pouillon]