WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS



Documents pareils
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Organisation du parcours M2 IR Les unités d enseignements (UE) affichées dans la partie tronc commun sont toutes obligatoires, ainsi que le stage et

Les diagrammes de modélisation

UE Programmation Impérative Licence 2ème Année

Techniques d ordonnancement pour les SoC

Thème 3 Conception et vérification d architectures de systèmes sur puce

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs

Catalogue des stages Ercom 2013

Contributions à l expérimentation sur les systèmes distribués de grande taille

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Le programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie.

MABioVis. Bio-informatique et la

Introduction au datamining

La Certification de la Sécurité des Automatismes de METEOR

4.2 Unités d enseignement du M1

Formation des enseignants. Le tensiomètre. Objet technique modélisable issu de l environnement des élèves

IFT3913 Qualité du logiciel et métriques. Chapitre 2 Modèles de processus du développement du logiciel. Plan du cours

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Extrait des Exploitations Pédagogiques

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Introduction au langage C

GL Le Génie Logiciel

Cours d Algorithmique et de Langage C v 3.0

Université de Bangui. Modélisons en UML

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

as Architecture des Systèmes d Information

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Conception des systèmes répartis

Bases de programmation. Cours 5. Structurer les données

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programme de la 1ère année

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Introduction à la Programmation Parallèle: MPI

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Rappels Entrées -Sorties

Parcours en deuxième année

Gestion Projet. Cours 3. Le cycle de vie

UE C avancé cours 1: introduction et révisions

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Simulation de graphes de tâches

Cours des réseaux Informatiques ( )

Processus d Informatisation

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Parallélisme et Répartition

Master Informatique Aix-Marseille Université

Méthodologies de développement de logiciels de gestion

W4 - Workflow La base des applications agiles

IRL : Simulation distribuée pour les systèmes embarqués

Systèmes et traitement parallèles

CORBA haute performance

Prenez le PLM express

!-.!#- $'( 1&) &) (,' &*- %,!

CESI Bases de données

Organigramme / Algorigramme Dossier élève 1 SI

Cours 1 : Qu est-ce que la programmation?

NOTIONS DE RESEAUX INFORMATIQUES

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Méthode Agile de 3 ème génération J-P Vickoff

Dimensionnement Introduction

ECTS INFORMATIQUE DE GESTION Option Administrateur de réseaux Locaux d entreprise

ITIL Gestion de la capacité

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

TP : Gestion d une image au format PGM

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Initiation. àl algorithmique et à la programmation. en C

Prise en compte des ressources dans les composants logiciels parallèles

Université Libre de Tunis

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Les Entrepôts de Données

ACTIVITÉ DE PROGRAMMATION

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours de Master Recherche

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

Introduction aux systèmes temps réel. Iulian Ober IRIT

Formula Negator, Outil de négation de formule.

Notions fondamentales du langage C# Version 1.0

Equilibrage de charge (Load

Présentation de la gamme des PGI/ERP modulaires Wavesoft

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

Manage Yourself. Rapport de planification. Projet de 4ème année informatique. Equipe :

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

IFT2255 : Génie logiciel


1 Description générale de VISFIELD

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Génie Logiciel avec Ada. 4 février 2013

Transcription:

WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS Avec l appui de l INRIA www-rocq.inria.fr/syndex 1

PLAN I. Présentation du sujet II. Présentation de l algorithme Cahier des charges Graphe flot de contrôle extrait du programme C III. Présentation de SynDEx Méthodologie AAA/SynDEx Intérêts IV. Implantation avec SynDEx v5 Démarche Résultats de la simulation Test sur architecture réelle Conclusion de l implantation avec SynDEx V5 V. Implantation avec SynDEx v6 Démarche Exploration des implantations de l algorithme sur différentes architectures Analyse des résultats Conclusion de l implantation avec SynDEx V6 VI. Conclusion 2

PRESENTATION DU SUJET Étude du prototypage d une application de traitement d images avec SynDEx Simulation de l algorithme de traitement d images sur différentes architectures à base de processeurs ADSP21060 3

PRESENTATION DE L ALGORITHME Cahiers des des charges Algorithme de calcul d une translation entre deux images Livraison du document n o E/SCS-2000-759-A contenant : présentation générale de l algorithme programme en langage C synoptique de l architecture matérielle 4

PRESENTATION DE L ALGORITHME Graphe Graphe flot flot de de contrôle extrait extrait du du programme C Lecture des images 1 et 2 Lecture des listes de points caractéristiques extraits des images 1 et 2 Réduction des images 1 et 2 Pré-estimation de la translation globale entre les 2 images Appariement des points caractéristiques Filtrage des appariements incorrects Calcul de la translation Translation fine 5

PRESENTATION DE SynDEx Méthodologie AAA/SynDEx Approche globale fondée sur une extension de la sémantique des langages synchrones Modèle unifié : graphes Algorithme : opération / dépendance : donnée, conditionnement Architecture : opérateur calcul-commu., mémoire / connexion Implantation : transformations de graphes : distribution/ordonnancement Adéquation : implantation optimisée Macro-génération Exécutifs pour multicomposant : réseau de processeurs et de circuits intégrés spécifiques 6

PRESENTATION DE SynDEx Exemple d algorithme :: égaliseur adaptatif Itération n Filtrea Filtrea Filtrea gensig adap gensig adap gensig adap filtre sub filtre sub coeff coeff coeff visu visu filtre sub visu retard filtre adap gensig adap coeff filtre sub visu 7

PRESENTATION DE SynDEx Exemple d architecture processeur1 processeur2 processeur3 Opr1 Opr2 Opr3 RAM D/P Com1b SAM Com2b RAM D/P RAM D RAM D/P Com1a Com2a Com3a moyen de communication : passage de msg SAM RAM D mémoire partagée RAM D/P processeur4 Opr4 8

PRESENTATION DE SynDEx Optimisations Caractérisation opérations/opérateurs Mesures : durée, mémoire, interférences calculs/com. Choix d une implantation parmi toutes Qui respecte les contraintes temps réel et de distribution Qui minimise les ressources Distribution/ordonnancement : hors-ligne sans préemption Problèmes NP-difficiles : heuristiques Rapides (prototypage) : gloutonne, ordonnancement liste 9

PRESENTATION DE SynDEx Implantation optimisée AAA/SynDEx Langages orientés métiers :: Signal, Signal, Scicos, AVS, AVS, etc. etc. AAA/SynDEx Algorithme Algorithme Architecture Architecture Contraintes Contraintes Adéquation Adéquation Distribution/Ordonnancement Heuristiques Heuristiques + Générateur Générateur Performances Performances Calculées Calculées gnu-m4 Macro-Exécutifs ADSP21060 + noyaux génériques + libs Exécutifs application 10

PRESENTATION DE SynDEx Intérêts Langage de spécification orienté métier + AAA/SynDEx = environnement cohérent de modélisation, simulation, implantation optimisée, sans rupture dans le cycle de développement Prototypage rapide : simulation temporelle, étude parallélisme potentiel, dimensionnement architecture Génération automatique de code conservant les propriétés de la spécification, code prototype = code de série Cycle de développement très réduit 11

IMPLANTATION AVEC SynDEx V5 Graphe Graphe faisant faisant apparaître du du parallélisme d opérations Image 1 (à t) Image 2 (à t+ T) Lecture des points caractéristiques extraits de l image 1 Réduction d un facteur 2 Réduction d un facteur 2 Lecture des points caractéristiques extraits de l image 2 Pré-estimation de la translation globale entre les 2 images Appariement des points caractéristiques Filtrage des appariements incorrects ( métrique + statistique) Translation fine Translation grossière Calcul de la translation Liste des points appariés représentant les déplacements Liste des appariements corrects 12

IMPLANTATION AVEC SynDEx V5 Graphe Graphe flots flots de de données (utilisable avec avec SynDEx V6) V6) 13

IMPLANTATION AVEC SynDEx V5 Limitations de de SynDEx V5 V5 SynDEx v5 ne fait pas apparaître de parallélisme de données (même opération répétée spatialement sur des données différentes) Il faut exprimer explicitement les répétitions d opérations (fastidieux) Pour simplifier on encapsule dans une unique opération les opérations répétées. Conditionnement, non disponible. 14

IMPLANTATION AVEC SynDEx V5 Implantation d une d une première partie partie de de l algorithme Génération automatique de code produit des fichiers - root.m4 (macrocode dédié à ce processeur).. 15

IMPLANTATION AVEC SynDEx V5 Chaîne Chaîne de de compilation SynDEx BIBLIOTHEQUE GENERIQUE D EXECUTIF spécifique à l architecture (Unix.m4x, C.m4x) Macro code généré automatiquement MACRO PROCESSEUR M4 Source C compilable COMPILATEUR Executable1 Executable2 (exemple à deux processeurs) BIBLIOTHEQUE de macros spécifiques à l application (Appli.m4x) FONCTIONS spécifiques à l application (fonctions.c) 16

IMPLANTATION AVEC SynDEx V5 Association opération-syndex / fonction-c # Fonction Reduction Appli.m4x divert void reduction(int height, unsigned char *im, int width, unsigned short *imreduc); divert(-1) # function Reduc1 Reduction1 {uchar[65536]?im int?height int?width ushort[16384]!imreduc} def (`Reduction1',`ifelse(MGC,LOOP, `proto_(uchar[65536]?$1, int?$2, int?$3, ushort[16384]!$4) Ccall_(void, `reduction', int $2, uchar *$1, int $3, ushort *$4)')') void reduction(int height, unsigned char *im, int width, unsigned short *imreduc) { int i, j, k; for (j = 0;j < height; j++) { for (i = 0;i < width; i++) { k=(j >> 1)*(width >> 1)+(i >> 1); imreduc[k] += im[j*width+i]; } } } Fonction C 17

IMPLANTATION AVEC SynDEx V5 Tests Tests Modification du programme C d origine pour générer des fichiers intermédiaires Validation par comparaison du contenu des fichiers issus du programme d origine, et ceux obtenus avec SynDEx Chronométrage automatique des durées d exécution (sur station de travail) Validation incrémentale 18

IMPLANTATION AVEC SynDEx V5 Validation incrémentale (3) (3) 19

IMPLANTATION AVEC SynDEx V5 Validation incrémentale (4) (4) 20

IMPLANTATION AVEC SynDEx V5 Chronométrage de de l implantation mono-processeur de de la la première partie partie de de l algorithme 21

IMPLANTATION AVEC SynDEx V5 Simulation temporelle avec avec les les durées durées chronométrées 22

IMPLANTATION AVEC SynDEx V5 Simulation bi-processeur avec avec un un média média de de communication lent lent 23

IMPLANTATION AVEC SynDEx V5 Simulation bi-processeur avec avec un un média média de de communication 10x 10x plus plus rapide rapide 24

IMPLANTATION AVEC SynDEx V5 Conclusion de de l implantation avec avec SynDEx V5 V5 Parallélisme d opérations (de tâches) : insuffisant pour diminuer la durée d exécution en bi-processeur Nécessité de spécifier du parallélisme de données au niveau des fonctions de pré-estimation ( Preestim ) et d appariement ( Appar ) Spécification avec SynDEx V6 25

IMPLANTATION AVEC SynDEx V6 SynDEx V6 V6 Spécification hiérarchique Permet de représenter l algorithme complet de façon plus claire Factorisation Mise en évidence du parallélisme de données (même opération répétée spatialement sur des données différentes) Conditionnement par booléen et entier Prise en compte par l heuristique, lors de l optimisation, des cas où les opérations sont exécutées dans des cas exclusifs (jamais en même temps) 26

IMPLANTATION AVEC SynDEx V6 SynDEx V6 V6 :: Portage de de l implantation de de l algorithme complet spécifié en en V5 V5 27

IMPLANTATION AVEC SynDEx V6 Spécification hiérarchique de de l opération «Preestim» 28

IMPLANTATION AVEC SynDEx V6 Spécification hiérarchique de de l opération «CorrelationFineP» :: Preestim (2) (2) 29

IMPLANTATION AVEC SynDEx V6 Spécification hiérarchique de de l opération conditionnée «CorrelationsDeplacements» 30

IMPLANTATION AVEC SynDEx V6 Spécification hiérarchique de de l opération «Appar Appar» 31

IMPLANTATION AVEC SynDEx V6 Spécification hiérarchique de de l opération «AppariementEtape1» :: Appar Appar (2) (2) 32

IMPLANTATION AVEC SynDEx V6 Exploration des des implantations de de l algorithme sur sur différentes architectures Une architecture est définie par son nombre de processeurs et par la topologie d interconnexion entre ces processeurs Topologie point à point en anneau (test sur 1 à 8 processeurs) Topologie complètement interconnecté (test sur 1 à 6 processeurs) Topologie point à point en anneau, et un bus global partagé (test sur 1 à 8 processeurs) 33

IMPLANTATION AVEC SynDEx V6 Architecture à 4 processeurs, topologie point point à point point complètement interconnecté 34

IMPLANTATION AVEC SynDEx V6 Architecture à 8 processeurs, topologie point point à point point en en anneau anneau 35

IMPLANTATION AVEC SynDEx V6 Ordonnancement de de l algorithme sur sur l architecture mono-processeur 36

IMPLANTATION AVEC SynDEx V6 Distribution/ordonnancement de de l algorithme sur sur l architecture bi-processeur 37

IMPLANTATION AVEC SynDEx V6 D/o D/o de de l algorithme sur sur une une architecture à 4 processeurs 38

IMPLANTATION AVEC SynDEx V6 D/o D/o de de l algorithme sur sur une une architecture à 8 processeurs 39

IMPLANTATION AVEC SynDEx V6 Analyse des des résultats Gain (en %) Gain (en %) 100 80 60 40 20 0 1 2 3 4 5 6 7 8 nb de processeurs Topologie point à point en anneau 100 80 60 40 20 0 1 2 3 4 5 6 7 8 nb de processeurs Topologie point à point en anneau et bus global partagé Gain (en %) 90 80 70 60 50 40 30 20 10 0 1 2 3 4 5 6 nb de processeurs Topologie point à point complètement interconnecté 40

CONCLUSION Stage EADS & INRIA : Kamel MEZIANE SynDEx permet de: prédire les performances d une implantation d algorithme sur différentes architectures même si nous ne les possédons pas réellement simuler différentes implantations des variantes d un algorithme sur différentes architectures afin de rechercher la plus adaptée générer du code pour une architecture choisie prototyper rapidement et effectuer une implantation temps réel optimisée, des applications de traitement d images 41

CONCLUSION SynDEx repose sur une méthodologie de développement : Spécification de l application dans le formalisme SynDEx Simulation/exécution en mono-processeur sur station de travail Chronométrage des durées d exécution des opérations Simulation en multi-processeur Raffinement de la spécification Chronométrage des durées d exécution des opérations Simulation en multi-processeur AAA optimisée 42