Analyse des performances dans les systèmes intégrés multi-cœursBen Salma SANA Encadré par:Fournel NicolasPétrotFrédéric1
IntroductionÉvolution des microprocesseurs:Augmentation de la puissance en élevant la fréquence de calcul ⇒Atteinte des limitesAugmentation du nombre des processeursArrivée des systèmes intégrés multi-cœurs2
Qu’est ce qu’un benchmark?Point de référence exploration du designsExemples de benchmarks: Flops, Whetstone, Splash2, PARSEC«The Princeton Application Repository for Shared Memory Computers»Visés pour les puces multiprocesseursUtiles pour la recherchefonctionnent sur plusieurs plateformes (i386, x86_64, Sparc)3
objectifs-Adapter les benchmarks Parsec à des architectures présentes dans les systèmes embarqués ARM -Analyser lesperformances du système intégrésimulé. 4
Etapes du projet:-Compilationet simulerles Parsecsur la machinelocale-Compilationcroisée pour ARM-Simulationdes benchmarks sur lamachine ARM-Analysedesrésultats5
ParsecComposés de 9 applications et 3 noyaux:-9 applications: blackscholes,bodytrack,facesim,ferret, fluidanimate,freqmine,swaptions.-3noyaux: canneal,dedup,streamcluster-diversitédes domaines: finance, visualisation,animation… -différents types deparallélisme:pipline, parallélisme de données6
Compilation des Parsec sur la machine localeIl s’agit d’une machine Intel: Ordinateur classique:tuB-prendre enmain les Parsec-pour avoirunpoint de repère pour lacomparaison7
Plateforme viséeplateforme virtuelle «LOMOSA»développée au sein d’un projet européen8
Compilation croisée pour ARMQu’est ce que La Compilation Croisée ?Un compilateur croisé cross compilerest capable de traduireuncodesourceencode objetayant un environnement d’exécution différent de celui où la compilation est effectuée.9
Black scholesPermet de calculer la valeur d’une option européenne analytiquement avec le modèle d'équations différentielles partiellesBlack Scholes.-Modèle de parallélisme:parallélisme dedonnées.01
Simulation sur machine locale et ARMEntrée:nombre de threads, numOptionSortie du benchmarks:Sizeof data = numOptions*(sizeof(optionData)+sizeof(int))Pour numOption=300 ;nthreads= 4Machine locale LomosaPARSECBenchmarkSuiteVersion2.0PARSECBenchmarkSuiteVersion2.0NNuummooffROupntis:o1n0s:0300NNuummooffROupntis:o1n0s:0300Sizeofdata:12000Sizeofdata:1320011