PCP TP00 Été 2015. Table des matières



Documents pareils
Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

HTML. Notions générales

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Chapitre I Notions de base et outils de travail

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

RÉALISATION D UN SITE DE RENCONTRE

Comment mettre en page votre livre

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

< Atelier 1 /> Démarrer une application web

Club informatique Mont-Bruno

Guide de prise en main de la solution NetExplorer

Évaluation et implémentation des langages

WinReporter Guide de démarrage rapide. Version 4

Acquisition de matériels informatiques

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MANUEL D INSTALLATION

Livret 1 Poste de travail de l utilisateur :

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

PLAN DE COURS DÉPARTEMENT ÉLECTRONIQUE INDUSTRIELLE. TITRE DU COURS Ordinateur Outil RA 1-4-2


IBM Tivoli Monitoring, version 6.1

Cours 1 : Qu est-ce que la programmation?

INSTALLATION. 3 Installation. Configuration requise

RoomMate Guide de l'utilisateur

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

Manuel Utilisateur Version 1.6 Décembre 2001

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

MO-Call pour les Ordinateurs. Guide de l utilisateur

DEVREZ VOUS RÉAPPRENDRE À TRAVAILLER AVEC VOTRE SUITE PRIMMO?

Tropimed Guide d'installation

Infolettre #6: SkyDrive

Support de formation Notebook

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Modification d une feuille de style

Demande de propositions

Création d un fichier html depuis PowerPoint dimanche 11 mai 2008

INTERNETSTUFF NIEDERANVEN

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Mode d emploi pour lire des livres numériques

Quelques éléments de compilation en C et makefiles

Programmation C. Apprendre à développer des programmes simples dans le langage C

Présentation de Firefox

Deux exemples de paragraphes, donnés en contre-point l un de l autre :

TP1. Outils Java Eléments de correction

Antidote et vos logiciels

La Clé informatique. Formation Excel XP Aide-mémoire

QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR

Introduction à HTML5, CSS3 et au responsive web design

Windows Server 2008 R2

!!! Archipad version 1.4. Manuel de Référence

CONSULTATION SUR PLACE

Solutions en ligne Guide de l utilisateur

Premiers Pas avec OneNote 2013

ELO Office / Pro Les avantages : Archivage et gestion documentaire

Archi Office, le logiciel de gestion des documents administratif de l'architecte

Animer des séances pratiques et/ou des laboratoires

Introduction à l informatique en BCPST

Installation des versions 2010 en réseau client-serveur

Manuel d utilisation du logiciel RÉSULTATS. Édition destinée aux départements

Mes documents Sauvegardés

Utilisation de l éditeur.

COURS WINDEV NUMERO 3

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Comment formater votre ebook avec Open Office

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

GPI Gestion pédagogique intégrée

Aide à l installation et à la migration en HelloDoc 5.60

Mises à jour CELCAT depuis la version 6.4

MANUEL L I A I S O N B A N C A I R E C O D A D O M I C I L I A T I O N S I S A B E L 6

DOCUMENT D ACCOMPAGNEMENT POUR L INSTALLATION DU LOGICIEL ESTIMACTION

L informatique en BCPST

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

DOCUMENTATION POINT FACTURE

Introduction à Microsoft InfoPath 2010

Intégrateur Web HTML5 CSS3

Les cinq premiers pas pour devenir vraiment agile à XP Day Suisse 2009 par Pascal Van Cauwenberghe et Portia Tung: La Rétrospective

Documentation Honolulu 14 (1)

ASP 3.0 Professionnel

LA BATTERIE DU PORTABLE

UNE VITESSE DE SAUVEGARDE EXCEPTIONNELLE

Par défaut, VisualQie utilise la messagerie qui est déclarée dans Windows, bien souvent OUTLOOK EXPRESS ou encore OUTLOOK.

FORMATIONS INFORMATIQUE

Créer vos données sources avec OpenOffice, adieu Excel

Guide d'installation. Release Management pour Visual Studio 2013

Rapport financier électronique

Procédure d installation de Pervasive.SQL V8 client/serveur dans un environnement windows 2008 server

WEBISO Internet & Intranet workflow

BIRT (Business Intelligence and Reporting Tools)

ELEMENTS A FOURNIR. VIALAR Yoann

Démarrer et quitter... 13

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Il est courant de souhaiter conserver à

Catalogue Formations informatiques

CONDITIONS D UTILISATION VERSION NOMADE

La Vérité sur la Reconnaissance Vocale.

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Découvrir OpenOffice Comment optimiser et formater votre ebook avec OpenOffice

Transcription:

Table des matières PCP Travail pratique 00... 2 Structure du pipeline... 2 Consignes générales... 4 Si vous êtes en équipe de trois personnes... 4 Consignes techniques... 5 Quoi remettre... 5 Format de la remise... 6 Préparé par Patrice Roy pour l Université de Sherbrooke Page 1

PCP Travail pratique 00 Ce travail pratique vous amènera à mettre en pratique des techniques pour gérer la concurrence et la synchronisation dans un programme. Vous mandat pour ce travail pratique sera d implémenter un schéma de conception typique du parallélisme, soit le pipeline. Concrètement, vous devrez lire plusieurs fichiers sources C++ et leur appliquer une séquence de transformations simples menant, en fin de parcours, à un fichier transformé. Structure du pipeline Votre pipeline sera constitué des étapes suivantes : une transformation prendra chaque nom de fichier (extension.h ou.cpp) et produira son contenu sous la forme d une chaîne de caractères; une transformation qui prendra chaque chaîne de caractères produite par et produira une chaîne équivalente mais épurée de certains métacaractères; une transformation qui prendra la chaîne de caractères produite par et produira une chaîne équivalente, à ceci près qu elle contiendra une version coloriant les mots clés du langage 1 ; une transformation qui prendra la chaîne de caractères produite par et produira une chaîne équivalente, à ceci près qu elle contiendra une version coloriant les commentaires; une transformation qui prendra la chaîne de caractères produite par et produira une chaîne équivalente, à ceci près qu elle contiendra une version coloriant les directives du préprocesseur; et une transformation T 5 qui prendra la chaîne de caractères produite par et l écrira dans un fichier portant le même nom que le fichier original mais avec extension différente, soit.sequentiel.html ou.parallele.html selon le cas. Nous nommerons traitement séquentiel un ensemble de transformations T i, i (0..5) à partir d une donnée source et menant vers une donnée de destination. Supposant d 0 la donnée originale, chaque T i transformera d i en d i+1. Un exemple d un traitement séquentiel est donné par le schéma à droite. Si les transformations T i, i (0..5) sont de simples fonctions/ foncteurs/ λ, alors ce traitement séquentiel fonctionne, mais un seul de chaque T i opère à la fois, ce qui est inefficace (sur une machine à plusieurs cœurs, du moins). Nom fichier Texte fichier Épuré Mots clés coloriés Préprocesseur colorié Commentaires coloriés T 5 Écriture des résultats 1 Pour une liste à jour des mots clés du langage, voir http://en.cppreference.com/w/cpp/keyword Préparé par Patrice Roy pour l Université de Sherbrooke Page 2

Votre travail sera de réaliser cette série de transformations sous la forme d un pipeline, où, pour une certaine séquence d opérations : le traitement réalisé par T j dépend du traitement réalisé par T i, i < j à partir des mêmes données sources, en séquence, mais T i, i > 0 le traitement de T i sur un donnée peut être réalisé en parallèle avec le traitement de T i 1 sur une même séquence; initialement, le pipeline sera ; on alimentera, qui consommera un premier d 0 pour générer d 1 ; pendant que transformera un deuxième d 0 (disons d 0 ) en d 1, pourra traiter d 1 pour générer d 2 ; ensuite, alors que transformera d 0 en d 1, transformera d 1 en d 2 alors que transformera d 2 en d 3 ; etc. Tous les T i s exécuteront donc en parallèle (des threads), et le traitement se poursuivra tant que le pipeline n aura pas été épuisé. L illustration ci-dessous montre l occupation du pipeline pendant le traitement des quatre premières données sources, de gauche à droite. d 0 d 0 ' d 0 ' d 0' ' d 1 d 1 ' d 1 ' d 2 d 2 ' d 3 T 5 T 5 T 5 T 5 Préparé par Patrice Roy pour l Université de Sherbrooke Page 3

Consignes générales Je vous recommande d écrire initialement le traitement séquentiel, pour déboguer les trucs simples de la mécanique (consommation d un fichier, remplacement des sous-chaînes dans une chaîne, ce genre de truc). Profitez-en pour mesurer la vitesse à l exécution de votre programme en mode séquentiel, à titre indicatif. Ensuite, parallélisez le tout dans un pipeline en ajoutant les structures de données qui s imposent. Il est possible que le Mutex portable et les zones de transit couvertes en classe vous soient utiles ici, au moins à titre d inspiration, pour faciliter le passage de données d un thread à l autre. Vous pouvez émment utiliser std::mutex, std::lock_guard, std::thread etc. si votre compilateur est suffisamment à jour. Portez attention aux conditions d arrêt : quand un thread donné se terminera-t-il exactement? Je suis ouvert aux travaux dans divers langages de programmation, dans la mesure où vous me consultez au préalable si vous sortez du groupe commercial classique (C, C++, Java, C#). J ai émment utilisé C++ pour ma version, que je vous présenterai une fois votre version livrée; nous pourrons échanger sur les techniques employées dans votre code comme dans le mien, critiquer, réfléchir collectivement, etc. Si vous êtes en équipe de trois personnes Vous pouvez travailler seul(e) ou en équipe de deux ou trois. Les équipes de trois personnes auront toutefois une contrainte de qualité particulière à respecter, soit la coloration : des chaînes de caractères, monoligne (entre " et ") et multilignes (entre R"( et )"; pas besoin de traiter les autres cas); et des littéraux numériques (je ne demande que la couverture des littéraux usuels, soit les entiers et les nombres à virgule flottante primitifs). Préparé par Patrice Roy pour l Université de Sherbrooke Page 4

Consignes techniques Je vous recommande de vous familiariser avec les outils standards de votre langage de prédilection. Je vous donnerai en classe un aperçu des opérations sur des flux avec C++ dans le but de vous donner un coup de pouce pour démarrer. Vous voudrez peut-être explorer les expressions régulières de votre langage favori pour réaliser ces tâches. En C++, l en-tête standard à ce propos est <regex>. Cela dit, il n est pas nécessaire d y avoir recours pour en arriver à un bon résultat (ma version personnelle ne s en sert pas). Je vous recommande d utiliser des balises <span> et des styles CSS pour réaliser le formatage du cours source. Aussi, pour préserver l indentation d origine, vous souhaiterez sans doute avoir recours à des balises <pre> (Preformatted). Il est possible de spécifier ce que sont des styles CSS imbriqués dans d autres styles CSS. Ceci vous facilitera peut-être l existence quand vous voudrez traiter des mots clés placés entre commentaires, par exemple. Quoi remettre Je m attends à un rapport mettant en relief les éléments suivants : l identité et la contribution de chaque membre de l équipe; une description de la stratégie choisie pour implémenter la partie parallèle (incluant la synchronisation). Cette partie doit inclure le détail des structures de données, idiomes de programmation et schémas de conception que vous aurez choisi d appliquer pour y arriver (code à l appui); le détail de votre stratégie de mesure pour la version séquentielle, et les métriques obtenues; de même que le détail de votre stratégie de mesure pour la version parallèle, et les métriques obtenues. Bien que toutes les parties soient importantes (n en négligez aucune!), je m attarderai plus spécifiquement sur la section indiquant l implémentation de la version parallèle, de même que sur les stratégies de mesure. La grille de correction sera pondérée en conséquence. Préparé par Patrice Roy pour l Université de Sherbrooke Page 5

Format de la remise La remise du travail peut être sous forme papier ou sous forme électronique. Dans le cas d un document électronique, si vous souhaitez une rétroaction signifiante, je dois être en mesure de l annoter à l aide de Microsoft Word 2010 (je n ai vraiment rien contre Open Office, mais ce n est tout simplement pas ce que j ai sur mes postes de travail). Il est possible mais un peu déplaisant d annoter un PDF, alors si vous me livrez un document dans ce format, je limiterai probablement ma rétroaction à quelques remarques par courriel, sans plus. Si vous souhaitez que je teste votre travail chez moi, tenez compte des spécifications techniques de mon ordinateur 2. Vous devez aussi vous assurer, par souci d intégrité, de pouvoir me produire les sources de tous vos modules sur demande et de pouvoir me donner une démonstration sur place, au campus où vous suivez ce cours et un jour où je suis présent, si j en exprime le désir (si je le fais, je vous donnerai quelques jours d avis). Ne me rendez pas la vie trop compliquée je vous prie : il est nécessaire que je puisse installer et désinstaller le tout aussi simplement que possible, que ce soit par un installateur automatisé ou à l aide de consignes simples et claires. Je corrige énormément de travaux chaque session; il est donc impératif que vous me rendiez la tâche facile à l installation et que mon ordinateur soit propre après la désinstallation. Tout document remis devra présenter un français de qualité. Le code devra utiliser une police de caractères non proportionnelle (quelque chose comme Courier New ou Lucida Console par exemple) pour l impression de programmes ou d extraits de programmes, et indentez à l aide d espaces (les tabulations ont une influence qui varie d un éditeur à l autre, ce qui complique la présentation du code et sa lisibilité). Ces polices conviennent bien à un tel usage, clarifiant l indentation appliquée 3. D ailleurs, même si vous utilisez des outils de génération automatique de code 4, ce code devra être indenté de manière lisible, sinon il vous sera retourné sans que je ne l aie lu. Si vous choisissez de faire une remise en format imprimé, cette remise devra être faite le lundi 8 juin en début de séance. Si vous préférez livrer une version électronique par courriel à Patrice.Roy@USherbrooke.ca, alors cette remise devra être faite le lundi 8 juin à 17 h. 2 PC au processeur Intel à quatre cœurs cadencés à 2,6 GHz, 7,6 Go RAM, Microsoft Windows 7. Si ça ne suffit pas, je vous trouve pas mal exigeant(e)s! Notez que, en particulier pour l accès à une base de données, il doit être possible pour moi d utiliser votre système de la maison, alors veillez à prendre des dispositions en conséquence. 3 Sur le site de l enseignant, voir les articles http://h-deb.clg.qc.ca/sujets/trucsscouts/police-pour-code.html et http://h-deb.clg.qc.ca/sujets/trucsscouts/eviter-tabulations.html pour plus de détails quant aux exigences en lien avec la présentation du code. 4 Je pense en particulier aux aficionados de Delphi ici. http://h-deb.clg.qc.ca/sujets/developpement/pratiqueprogrammation.html#indentation pour des idées. L important est d être conséquent à l interne dans un programme donné, et de viser la lisibilité. Préparé par Patrice Roy pour l Université de Sherbrooke Page 6