Changes between Version 3 and Version 4 of MjpegCourse/Multipro


Ignore:
Timestamp:
Feb 26, 2008, 11:54:45 PM (16 years ago)
Author:
Nicolas Pouillon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MjpegCourse/Multipro

    v3 v4  
    7070de l'application sur station de travail POSIX, en mesurant les temps passés dans les différentes tâches.
    7171
    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 }}}
     72On prend comme charge relative entre les tâches les valeurs suivantes:
    7873
    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% ||
    8179
    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 ?
    8481
    8582== 2.2 Déploiement sur une architecture à 5 processeurs ==
     
    9794
    9895Déployez l'application MJPEG sur des architectures matérielles comportant 4, puis 3, puis 2 processeurs,
    99 en utilisant les informations de profilage et de taux d'utilisation obtenues dans les questions précédentes,
    100 pour placer ''intelligemment'' les tâches de façon à obtenir les temps de décompression les plus courts possibles.
     96en utilisant les informations données sur les charges de chacune des tâches,
     97placez ''intelligemment'' les tâches de façon à obtenir les temps de décompression les plus courts possibles.
    10198
    10299[[Image(MjpegCourse:q.gif)]] Q6: Quel est le nombre de cycles minimal pour décompresser 25 images avec 4 processeurs ?
     
    108105== 2.4 Influence de la taille des caches ==
    109106
    110 On souhaite maintenant évaluer l'influence de la taille des caches sur le temps de décompression.
     107On souhaite maintenant évaluer l'influence de la taille des caches sur le temps de décompression.
     108Utilisez la ligne de commande de votre description pour lui passer systématiquement la taille des caches:
     109{{{
     110# debut du fichier de description
    111111
    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 *
     112from dsx import *
     113import sys
     114
     115dcache_lines = int(sys.argv[1])
     116icache_lines = int(sys.argv[2])
    118117}}}
    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 }}}
     118Utilisez ensuite les deux variables dcache_lines et icache_lines.
    127119
    128120On se place dans l'hypothèse d'une architecture à 2 processseurs, en conservant le placement
     
    158150}}}
    159151
    160 Le fichier `mjpeg.py` sera celui de la partie 2.4, avec la prise en compte des arguments sur la ligne
    161 de commande. Les deux sources C sont ceux des deux derniers TP, éventuellement modifiés.
     152Le fichier `mjpeg.py` sera celui de la partie 2.4, avec la gestion de la ligne de commande.
     153Les deux sources C sont ceux des deux derniers TP, éventuellement modifiés.
    162154
    163155Cette archive devra être livrée avant le mardi 4 mars 2008, 18h00 à [MailAsim:nipo Nicolas Pouillon]