[PDF] UNIVERSITÉ DU QUÉBEC À MONTRÉAL PpFf : UNE





Previous PDF Next PDF



Gestion des bibliothèques tierces dans un contexte de maintenance

18 mai 2015 Ainsi réutiliser du code source est prédominant dans le développement ... Une bibliothèque Java propose ainsi un ensemble de classes



Les bibliothèques universitaires du Sud et les logiciels libres de

9 janv. 2003 logiciels libres de gestion intégrée des bibliothèques » prend place ... 14 Dont le code source est publiquement disponible et librement ...



Larchivage du code source sur les plateformes de développement

30 juin 2016 Mention – sciences de l'information et des bibliothèques ... Dans sa complexité le code source nécessite donc une gestion toute.



MANUEL: Technologies de linformation et de la communication

Chapitre 2 - Sélection implémentation et gestion de services de TIC . bibliothèques utilisant le code source ouvert ont facilité l'intégration de cette ...



UNIVERSITÉ DU QUÉBEC À MONTRÉAL PpFf : UNE

2.20 Des extraits du code source de l'application WordCount en Java. Ces dernières années plusieurs bibliothèques écrites en C++ ont été conçues pour ...



Organisation et dépendances des projets

Pour appréhender au mieux cette gestion des bibliothèques logicielles En règle générale lors de l'import d'une classe Java externe dans le code source.



UE Programmation Orientée Objet Devoir Surveillé

20 mai 2015 On s'intéresse à la gestion d'une bibliothèque et en particulier à la ... (6mn) Donnez le code java de la méthode emprunteLivre qui réalise ...



Hanane NACIRI 1. Activités denseignement

documents mathématiques (module indépendant développé en JAVA et distribue librement avec son code source). ? Une bibliothèque Aldor pour la gestion et la 



Programmation Orientée Objet Java

Exemple: Gestion d'une bibliothèque Un programme Java n'est pas compilé en code machine ; ... Suppression des concepts sources de bugs.



CONCEPTION ET REALISATION DUNE APPLICATION DE G

2009 : Création d'un logiciel de gestion de Bibliothèque produire directement du code source dans les principaux langages informatiques (Java



Gestion de bibliothèques avec Maven - gdufrenegithubio

Build Maven 4 Ensemble de tâchepour compiler oupréparerunelibrairie •compile •clean •test •package •Tâchesen dépendances package >> test >> compile





TECHNOLOGIES EN BIBLIOTHÈQUE : EXEMPLES D’UTILISATIONS - GESTION

Logiciel de bibliothèque numérique - Collections d’objets numériques (Calypso) : ContentDM Page disciplinaire : À la carte HTML (Typo3) Questions des usagers : QuestionPoint Environnement numérique d’apprentissage (Studium) : Moodle Publication de périodiques –code source ouvert : Open Journal Systems (OJS) (Page UdeM



Le livre de JAVA premier langage Avec 109 exercices corrigés

Code source des exemples du livre Apprendre Java en douceur Vous avez décidé de vous initier à la programmation et souhaitez opter pour un langage largement utilisé dans le monde professionnel ? Java se révèle un choix idéal comme vous le constaterez dans ce livre conçu pour les vrais débutants en programmation



SYSTÈME INTÉGRÉ DE GESTION DE BIBLIOTHÈQUE

Le catalogue en ligne (OPAC) permet à vos usagers de consulter le contenu de votre bibliothèque à partir de n'importe quel ordinateur muni d'un accès Internet De nombreux services Web (Babelthèque OpenLibrary LibraryThing OCLC etc ) sont intégrés ain d'enrichir l'aichage de votre catalogue à l'aide d'imagettes de couverture de



Searches related to gestion de bibliothèque en java code source filetype:pdf

175 exercices corrigés pour maîtriser Java Conçu pour les étudiants en informatique ce recueil d’exercices corrigés est le complément idéal de Programmer en Java du même auteur ou de tout autre ouvrage d’initiation au langage Java Cette nouvelle édition tient compte des nouveautés de Java 8 publié en mars 2014

Qu'est-ce que la compatibilité d'une bibliothèque Java ?

    Dans le cadre d'une bibliothèque Java, la compatibilité s'entend au sens de la compatibilité binaire. Si une version de votre bibliothèque est rétrocompatible avec une version antérieure, le code continue de compiler, mais aussi de linker et de s'exécuter sans erreur.

Qu'est-ce que le code source Java?

    Copie d'écran de code source Java. Le code source est un texte qui représente les instructions qui doivent être exécutées par un microprocesseur. Le code source est généralement écrit dans un langage de programmation permettant ainsi une meilleure compréhension par des humains.

Pourquoi écrire une bibliothèque en Java ?

    Parce qu’il simplifie la vie, parce qu’il est différent de l’existant, ou meilleur, ou plus simple d’utilisation. Quelle que soit votre motivation, ce que vous voulez, c’est écrire une bibliothèque en Java.

Qu'est-ce que le code source du programme enjavascript?

    Le code source du programme en JavaScript débute ici. Le jeu comporte 10 motifs différents qui sont numérotés de 1 à 10. Le tableau est initialisé avec les numéros de motifs qui se suivent. Le codage utilisé pour l'état des cartes est le suivant : Au départ toutes les cartes sont présentées de dos.

UNIVERSITÉ DUQUÉBEC ÀMONT RÉAL

PpFf: UNEBIBLIOTHÈQUE C++POUR LETRAITEMENT

PARALLÈLEDE FLUXDE DONNÉES

MÉMOIRE

PRÉSENTÉ

COMME EXIGENCEP ARTIELLE

DE LAMAÎTRISE ENINF ORMATIQUE

PAR

IULIAN CIOBANU

JANVIER 2021

UNIVERSITÉ DU QUÉBEC À MONTRÉAL

Service des bibliothèques

Avertissement

La diffusion de ce mémoire se fait dans le respect des droits de son auteur, qui a signé le formulaire Autorisation de reproduire et de diffuser un travail de recherche de cycles supérieurs (SDU-522 - Rév.10-2015). Cette autorisation stipule que "conformément à l'article 11 du Règlement no 8 des études de cycles supérieurs, [l'auteur] concède à l'Université du Québec à Montréal une licence non exclusive d'utilisation et de publication de la totalité ou d'une partie importante de [son] travail de recherche pour des fins pédagogiques et non commerciales. Plus précisément, [l'auteur] autorise l'Université du Québec à Montréal à reproduire, diffuser, prêter, distribuer ou vendre des copies de [son] travail de recherche à des fins non commerciales sur quelque support que ce soit, y compris l'Internet. Cette licence et cette autorisation n'entraînent pas une renonciation de [la] part [de l'auteur] à [ses] droits moraux ni à [ses] droits de propriété intellectuelle. Sauf entente contraire, [l'auteur] conserve la liberté de diffuser et de commercialiser ou non ce travail dont [il] possède un exemplaire.»

REMERCIEMENTS

Toutgrand projet estrarementréalisé parune seulepersonne.Celui-ci nefait pas exception. Jesuis reconnaissant àtousceux etcelles quim'ont aidéet sou tenu pendan t ces annéesde trav ail. Toutd'ab ord,jevoudrais remerciermon directeurderec herche, leprofesseur Guy Tremblay.Sanssonsoutienet son aide,ce mémoiren'aurait paspu êtreterminé.Grâceà sa richeexpèrience, ilm'aguidédans mesrec herches. Il m'adonné denom breusesidées, suggestions etcritiques constructives. Jeleremercieaussi pour sonsupp ortfinancier au cours del'hiv eretdel'été 2020. Je doiségalemen tungrandmerc iau professeurMarco Aldinucci,del'Univ ersitéde Turin, pourson soutientec hniquep ourl'applicationdeFastFlow. Je souhaiteaussi remercierles analystese ttec hnicienssystè mesdeslaboratoires informa- tiques etle personnel administratifquiont permis àmon mémoiredesedérouler sans obstacle techniqueouadministratif.

Enfin, jetiens àremercier àma famille,qui atoujours étélà, m'ay ant aidémoralemen tà

surmonterles di cultés quej'ai euesduran tces annéesdereche rche.

TABLEDES MAT IÈRES

LISTE DESFIGURES ................................vii LISTE DEST ABLEAUX...............................ix LISTE DESLISTINGS ................................xiii

0.1 Définitiondu problème ..............................1

0.2 Objectifs......................................3

0.3 Organisationdu mémoire ............................3

CHAPITRE ILOGI CIELSETBIBLIOTHÈQUESDE TRAITEMENTDE FLUX DEDONNÉES :SP ARK,JA VA,FASTFLO WETAUTRESBIBLIO- THÈQUES C++....................................5

1.1 Parallélismedeflux dedonnées .........................5

1.2 ApacheSpark...................................6

1.2.1ResilientDistr ibutedDataset(RDD)..................7

1.2.2DiscretizedStre ams............................8

1.2.3 Exemple: wordCoun t..........................8

1.3 Streamsde Jav a8................................9

1.3.1 Expressionslam bdas...........................9

1.3.2 Itérations.................................11

1.3.3 Flux....................................14

1.3.4Threadsde typefork/join........................15

1.3.5 Exemple: wordCoun t..........................16

1.4 FastFlow......................................18

1.4.1 Conceptionen couches ..........................18

1.4.2 E

1.4.3 Parallélismedeflux ............................20

1.4.4 Exemple: WordC ount..........................22

1.5 AutresbibliothèquesC++ ............................26

1.5.1 RaftLib..................................26

1.5.2 StarPU..................................28

1.5.3 SkePU...................................29

CHAPITRE IIDESCRIPTIONDE L'APIDE PPFF ..............31

2.1 Exemple: l'application WordCount.......................33

2.2 Fluxde données :type Flow ...........................34

2.3 CatégorieSource :métho dessource......................35

iv

2.4 CatégorieT ransformation............................35

2.4.1 Méthodemap...............................36

2.4.2 MéthodesflattenetflatMap......................36

2.4.3 Méthodefind...............................37

2.5 CatégorieAgrégation ...............................37

2.5.1 Collectedesélémen tsd'un fluxdansuncon teneur...........38

2.5.2 Réductiondesélémen tsd'un fluxenuneseule vale ur.........38

2.5.3 ClasseReducer..............................39

2.5.4 Regroupementdesélémentsselon uneclé ................43

2.5.5 Regroupementdeséléments selonune cléetréductiond'une valeur

2.6 CatégorieExecution ...............................47

2.7 Expressivitéde PpFfpar rapport àF astFlowet Jav a.............48

2.7.1 PpFfvs. FastFlo w............................48

2.7.2 PpFfvs. Jav a...............................54

CHAPITRE IIIMISEENOEUVRE DEPPFF ..................61

3.1 Lesélémen tsdePpFf...............................61

3.1.1 Flow....................................63

3.1.2 Pipeline..................................66

3.1.3 Operators.................................70

3.2 Éxécutionparallèle av ecparallélismedefluxoude données..........71

3.2.1 Parallélismedeflux ............................71

3.2.2 Parallélismededonnées .........................72

3.3 ImplémentationdePpFfa vec FastFlo w:quelquesexemples.........74

3.3.1 Exemple 1: Unflux simplea vec uniquemen tunesourceetuncollecteur 74

3.3.2 Exemple2: Unflux simplea vec parallélisme dedonnées .......77

3.3.3 Exemple 3: Unflux av ecune transformationetavec deuxniv eauxde parallélisme dedonnées .........................80 CHAPITRE IVÉV ALUATIONDESPERFORMANCES: COMPARAISONS DEPPFFAVECJA VAETFASTFLOW .......................85

4.1 Méthodeutiliséep ourles expériences......................85

4.1.1 Caractéristiquesdesmac hineset compilateursutilisés.........85

4.1.2 Choixdesprogrammes comparés....................87

4.1.3 Mesuresdestemps d'exécution .....................88

4.1.4 Exemplesd'expériences préliminaires..................88

4.2 Expériencesav ecl'applicationWordCount...................93

4.2.1 Descriptiondel'application.......................93

4.2.2 Mesuresobtenues etanalysedesrésultats ...............93

4.3 Expériencesav ecl'applicationStockPrice....................98

4.3.1 Descriptiondel'application.......................99

4.3.2 Mesuresobtenues etanalysedesrésultats ...............101

4.4 Autresexp ériencesavec l'applicationWordCount:Utilisation deparallel et nombredethreads...............................105 v

4.4.1 Descriptiondetroisv ariantes deW ordCount..............106

4.4.2 Mesuresobtenuesetanalysedes résultats...............107

4.5 Discussiondes résultatset limitesde PpFf...................110

ANNEXE AMÉTHODES PUBLIQUESDE L'APIDE PPFF.........115 ANNEXE BS PÉCIFICATIONSSEMI-FORMELLESDUTYPEREDUCER ET DELA MÉTHODEGR OUPBYKEY......................123 B.1 Description(semi-)formelle d'unReducer....................123 B.2 Description(semi-)formelle deGroupByKey...................124 ANNEXE CEXTRAIT DUSCRIPT DECONFIG URA TIO NDESEXPÉ- RIENCES POURW ORDCOUNT..........................125 ANNEXE DRÉSUL TATSDESEXPÉRIENCESPRÉLIMINAIRESPOURLES PROGRAMMESW ORDCOUNT.JAVAETSTOCKPRICE.JAVA........129 ANNEXE EEXTRAITS DESPR OGRAMMES UTILISÉSPOURLESEXPÉ- RIENCES AVECWORDCOUNT ..........................133 E.1 ProgrammeW ordCount.java...........................133 E.2 Fonctionsauxiliaires communes auxprogrammesWordCoun tSeq.cpp,W ord- Count.cppet WordCoun tFastFlow.cpp.....................135 E.3 ProgrammeW ordCountSeq.cpp(versionséquentielle) .............136 E.4 ProgrammeW ordCount.cpp(versionPpFf)...................137 E.5 ProgrammeW ordCountFastFlow.cpp......................138 ANNEXE FEXTRAITS DESPR OGRAMMESUTILISÉS POURLESEXPÉ- RIENCES AVECSTOCKPRICE..........................141 F.1 ProgrammeSto ckPrice.java...........................141 F.2 ProgrammeSto ckPriceSeq.cpp(versionséquentielle)..............142 F.3 ProgrammeSto ckPrice.cpp(versionPpFf)...................143 F.4 ProgrammeSto ckPriceFastFlow.cpp......................144 ANNEXE GEXTRAITS DESPR OGRAMMESUTILISÉS POURLESEXPÉ- RIENCES AVECLESTR OISVERSI ONSDEWORDCOUNT ..........145 G.1 Fonctionsauxiliairesutilisées parles programmes...............145 G.2 ProgrammeW ordCountSplitted.cpp.......................147 G.3 ProgrammeW ordCount.cpp...........................148 G.4 ProgrammeW ordCountMerged.cpp.......................149

LISTE DESFIGURES

FigurePage

1.1 Unecomparaison entre traitementséque ntieletparallèle..........13

1.2 Lescouc hesdeFastFlow...........................19

1.3 Lestrois parties d'unfarmdeFastFlow...................22

1.4 Lastructure interne deStarPU........................28

2.1

Les di

érentesméthodes exportéesparl'API dePpFf, regroupéesselon leur typedefonctionnalité...........................32

3.1 Lesprincipaux élémen ts(classesetpaquetages)dePpFf..........62

3.2 Lesmétho desexportéespar l'APIdePpFf..................64

3.3 Undiagramme UMLdes éléments pour unPipelinedePpFf.......67

3.4 Undiagramme UMLdes OperatorsdePpFf................69

3.5 Unereprésen tationgraphiqueduparallélisme deflux enPpFf.......72

3.6 Unereprésen tationgraphiqueduparallélisme dedonnées enPpFf.....74

3.7 Lastructure intermédiaire PpFfpourl'exe mple1..............75

3.8 La structurein termédiairePpFfet legraphe FastFlowassociép our l'exemple 1...................................75

3.9 Lastructure intermédiaire PpFfpourl'exe mple2..............78

3.10 La structurein termédiairePpFfet legraphe FastFlowassociép our l'exemple 2...................................78

3.11 Lastructure intermédiair ePpFfpourl'exe mple3..............81

3.12 La structurein termédiairePpFfet legraphe FastFlowassociép our l'exemple 3...................................82

4.1 Lestemps d'exécution pourWordCountsur lamac hineM1.........89

4.2 Lestemps d'exécution pourWordCountsur lamac hineM1.........90

viii 4.3 Les tempsd'exécution desprogrammes pour WordCountsur lesmac hines M1

4.4 Lesdébits pour WordCountsur lesmac hinesM1,M2etM3..........95

4.5 Lesaccélérations po urWordCountsur lesmac hinesM1,M2etM3......96

4.6 Les tempsd'exécution desprogrammes pour StockPricesur lesmac hines M1

4.7 Lesdébits pour StockPricesur lesmac hinesM1,M2etM3.........103

4.8 Lesaccélérations po urStockPricesur lesmac hinesM1,M2etM3.....104

4.9 Les tempsd'exécution desprogrammes pour WordCountsur lamac hineM3.108 D.1 Les tempsp ourlesdiverses varian tesdeWordCount.javasur lesmac hines M1 D.2 Les tempsp ourlesdiverses varian tesdeStockPrice.javasur lesma chines M1

LISTE DEST ABLEAUX

TableauPage

4.1 Lescaractéristiques desmac hinesutilisées danslesexpériences. ......86

LISTE DESLISTINGS

1.1Un segmentdeco deSpark/Javapourcompter lenom bred'o ccurrences

de mots.....................................8 1.2 Un exempled'une expressionlam bda quireçoitdeuxvaleurs det ypeentier en argument..................................10 1.3 Un exemplede remplacement d'uneclasseanonyme parune expression

1.4 Unexemple comparan titérationexterneetin terne.............12

1.5 Un exempled'optimisation dutraitemen td'un fluxenutilisant latec hnique

1.6 Unpip elineJavapourcompter lenom bred'o ccurrencesdemots.....17

1.7 Le codesourceFastFlowd'une applicationp ourcompterlenom bred'o c- currences demots. ..............................23 2.1 Des extraitsdu code sourcedel'applicationWordCountqui comptele nombred'o ccurrencesdesmotsdans untexte. ...............33 2.2 La transformationd'une collectiond'en tiersen uneautrecollectiond'en- tiers enappliquan tuneexpressionlam bda surc hacundeséléments....35 2.3 La générationdes nomsde tousles employ és d'unecollection dontlesalaire est supérieurà1000..............................36

2.4 Unpip elinepouriden tifierl'employé leplusagé...............38

2.5 Lasignature dela classeReduceravecsesquatre constructeurs. .....40

2.6 Un autrepip elinepouriden tifierl'employé leplusagé,mais avecun Reduceret sansparallélisme. ........................40 2.7 Un exempled'utilisation d'unReducer, exécutéen parallèleet av ecune

2.8 Unexemple d'exécution enparallèledela méthode reduce........42

xii

2.9 Unpip elinepourregroup erlesemploy ésselonleur âge. ..........44

2.10 Unpip elinepourregroup erlesnomsd'emplo yésselonleur âge.......45

2.11 Unpip elinepourcompter lenombred'emplo yés dec haqueâge......46

2.12 a)Les opérations auxiliairesutiliséesparun pipeline FastFlow......49

2.12 b) Unpip elineFastFlowpourregroup erlesétudiants boursiers pardé-

2.13 Unpip elinePpFfpourr egrouperlesétudiantsb oursiers pardépartement.51

2.14 Un pipelineFastFlowpourregroup erlesétudiantsb oursierspar départe- menten utilisant lesinstancesparallèlesd'un farm.............52 2.15 Un pipelinePpFfpourregroup erlesétudiants boursiers pardépartement en utilisantlesinstances parallèlesd'un farm................53 2.16 Un pipelineJavapourregroup erenparallèle lesétudian tsboursierspar

2.17 L'objetReducerutilisé parl'application WordCountenPpFf........57

2.18 Laclasse ReduceByKeyutilisée parl'application WordCounten Java....57

2.19 Desextraits duco desource del'applicationWordCountenPpFf......58

2.20 Desextraits duco desource del'applicationWordCounten Java......58

3.1 Des extraits(squelette) dela classeFlowaveclav ariabled'instance pipe et leco dedelamétho destatique soure...................65 3.2 Le codedela méthode map, méthodequifait partiedu groupe Transformation de laclasse Flow................................65 3.3 Le codedela méthode count, méthodequifait partiedu groupe Agrégation de laclasse Flow................................66 3.4 Le codesourced'un fluxp ourtrouv erle maximumd'unecollection de 3.5 Le codesourced'un fluxp ourtrouv erle maximumd'unecollection de données enutilisan tlesinstancesparallèles d'unfarm...........77 3.6 Le codesourcede laclasse Collectorqui combinelesrésultats partiels de chaquesous-fluxvia lamé thode value().................79 3.7 Le codesourced'un fluxp ourtrouv erle maximumd'unecollection de données enutilisan tunnombre detra vailleursdistincts...........83 xiii

4.1 Unextrait duco dede StockPrice.cpp(versionPpFf)...........100

4.2 Un exempleillustran tl'informationsurdes actionscon tenues dansle fichier .100 C.1 Un extraitd'un fichier deconfigurationpour lesexp ériencesp ourles programmesWordCount*.*: fichierWordCount-bm-config.rb......126

RÉSUMÉ

Les applicationsde traitement defluxsont utilisées pour traiteretanalyserles données qui arriventdefaçoncon tinue prov enantdesourcesdi

érentes.Celles-ciincluent des

applications desécurité, desapplic ationsinformatiques générantdescapteurs, divers typesd'applicationsde surv eillance,des applicationsdudomainedelafinance, dela gestion deréseau informatiqueet destélécomm unications.Ces applicationsson t,dans de nombreuxcas,complexes. Leur complexitéaugmen teencorepluslorsque lesdonnées doiventêtretraitées enparallèle.

Afin detraiter defaçon simpleet e

cace lesfluxde données,ce mémoireprop ose PpFf , unebibliothèque C++avecuneAPIsimple, dest ylefonctionnelle,fondéesur une approche"diviser-pour-régner» maisnonrécursive, quip ermetde traiterdesdonnées en fluxincrémen tal,maisaussides collectionsen lot( batch).

PpFfpermetaussi aux

programmeurs d'exposerfacilement leparallélismedansdes applicationsde traitement de données - autan tdu parallélismedefluxque duparallélisme dedonnées - et ceen obtenantdes performances intéressantes,ce quiestpossiblegraceà unemise enoeuvre qui utilisela bibliothèqueFastFlow, unebibliothèque debas niveau detraitemen tde flux dedonnées enC++. MotsclŽs : Programmationparallèle, fluxde données,traitemen tde flux,FastFlow.

INTRODUCTION

Le traitementdefluxde donnéesdevien tde plusen plusimp ortantenraison dela grande quantitéde donnéescon tinue llementgénérées,provenantdediverses sourcestelles que des capteurs,des indicateursb oursiers,des dispositifsderéseau, etc.Afin detraiter rapidementune grandequan titéde données,notammenten exploitan tles capacités des processeursmult icoeursmodernes,uneapplicationdoit êtreconçueenparallèle. La conception etla miseen oeuvre d'applicationsparallèles e!cientesp ourtraiterdesflux de données posentdesdéfisaux développ eurs.Les coûts decommunications(

Amarasinghe

et al. ,2011), lesconditions decourse (data race)(Wuet al.,2015), lesin terblocages(Haque, 2006
) etlesdéséquilibres dec hargede trav ailentreles filsd'exécution (

Amarasingheet al.,

2011
) sontquelquesexemples deproblèmes quidemanden tde se orts supplémentaires aux programmeurs.De plus,la complexitédu code peut diminuer laproductivitéet, par conséquent,augmenter lescoûtsdedév eloppemen t.Ce mémoirevise àproposerune bibliothèque, enC++, quip ermettraiter defaçonsimpleles fluxde donnéesen tentan t de dissimulercette complexité.

0.1Définition duproblème

Une applicationqui traiteun fluxde donnéesp eutêtre considéréecomme unpip elineà traverslequelles donnéesdu fluxson tpro duites,traitées etconsommées encontinu. Le parallélisme dansle traitement d'untelfluxconsiste àtraiter desé léments distinctdu flux de façonconcurren te - parallélismedeflux(flow parallelismoustreampar allelism) -

et àréplique runmêmeop érateur surdes sous-groupesd'élémentsduflux - parallélisme

de données(data parallelism). Latransforma tion,letriou laré ductionpar unop érateur binaire sontdesexemples d'opérations pour lesquellesduparallélisme dedonnéespeut

être exploité.

2 Les applicationsparallèlesson tgénéralemen tcodéesà l'aidedebibliothèquescomme FastFlow(Aldinucciet al.,2014)ouTBB(Reinders,2007). Cesoutils permetten taux utilisateurs d'implémenterdessolutions robusteset portables av ecune abstractionde haut niveauquimasque lacomplexité desmécanismes deconcurrence, telsque lagestion desthreadset lessync hronisations.Bienqueles modèles o"erts parces outilsaien tp our but desimplifier ledév eloppemen td'applicationsparallèles,ilsn'o rentpas unein terface standard. Notrebibliothèque veut introduireun modèlesimple,oùleprogra mmeurcrée un pipelineparl'in termédiaired'une interface(API,ApplicationPro grammingInterface) qui exposeclairement lesopérationsde transformation,et oùchaquetransformation est relativementsimple - cequi correspond àune applicationdu principe"diviser-pour- régner» maisde façonnon récursive. Réécrire uneapplication es tgénéralementcoûteuxenterme sdetempsde développ emen t. Les approchesvisantàpallier cedéfautsont souven tdes outilsde programmations parallèles développéspourin troduireleparallélisme dansducodeséquentiel existant. Des exemplesson tOpenMP(Chandraet al.,2001)etOpenACC(Farber,2016) quiutilisen t une approchebaséesurl'a joutde directives - descommentaires spéciaux traitéspar le compilateur - et Cilk(Leiserson etPlaat ,1998) quiest uneext ensionsimple du langageC. Malheureusement,cesoutils neson tpas bienadaptés autraitementde flux de données.

Ces dernièresannées, plusieursbibliothèques écritesen C++ontété conçuesp ourtraiter

des fluxde données.P armiles plusrécentes,on retrouve RaftLib(Beardet al.,2017), StarPU(Aumageet al.,2018a)etSkePU(Ernstsson etKessler ,2015). Malgréle fait que cesbibliothèques soient desoutilsperforman ts,aucune d'en treellenefacilitela description desop érationsd'unfluxcomme lep ermetle chaînage desop érations. Des outilsqui supporten tletraitementdeflux dedonnées sontdisponibles aussidans d'autres langagesde programmationque C/C++. Parmilesplus connus onretrouv e Spark(Frampton,2015) (Java,Scalaetautres langages),les Streams deJava 8(War- burton ,2014)etFlink(Apache,2014) (JavaetScala).Notre bibliothèquep ossè deune APIsemblableà celledes Streams deJava8, maisen C++, etelle estsouv ent plussimple

à spécifiernotammentgrâce auxtemplates.

3

0.2Objectifs

Dans lecon textedulangagedeprogrammation C++, ilexiste plusieursbibliothèques qui o rentdes algorithmesde traitement deflux dedonnées.Cependan t,plusieurs des constructions pourexprimerdes algorithmes parallèlesse limitentàdes opérations de transformation etet deréduction. Cemémoire acomme objectif d'enrichir cesop érations avecdenouv ellesop érations,etcedans uneinterfacesimple àutiliser .Ceci, associé à de nouvellesfonctionnalitéstelles queles expressionslam bda (

Josuttis

,2012), aideun programmeur àécrire desop érationscomplexes pourunflux dedonnées. Cettenouvelle bibliothèque enC++, appeléePpFF, estmise enoeuvre av ecla bibliothèqueFastFlow. Étantdonné laressem blance aveclesStreams deJava 8, lesp erformancesdePpFfseront évaluéesen lesc omparant àcellesdesStreams. Commenous lev errons,les résultats indiquentque PpFfpeuten e"et traiterdes donnéesà hautdébit. Nouscomparerons aussi les performancesdePpFfaveccellesdeFastFlow, afind'analyser lessurcoûts intro duits par rapportàFastFlow. Enplus demesurer lesp erformancesde notrebibliothèque, nous illustreronségalemen tsonexpressivitéen implémen tant certainscas d'utilisation typiquesrencon trésdansles applicationsde traitementde fluxde données .

0.3Organisation dumémoire

Les chapitresquiformen tle coeurdumémoireson torganisés commesuit. Le chapitre1Logiciels etbibliothèques detraitemen tde fluxdedonnées: Spark, Jav a, FastFlowetautres bibliothèquesC++ présentedes outilsexistan tsp ortantsurle traitementdes fluxde données.T outd'ab ord,il introduitle sarchitecturesutilisées par diversoutils, puisil présente lesmo dèlesdeprogrammationsp ermettant d'exprimerles traitementsde données. Le chapitre2Description del'API dePpFf présentel'API denotre bibliothèque.Plus précisément,le chapitre présentelesmét hodesles plusimp ortantesdePpFfà l'aide de quelquesexemple s.Àdesfins decomparaison, certains deces exemplesson taussi 4 présentésen Javaet enC++avecFastFlow. Unrésumé sousforme detableau detoutes les méthodesimplémenté esestaussiprésentéen annexe. Le chapitre3Mise enoeuvre dePpFf explique commentnousa vons misenoeuvrenotre bibliothèque enutilisan tlabibliothèquede basniv eauFastFlow. Finalement,le chapitre 4Évaluationdes performances :ComparaisonsdePpFfavecJava et FastFlowprésenteune évaluation desperformancessur deuxcas d'utilisationtypiques.

CHAPITRE I

LOGICIELS ETBIBLIOTHÈQUES DETRAITEMENT DEFLUX DE

DONNÉES :SP ARK,JAVA, FASTFLOWETAUTRES

BIBLIOTHÈQUES C++

La programmationparallèle devient deplusenplus unenécessité av ecl'apparition des architecturesm ulticoeurs.Jusqu'àily aquelques années,une desprincipales façons d'exécuter unprogramme plusrapidemen tétait grâceàl'augmentation dela vitesse d'horloge dupro cesseur.Denosjours, lavitesse d'horlogea atteint seslimites etles performancesd'unprogramme nep euven tsouv entêtreamélioréesquesionl'exécute en parallèle. Il existedenom breuses approchesetdenom breuxlangagesdeprogrammationparallèle .Le paradigme deprogrammation parallèleparflux dedonné eso"re uneappro cheprometteuse pourla programmation desystèmesmulticoeurs. C'estc etteappro chequenous allons brièvementdécrirea van tdeprésenterquelqueslangagesexistants quimetten tenoeuvre cette approche.

1.1Parallélismede fluxde données

Unflux dedonné esest unesuite poten tiellementinfiniededonnées,généréespar di"érentes

sources, quip eutêtretraitée defaçon incrémentalepardes processus interconnectés. Typiquement,letraitemen tdes donnéesd'unfluxs'e ectue àl'aide d'uneséquence d'opérations - unpipelined'opérations.Les opérations typiquesdetraitemen tdefluxquotesdbs_dbs14.pdfusesText_20
[PDF] gestion de calidad ejemplos

[PDF] gestion de calidad en salud

[PDF] gestion de calidad iso 9001

[PDF] gestion de calidad pdf

[PDF] gestion de calidad ppt

[PDF] gestion de calidad segun autores

[PDF] gestion de calidad total

[PDF] gestion de calidad total paul james pdf

[PDF] gestion de calidad total pdf

[PDF] gestion de carrière cours

[PDF] gestion de carrière définition

[PDF] gestion de chantier gratuit

[PDF] gestion de classe efficace

[PDF] gestion de clientèle bts nrc nathan

[PDF] gestion de cobranza definicion