• Aucun résultat trouvé

Prédiction des performances d’une architecture 2D SOME-Bus avec le deep learning

N/A
N/A
Protected

Academic year: 2022

Partager "Prédiction des performances d’une architecture 2D SOME-Bus avec le deep learning"

Copied!
92
0
0

Texte intégral

(1)

ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITÉ D’ABOMEY-CALAVI

ECOLE POLYTECHNIQUE D’ABOMEY-CALAVI

DEPARTEMENT DE GENIE INFORMATIQUE ET TELECOMMUNICATIONS

Option: Réseaux Informatiques et Internet

MEMOIRE DE FIN DE FORMATION POUR L’OBTENTION DU

DIPLOME D’INGENIEUR DE CONCEPTION Thème :

Prédiction des performances d’une architecture 2D SOME-Bus avec le deep learning

Harold KIOSSOU

kiossouharold@gmail.com

Sous la supervision de : Dr Ing. Vinasétan Ratheil HOUNDJI

Année Académique : 2017-2018 11ePromotion

(2)

UNIVERSITÉ D’ABOMEY-CALAVI

ECOLE POLYTECHNIQUE D’ABOMEY-CALAVI

DEPARTEMENT DE GENIE INFORMATIQUE ET TELECOMMUNICATIONS

Option: Réseaux Informatiques et Internet

MEMOIRE DE FIN DE FORMATION POUR L’OBTENTION DU

DIPLOME D’INGENIEUR DE CONCEPTION Thème :

Prédiction des performances d’une architecture 2D SOME-Bus avec le deep learning

Harold KIOSSOU

kiossouharold@gmail.com

Jury :

Président du jury : Dr Léopold DJOGBE

Examinateus : Dr Wilfrid CODJIA

Dr Georges A. AGBAHUNGBA

Rapporteur :

Dr Ratheil V. HOUNDJI

Année Académique : 2017-2018 11ePromotion

(3)

À

• Mon père Roger KIOSSOU, pour avoir soutenu mes études et assuré mon éducation.

Reçois ici le fruit de tes efforts.

• Ma mère Monique HAZOUME, pour les sacrifices consentis. Que ce travail soit le cou- ronnement de tes sacrifices.

• Mes sœurs,Mélaine KIOSSOUetHermine KIOSSOUpour leur soutien.

(4)

En préambule de ce mémoire, je tiens à remercier le Seigneur tout puissant qui nous a ac- cordé la santé, la force et la persévérance nécessaires pour la réalisation de ce projet de fin d’études.

Mes remerciements vont à l’endroit de tous ceux qui, de près ou de loin, ont participé à la réalisation de ce travail. Je pense particulièrement :

• au Dr Ing. Vinasétan Ratheil HOUNDJI, mon superviseur pour ses conseils, ses direc- tives et tout ce qu’il a apporté dans la concrétisation de ce travail ;

• auDr. Léopold DJOGBE, chef du Département de Génie Informatique et Télécommuni- cations (GIT) et à tous les enseignants dudit département ;

• à toute ma famille pour leur soutien indéfectible ;

• à mes amis Faïzath ZOUMAROU WALIS, Géraldine ATCHADE, Jean-Baptiste SOS- SOU,Erick ADJE,Jacques AKOUEIKOU,Daryl GOGANet à tous ceux que je ne pour- rais citer ici.

(5)

Dédicaces i

Remerciements ii

Liste des figures v

Liste des tableaux viii

Liste des sigles et abréviations ix

Résumé x

Abstract xi

Introduction 1

1 Revue de littérature 5

1.1 Les architectures SOME-Bus . . . 5

1.2 Le deep learning (apprentissage profond) . . . 16

2 Matériel et choix techniques 24 2.1 Matériel . . . 24

2.2 Choix techniques . . . 27

3 Solution proposée 32 3.1 Division et normalisation de l’ensemble de données . . . 33

3.2 Entraînement du réseau de neurones . . . 34

3.3 Validation croisée . . . 34

3.4 Architecture des réseaux de neurones . . . 35

3.5 Evaluation des réseaux de neurones . . . 36

3.6 Conclusion . . . 38

(6)

4 Résultats et discussion 39

4.1 Résultats obtenus pour quatre neurones dans les couches cachées . . . 39

4.2 Résultats obtenus pour six neurones dans les couches cachées . . . 44

4.3 Discussion . . . 48

Conclusion et perspectives 53

English Part Predicting the performance of the 2D SOME-Bus with the deep learning 54

4.4 The SOME-bus architecture . . . 55

4.5 Related Works . . . 57

4.6 Primer on Artificial Neural Network . . . 58

4.7 Technical choices . . . 58

4.8 Proposed solution . . . 59

4.9 Results and discussion . . . 63

Bibliographie 67

Webographie 69

A Fonctions d’activation 70

(7)

1.1 Multiprocesseur à mémoire distribuée . . . 6

1.2 Multiprocesseur à mémoire partagée(a) . . . 7

1.3 Multiprocesseur à mémoire partagée(b) . . . 7

1.4 Interface optique . . . 9

1.5 Interface processeur . . . 10

1.6 Récepteur parallèle . . . 11

1.7 2d SOME-Bus . . . 12

1.8 Diagramme d’un nœud . . . 13

1.9 Neurone biologique . . . 17

1.10 Perceptron . . . 19

1.11 Neurone artificiel . . . 20

1.12 Réseau de neurones artificiels . . . 22

2.1 KDnuggets Analytics / Data Science 2018. Sondage sur les logiciels : les princi- paux outils en 2018 et leur part dans les sondages 2016-7 . . . 30

3.1 Diagramme des étapes . . . 33

4.1 Courbes d’entraînement . . . 49

4.2 Example of two dimensional SOME-Bus with 16 Nodes . . . 56

4.3 Training curves . . . 65

A.1 Fonction linéaire . . . 71

A.2 Fonction sigmoïde . . . 72

A.3 Fonction tangente hyperbolique . . . 73

A.4 Fonction linéaire rectifiée . . . 74

A.5 Fonction softmax . . . 75

(8)

2.1 Statistiques descriptives des variables prédictives . . . 25

2.2 Statistiques descriptives des variables prédictives . . . 26

2.3 Statistiques descriptives des mesures de performance . . . 26

4.1 Résultats pour la prédiction de l’utilisation moyenne du canal. . . 50

4.2 Résultats pour la prédiction du temps d’attente moyen du canal. . . 50

4.3 Résultats pour la prédiction de la latence moyenne du réseau. . . 50

4.4 Résultats pour la prédiction de l’utilisation moyenne du processeur. . . 51

4.5 Résultats pour la prédiction du temps d’attente moyen des entrées. . . 51

4.6 Results for prediction of average channel utilization. . . 63

4.7 Results for prediction of average channel waiting time. . . 63

4.8 Results for prediction of average network latency. . . 63

4.9 Results for prediction of average processor utilization. . . 64

4.10 Results for prediction of average input waiting time. . . 64

(9)

couche cachée

4.1 Epoques = 50 & Taille du lot = 3 . . . 40

4.2 Epoques = 50 & Taille du lot = 5 . . . 40

4.3 Epoques = 50 & Taille du lot = 6 . . . 40

4.4 Epoques = 100 & Taille du lot = 3 . . . 41

4.5 Epoques = 100 & Taille du lot = 5 . . . 41

4.6 Epoques = 100 & Taille du lot = 6 . . . 41

4.7 Epoques = 200 & Taille du lot = 3 . . . 42

4.8 Epoques = 200 & Taille du lot = 5 . . . 42

4.9 Epoques = 200 & Taille du lot = 6 . . . 42

4.10 Epoques = 500 & Taille du lot = 3 . . . 43

4.11 Epoques = 500 & Taille du lot = 5 . . . 43

4.12 Epoques = 500 & Taille du lot = 6 . . . 43

(10)

cachée

4.1 Epoques = 50 & Taille du lot = 3 . . . 44

4.2 Epoques = 50 & Taille du lot = 5 . . . 44

4.3 Epoques = 50 & Taille du lot = 6 . . . 44

4.4 Epoques = 100 & Taille du lot = 3 . . . 45

4.5 Epoques = 100 & Taille du lot = 5 . . . 45

4.6 Epoques = 100 & Taille du lot = 6 . . . 45

4.7 Epoques = 200 & Taille du lot = 3 . . . 46

4.8 Epoques = 200 & Taille du lot = 5 . . . 46

4.9 Epoques = 200 & Taille du lot = 6 . . . 46

4.10 Epoques = 500 & Taille du lot = 3 . . . 47

4.11 Epoques = 500 & Taille du lot = 5 . . . 47

4.12 Epoques = 500 & Taille du lot = 6 . . . 47

(11)

1D SOME-Bus : 1-dimensional Simultaneous Optical Multiprocessor Exchange Bus 2D SOME-Bus : 2-dimensional Simultaneous Optical Multiprocessor Exchange Bus IOP : Input Output Processor

MAE : Mean Absolute Error

MFANN : Multi-layer Feed Forward Neural Network NUMA : Nonuniform Memory Access

RAE : Root Absolute Error RMSE : Root Mean Square Error RRSE : Relative Root Square Error SGD : Stochastic Gradient Descent

SOME-Bus : Simultaneous Optical Multiprocessor Exchange Bus SVR : Support Vector Regression

UCT : Unité Centrale de Traitement UMA : Uniform Memory Access

(12)

tical Multiprocessor Exchange Bus (2D SOME-Bus) est un réseau d’interconnexion optique caractérisé par une faible latence. C’est une implémentation robuste d’archi- tectures informatiques performantes en pétaflops. Dans ce travail, nous proposons des modèles de réseaux de neurones artificiels pour prédire les mesures de perfor- mance (notamment l’utilisation moyenne du canal, le temps moyen d’attente du ca- nal, la latence moyenne du réseau, l’utilisation moyenne du processeur et le temps moyen d’attente des entrées) d’une architecture multiprocesseur interconnectée par le 2D SOME-Bus. En utilisant la validation croisée par 10, nous évaluons les perfor- mances des modèles de prédiction à l’aide de plusieurs métriques de performance.

Les expériences démontrent que nos modèles de réseaux de neurones sont plus per- formants que les modèles d’apprentissage automatique présents dans la littérature pour ce problème pour la plupart des prédictions.

Mots clés:2D SOME-Bus, multiprocesseurs, deep learning, mesures de performance.

(13)

tical Multiprocessor Exchange Bus (2D SOME-Bus) is an optical interconnect net- work characterized by its low latency. It is a robust implementation of petaflops- performance computer architectures. In this work, we propose some artificial neu- ral network models to predict the performance measures (namely average channel utilization, average channel waiting time, average network latency, average proces- sor utilization and average input waiting time) of a passing message architecture interconnected by the 2D SOME-Bus. By using 10-fold cross validation, we evaluate the performance of the predictions models using several performance metrics. The experiments demonstrate that our neural networks models outperform the state-of- the-art machine learning models for this problem on most of the predictions.

Key words: 2D SOME-Bus, multiprocessors, deep learning, performance measurements.

(14)

Grâce à la puissance de calcul élevée des ordinateurs parallèles, il est désormais possible d’aborder de nombreuses applications qui, jusqu’à récemment, dépassaient les possibilités des techniques informatiques classiques. Les environnements de passage de messages sont consi- dérés comme les méthodes de programmation les plus populaires pour les ordinateurs paral- lèles. Leur flexibilité permet de paralléliser tous les types d’application (systèmes client-serveur, parallèles de données, embarqués et en temps réel, etc.). Ces ordinateurs sont constitués de sys- tèmes multiprocesseurs présentant différentes caractéristiques qui influencent leur utilisation.

Cependant, afin que le public dispose des meilleurs équipements, beaucoup de tests sont faits en usine et ces tests s’avèrent coûteux en temps. A l’heure où l’intelligence artificielle présente de nombreuses applications et des résultats encourageants, il serait intéressant d’analyser son utilité dans la prédiction des mesures de performances des systèmes multiprocesseurs. Nous nous intéressons dans le cadre de ce travail, à l’application du deep learning dans la prédic- tion des performances d’une architecture 2-dimensional Simultaneous Optical Multiprocessor Exchange Bus (2D SOME-Bus).

Contexte

Des performances élevées de calcul sont nécessaires pour de nombreuses applications, y com- pris la simulation de phénomènes physiques, la simulation de circuits intégrés et des réseaux neuronaux, la modélisation météorologique, l’aérodynamique et le traitement d’images. Ces performances sont de plus en plus difficilement obtenues avec des ordinateurs monoproces- seurs car la vitesse de traitement qui est liée à l’augmentation de la fréquence des processeurs connaît des limites. C’est donc pour y pallier que le parallélisme intervient. Il consiste à mettre en œuvre des architectures permettant de traiter des informations de manière simultanée à l’aide de plusieurs processeurs en communication, ainsi que les algorithmes spécialisés pour celles-ci [2]. Ces techniques ont pour but de réaliser le plus grand nombre d’opérations pos- sibles en un temps limité et réduit.

(15)

Les systèmes multiprocesseurs peuvent être classés suivant que la mémoire entre les pro- cesseurs est partagée ou distribuée. Dans le cas d’une architecture à mémoire partagée, tous les processeurs ont accès aux mêmes données, l’espace mémoire est global et uniforme. Mais avec cette méthode, il y a un problème au niveau matériel : les processeurs ne peuvent pas tous avoir accès à la mémoire en même temps. Par contre, dans le cas d’une architecture à mémoire distribuée, chaque processeur a sa propre mémoire et ses propres données. L’espace mémoire est fragmenté. Une autre composante des systèmes multiprocesseurs hormis les processeurs et la mémoire est le réseau d’interconnexion qui relie les processeurs entres eux (dans le cas de la mémoire distribuée) ou qui relie les processeurs avec les bancs mémoire (dans le cas de la mé- moire partagée). Le réseau d’interconnexion doit permettre l’échange d’informations entre les processeurs. Ses performances sont critiques et il faut donc y accorder une importance capitale à la conception. Il existe plusieurs façons d’interconnecter les processeurs dans ces systèmes et ces différentes façons influent sur les performances du système en entier. Le 2D SOME-Bus [3, 7, 10, 11] est une architecture d’interconnexion des processeurs qui incorpore des dispositifs optoélectroniques dans une architecture de traitement très performante. Il s’agit d’un réseau d’interconnexion à fibre optique à faible latence et à large bande passante qui connecte direc- tement chaque nœud à tous les autres nœuds sans contention [7]. Le 2D SOME-Bus est une implémentation fiable et robuste pour atteindre des puissances de calcul de l’ordre du péta- FLOPS1. Le 2D SOME-Bus se compose deN réseaux horizontaux etN verticaux 1-dimensional Simultaneous Optical Multiprocessor Exchange Bus (1D SOME-Bus) etN2 nœuds. Chacun des N nœuds connectés à un 1D SOME-Bus possède un canal de diffusion dédié et une interface de canal d’entrée basée sur un réseau deN récepteurs surveillant tous les N canaux et permettant plusieurs diffusions simultanées. A chaque nœud, un convertisseur électro-optique composé d’une paire double récepteur-émetteur permet de transmettre et de diffuser les messages diffu- sés sur un bus dans l’autre dimension [3, 10]. Des simulations suivant des modèles analytiques ou des simulations statistiques sont faites en usine afin d’évaluer les performances du réseau et du système globalement. Nous nous intéressons à la prédiction de ces performances en utilisant les techniques d’apprentissage profond pour une architecture 2D SOME-Bus.

Problématique

Deux méthodes sont généralement utilisées pour les études des multiprocesseurs : la modéli- sation analytique et la simulation. Les modèles analytiques deviennent intraitables lorsque la dynamique des multiprocesseurs est prise en compte et ne sont pas pratiques pour les études dépendantes de l’application [4, 5, 6]. La simulation, avec les hypothèses correctes, est une ap- proche réalisable qui peut produire une image précise du comportement dynamique des mul- tiprocesseurs. La simulation statistique est une méthode qui caractérise le comportement du

1petaF LOP S = 1015F LOP Soù FLOPS (floating-point operations per second) est le nombre d’opérations en virgule flottante par seconde. Il s’agit d’une unité de mesure de la performance d’un système informatique.

(16)

programme et de l’architecture avec certaines distributions de probabilités. L’idée de la simu- lation statistique est de mesurer un certain nombre de caractéristiques importantes d’exécution du programme, de générer une trace synthétique qui montre les références mémoire d’une charge de travail et de simuler cette trace synthétique [4]. L’avantage important est qu’une trace synthétique est très petite par rapport aux traces de programme réelles. Une simulation statistique est un outil robuste, flexible et adapté à la conception multiprocesseur, mais cela peut prendre beaucoup de temps, surtout lorsque les systèmes multiprocesseurs à simuler possèdent de nombreux paramètres et que ces paramètres doivent être testés avec différentes distributions de probabilités [4, 5, 6]. Il existe des études dans la littérature qui prouvent que des méthodes d’intelligence artificielle pourraient être appliquées pour prédire les mesures de performance d’une architecture multiprocesseur. Par exemple, Akay et Abasikeles [10] ont proposé une pré- diction de performances des systèmes optiques multiprocesseurs à mémoire partagée basée sur le Support Vector Regression (SVR). Plus récemment,AkayetZayidont proposé un modèle de prédiction des mesures de performances des architectures multiprocesseurs basé sur le passage de messages en utilisant les réseaux de neurones artificiels [9]. C’est pour renforcer les modèles existant et améliorer la prédiction des mesures de performance basée sur l’intelligence artifi- cielle que s’inscrit le présent travail qui a pour intitulé : Prédiction des performances d’une architecture 2D SOME-Bus avec le deep learning .

Objectifs

L’objectif de ce travail est d’utiliser les méthodes d’apprentissage profond pour la prédic- tion des performances des systèmes multiprocesseurs dans les architectures 2D SOME-Bus. De façon spécifique, il s’agira :

• d’étudier et d’implémenter différents modèles de réseaux de neurones d’apprentissage profond capables de prédire les mesures de performances d’un système multiprocesseur à partir de données statistiques ;

• de faire une étude comparative et de déduire le meilleur modèle après une étude théo- rique et empirique ;

• de comparer ces résultats à ceux obtenus dans la littérature.

Organisation du travail

La suite de ce document est organisée comme suit : le chapitre 1 fait l’état de l’art des re- cherches effectuées dans le cadre du 2D SOME-Bus et de la prédiction des mesures de perfor- mance en introduisant ce qu’est le deep learning ; le chapitre 2 présente le matériel ainsi que les choix techniques effectués que nous utilisons pour l’élaboration des modèles de prédiction ;

(17)

ensuite le chapitre 3 présente notre solution et les modèles mis en place et enfin, dans le cha- pitre 4, nous présentons les résultats obtenus après les différents tests ainsi que l’analyse de ces résultats.

(18)

Chapitre 1

Revue de littérature

Résumé.Le 2-dimensional Simultaneaous Optical Multiprocessor Exchange Bus (2D SOME-Bus) est une architecture qui s’avère intéressante pour atteindre des perfor- mances de calcul toujours plus élevées. Comme pour toute architecture multiproces- seur, il est important dans la construction d’évaluer les performances du 2D SOME- Bus. Les méthodes classiques d’évaluation des performances sont celles analytiques et celles par simulation mais elles requièrent du temps. Une alternative est l’intelli- gence artificielle et la conception de modèles de prédiction pour pallier aux insuffi- sances des autres méthodes.

Introduction

Ce chapitre fait un tour d’horizon sur les architectures multiprocesseurs en mettant l’accent sur ce qu’est le 2D SOME-Bus. Nous y présentons les différentes méthodes de prédiction des performances existantes, l’implication de l’intelligence artificielle dans ce domaine ainsi que ce qu’est l’apprentissage profond (deep learning).

1.1 Les architectures SOME-Bus

1.1.1 Les architectures multiprocesseurs

Le multitraitement (Multiprocessing) consiste à utiliser deux ou plusieurs unités centrales de traitement (processeurs) dans un même système informatique. Le terme fait également réfé- rence à la capacité d’un système à prendre en charge plusieurs processeurs et/ou à la capacité d’attribuer des tâches entre eux. Le terme « processeur » dans le multiprocesseur peut signi- fier une Unité Centrale de Traitement (UCT) ou un processeur d’entrée-sortie, en anglais Input

(19)

Output Processor (IOP). Les multiprocesseurs sont classés en fonction de l’organisation de leur mémoire. Il existe deux principaux types de système multiprocesseur : multiprocesseur à mé- moire distribuée et multiprocesseur à mémoire partagée.

1.1.1.1 Multiprocesseur à mémoire distribuée

Dans un multiprocesseur à mémoire distribuée, chaque module de mémoire est associé à un processeur, comme indiqué sur la figure 1.1. Tout processeur peut accéder directement à sa propre mémoire. Un mécanisme de passage de message est utilisé afin de permettre à un pro- cesseur d’accéder à d’autres modules de mémoire associés à d’autres processeurs (Nonuniform Memory Access (NUMA)). L’interface de passage de message est un protocole de communica- tion indépendant du langage utilisé [2].

En ce sens, l’accès à la mémoire par un processeur n’est pas uniforme car cela dépend du module de mémoire auquel le processeur tente d’accéder. C’est ce qu’on appelle un système multiprocesseur NUMA. Si le multiprocesseur à mémoire distribuée est composé de proces- seurs identiques, on dit qu’il s’agit d’un multiprocesseur symétrique. Si le multiprocesseur à mémoire distribuée est composé de processeurs hétérogènes, on dit qu’il s’agit d’un multipro- cesseur asymétrique [2].

FIGURE1.1 – Multiprocesseur à mémoire distribuée 1.1.1.2 Multiprocesseur à mémoire partagée

Les processeurs à mémoire partagée sont populaires en raison de leur modèle de program- mation simple et général, qui permet un développement simple de logiciels parallèles prenant en charge le partage de codes et de données. Un autre nom pour les processeurs de mémoire partagée est : machine à accès parallèle. La mémoire partagée ou l’espace d’adressage partagé est utilisé comme moyen de communication entre les processeurs (Uniform Memory Access (UMA)). Tous les processeurs d’une architecture à mémoire partagée peuvent accéder au même espace adresse d’une mémoire commune via un réseau d’interconnexion, comme indiqué sur la figure 1.2.

(20)

La configuration de la figure 1.3 permet gràce au réseau d’interconnexion, à plusieurs pro- cesseurs d’accéder simultanément au réseau. Le module de mémoire unique peut être rem- placer par une banque de mémoires. Cela permet à plusieurs opérations de lecture / écriture en mémoire d’avoir lieu simultanément[2]. Dans un multiprocesseur à mémoire partagée, tout processeur peut accéder à n’importe quel module de mémoire. La figure 1.3 illustre l’architec- ture multiprocesseur à mémoire partagée. Le fait d’avoir plusieurs modules de mémoire per- met à plusieurs processeurs d’accéder simultanément à plusieurs modules de mémoire. Cela augmente évidemment la bande passante de la mémoire en fonction des limitations du réseau d’interconnexion et des collisions de la mémoire. Une collision de mémoire se produit lorsque plusieurs processeurs tentent d’accéder au même module de mémoire.

FIGURE1.2 – Multiprocesseur à mémoire partagée(a)

FIGURE1.3 – Multiprocesseur à mémoire partagée(b)

(21)

1.1.1.3 Réseaux d’interconnexion

Les processeurs doivent communiquer entre eux à l’aide d’un réseau d’interconnexion. Ce réseau peut constituer un problème s’il ne peut pas prendre en charge la communication simul- tanée entre des paires de processeurs arbitraires [2].

Fournir les liens entre les processeurs revient à fournir des canaux physiques dans les té- lécommunications. La manière dont les données sont échangées doit être spécifiée. Un bus est la forme la plus simple de réseau d’interconnexion. Les principaux facteurs qui affectent les performances du réseau d’interconnexion sont les suivants :

• les liens de réseau, qui peuvent être des câbles, des réseaux sans fil, voire des canaux optiques ou des supports ;

• des commutateurs qui relient les liens entre eux ;

• le logiciel / micrologiciel de protocole utilisé pour acheminer les paquets ou les messages entre les processeurs via les commutateurs et les liaisons ;

• la topologie du réseau, qui correspond au mode de connexion des commutateurs.

Il existe plusieurs types d’architecture pour les réseaux d’interconnexion tels que ceux en bus, ceux en étoile, le crossbar, et les architectures Simultaneous Optical Multiprocessor Ex- change Bus (SOME-Bus) qui font l’objet de notre étude.

1.1.2 L’architecture 1D SOME-Bus

Le bus d’échange multiprocesseur optique simultané (en anglais Simultaneous Optical Mul- tiprocessor Exchange SOME-Bus) incorpore des dispositifs opto-électroniques dans une archi- tecture de traitement très performante. Il s’agit d’un réseau d’interconnexion à fibre optique à faible latence et à large bande passante qui connecte directement chaque nœud à tous les autres nœuds sans contention.

L’une de ses principales caractéristiques est que chacun desN nœuds possède un canal de diffusion dédié fonctionnant à 20-30 Go/s, réalisé par un groupe de longueurs d’ondes dans une fibre spécifique, et une interface de canal d’entrée basée sur un réseau de récepteurs qui surveille simultanément tous lesN canaux, résultant en un réseau pleinement connecté [3]. Le réseau de récepteurs n’a pas besoin d’effectuer de routage et, par conséquent, sa complexité matérielle (y compris le stockage du détecteur, de la logique et de la mémoire de paquets) est faible. Cette organisation élimine la nécessité d’un arbitrage global et fournit une bande passante qui évolue directement avec le nombre de nœuds du système. Aucun nœud n’est jamais empêché de transmettre par un autre émetteur ou en raison d’un conflit de logique de commutation partagée.

(22)

FIGURE1.4 – Interface optique [3]

Le SOME-Bus évite la latence de l’arbitrage, la configuration de la commutation et l’infor- mation du nœud expéditeur que la connexion est terminée. La possibilité de prendre en charge plusieurs diffusions simultanées est une caractéristique unique de SOME-Bus qui prend effica- cement en charge les mécanismes de synchronisation de la barrière distribuée à grande vitesse et les protocoles de cohérence du cache et permet le partitionnement des groupes de processus au sein du tableau récepteur.

Les messages échangés entre les nœuds contiennent un champ d’en-tête avec des informa- tions sur le type de message (données ou synchronisation), la longueur et l’adresse de destina- tion. Une fois que le signal de niveau logique est restauré à partir des données optiques, il est dirigé vers l’interface de canal d’entrée composée de deux parties : l’interface optique illustrée à la figure 1.4, qui comprend la signalisation physique, le filtrage d’adresses, le traitement des barrières, la surveillance de la longueur et le décodage de type, ainsi que l’interface du proces- seur, représentée sur la figure 1.5, qui comprend un réseau de routage et un système de mise en file d’attente. Une file d’attente est associée à chaque canal d’entrée, permettant aux messages provenant d’un nombre quelconque de processeurs d’arriver et d’être mis en mémoire tampon simultanément, jusqu’à ce que le processeur local soit prêt à les supprimer. Les messages de synchronisation sont collectés et traités au niveau du récepteur. L’arbitrage peut être requis lo- calement dans un tableau de récepteurs lorsque plusieurs files d’attente en entrée contiennent des messages.

(23)

FIGURE1.5 – Interface processeur [3]

Chaque détecteur génère un flux de bits qui est examiné pour détecter le début du paquet et l’en-tête du paquet. Le circuit de décodage d’en-tête examine le champ d’en-tête, qui com- prend des informations sur le type de message, l’adresse de destination et la longueur, afin de déterminer si le message est un message de synchronisation ou un message de données. Si le message est un message de synchronisation, il est géré par le circuit de barrière, sinon, il s’agit d’un message de données et l’adresse de destination est comparée à l’ensemble des adresses va- lides contenues dans le circuit de décodage d’adresse. En plus de reconnaître sa propre adresse individuelle, un processeur peut reconnaître des adresses de groupe de multidiffusion ainsi que des adresses de diffusion. Une fois qu’une adresse valide a été identifiée, les données sont mises en mémoire tampon et placées dans la file d’attente appropriée. Si l’adresse ne correspond pas, le message est ignoré.

(24)

FIGURE1.6 – Récepteur parallèle [3]

1.1.3 L’architecture 2D SOME-Bus

Le 2D SOME-Bus est constitué de N réseaux horizontaux etN verticaux 1D SOME-Bus et deN2 nœuds. Chaque nœud est connecté à un SOME-Bus horizontal et un SOME-Bus verti- cal. À chaque nœud, un convertisseur électro-optique composé d’une paire double récepteur et émetteur permet de transmettre et diffuser (de manière traversante) les messages diffusés sur un bus dans l’autre dimension. La figure 1.7 montre l’organisation d’un réseau à petite échelle (4 par 4). Chaque bus a un ensemble de longueurs d’onde qui forment les canaux de commu- nication des nœuds attachés à ce bus. Tous les bus utilisent les mêmes longueurs d’onde. Pour simplifier, la figure 1.7 montre une longueur d’onde par canal (marquéeα, β, γ, δ).

(25)

FIGURE1.7 – 2D SOME-Bus [11]

Si un nœudNij (connecté au bus verticalVi et au bus horizontalHj) envoie un message au nœudNmn et que i = mou j = n, alors un seul bus (respectivement vertical ou horizontal) est utilisé. L’en-tête du message comprend l’identification du nœud de destination et le message est diffusé sur le bus approprié. Sii6=metj 6=n, alors le message est d’abord diffusé sur le bus horizontalHj vers le nœudNmj avec l’en-tête contenant une indication que le nœud mj diffuse le message sur le bus verticalVm afin qu’il puisse être livré à sa destination finale, nœudNmn.

(26)

Par symétrie, le nœud source peut choisir de diffuser d’abord le message sur le bus verticalVi au nœud intermédiaireNinpour la rediffusion sur le bus horizontalHn.

La conception de l’en-tête permet de spécifier plusieurs destinations, de sorte que toutes les fonctionnalités de l’architecture puissent être exploitées. Dans la configuration la plus simple, l’en-tête du message contient une liste de destinations finales. Le message est d’abord diffusé sur le bus horizontal au niveau du nœud source et transmis à tous les nœuds requis sur ce bus horizontal. Chacun de ces nœuds examine l’en-tête pour déterminer s’il est spécifié comme destination du message et / ou s’il doit rediffuser le message sur son propre bus vertical.

FIGURE1.8 – Diagramme d’un nœud [3]

Si aucune rediffusion d’une dimension à l’autre n’est nécessaire, le fonctionnement du sys- tème est équivalent au fonctionnement du 1D SOME-Bus. Lorsqu’un message doit être redif- fusé d’une dimension à l’autre, l’architecture offre deux manières d’effectuer cette opération.

Au plus simple, un message est mis en file d’attente localement au niveau du nœud inter- médiaire. Plus tard, le message est diffusé sur l’autre dimension de la même manière que les messages générés localement sont transmis. L’inconvénient de cette méthode est que la latence est considérablement accrue en raison de la mise en file d’attente au niveau du nœud intermé-

(27)

diaire et de la retransmission. Les simulations montrent qu’il existe une forte probabilité qu’un message qui arrive à un nœud intermédiaire à partir d’une dimension trouve le transmetteur dans l’autre dimension inactif et que, par conséquent, la transmission directe du message est bénéfique [3].

Comme le montre la figure 1.7, chaque nœud a un circuit électro-optique qui permet au nœud de déterminer si un message entrant doit être contourné vers l’autre bus et de le re- transmettre, bloquant l’émetteur local pendant la durée du transfert du message entrant. La figure 1.8 montre le diagramme d’un nœud. Il existe deux ensembles de récepteurs et d’émet- teurs, l’un associé à un bus vertical et l’autre à un bus horizontal. Un routeur connecte les paires récepteur / émetteur et le processeur local. Le routeur permet au processeur d’accéder à la file d’attente dans chaque émetteur et à une file d’attente dans chaque récepteur.

1.1.4 Etat de l’art sur la prédiction des mesures de performances des archi- tectures multiprocesseurs

La performance est une considération essentielle à la fois dans la conception de nouveaux systèmes et dans le déploiement de systèmes existants. Les utilisateurs d’ordinateurs souhaitent utiliser leurs systèmes matériels et logiciels le plus efficacement possible. Au fil des ans, un domaine connu sous le nom d’évaluation des performances des ordinateurs est apparu pour résoudre le problème de la quantification et de la prévision des performances des ordinateurs.

Il existe des méthodes permettant de déterminer l’efficacité avec laquelle les ressources du sys- tème sont utilisées. Ceux-ci peuvent aider à localiser les causes probables de problèmes de performances.

Il existe de nombreux ouvrages sur l’évaluation des performances des ordinateurs en géné- ral. La plupart des traitements sur le terrain s’accordent pour dire que le travail peut être classé en deux grandes catégories : la modélisation analytique des performances et la modélisation des performances par simulation.

La modélisation analytique des performances consiste à utiliser des techniques mathéma- tiques pour résoudre des systèmes d’équations exprimant le comportement en régime per- manent de systèmes informatiques. Le modèle analytique a l’inconvénient de devenir inutile lorsque l’on prend en compte la dynamique du multiprocesseur. La modélisation par simu- lation utilise des programmes appelés simulateurs qui reflètent le comportement du système modélisé. Il est plus souple que la modélisation analytique car le modèle est représenté par un programme informatique plutôt que par un système d’équations mais présente l’inconvé- nient de prendre beaucoup de temps [4]. La réduction de ce temps constituerait un avantage important lors de la conception d’architectures multiprocesseurs.

La modélisation par simulation malgré son coût en temps est plus utilisée dans l’évaluation des performances. Pour réduire ce coût en temps, certaines études font appel à l’intelligence artificielle pour évaluer les performances des architectures multiprocesseur.

(28)

Ainsi, il existe des études dans la littérature [9, 8], qui prouvent le fait que des méthodes d’intelligence artificielle pourraient être appliquées pour prédire les mesures de performance d’une architecture multiprocesseur. Akay et Abasikeles[10], ont prédit les mesures de perfor- mance d’une architecture multiprocesseur utilisant le modèle de programmation à mémoire partagée répartie sur l’architecture 1D SOME-Bus. Dans cette étude, une simulation statistique de l’architecture a été réalisée pour générer l’ensemble de données. L’ensemble de données contenait les variables d’entrée suivantes : rapport du temps moyen de transfert du canal de message au temps moyen de traitement du thread (T / R), probabilité qu’un bloc puisse être trouvé dans l’état modifié, probabilité qu’un message de données soit dû à une écriture miss, probabilité qu’un cache soit plein et probabilité d’avoir une demande de propriété de mise à niveau. La SVR a été utilisée pour créer des modèles de prédiction permettant de prédire la latence moyenne du réseau, le temps d’attente moyen des canaux et l’utilisation moyenne du processeur. Il a été conclu que le modèle SVR est un outil prometteur pour la prévision des mesures de performance d’un multiprocesseur à mémoire partagée distribuée.

Dans un travail ultérieur Zayid et al. [9] ont, avec un réseau de neurones artificiels à rétro- action en anglais Multi-layer Feed Forward Neural Network (MFANN) prédit les mesures de performance de l’architecture 1D SOME-Bus utilisant le modèle de programmation de passage de messages. OPNET Modeler [20] a été utilisé pour simuler statistiquement le message en passant par l’architecture 1D SOME-Bus. Les variables d’entrée du modèle de prédiction com- prenaient T / R, le numéro de nœud, le numéro de fil et le modèle de trafic. Les variables de sortie du modèle de prévision comprenaient le temps d’attente moyen des canaux, l’utilisation moyenne des canaux, la latence moyenne du réseau, l’utilisation moyenne du processeur et le temps d’attente moyen des entrées. Il a été conclu que le modèle de prévision basé sur MFANN était le meilleur pour prévoir les mesures de performance de l’architecture SOME-Bus à passage de messages.

De la même manière,Akay et al.[11] utilisent SVR, MFANN et la régression linéaire multiple pour prédire les mesures de performance de l’architecture multiprocesseur 2D SOME-Bus à l’aide du modèle de programmation de passage de messages. OPNET Modeler a été utilisé pour simuler le message en passant l’architecture multiprocesseur 2D SOME-Bus et pour créer les jeux de données de formation et de test. L’ensemble de données obtenu comporte cinq variables d’entrée (T/R, numéro de nœud, nombre de threads, distribution spatiale du trafic et mode de trafic) et cinq variables de sortie (utilisation moyenne du canal, temps d’attente moyen du canal, latence moyenne du réseau, utilisation moyenne du processeur et temps d’attente moyen des entrées).

Dans ce document, des réseaux de neurones issus de l’apprentissage profond (deep lear- ning) ont été utilisés pour prédire les mesures de performance de l’architecture multiprocesseur 2D SOME-Bus à l’aide du modèle de programmation par transmission de messages. Nous uti- lisons le même ensemble de données que [11] dans leur étude. En utilisant la validation croisée par 10, les performances des modèles de prédiction comme dans [11] sont évaluées en calculant

(29)

leurs coefficients de corrélation multiples (Multiple correlation coefficient (R)), leurs erreurs moyennes quadratiques (Root Mean Square Error (RMSE)), leurs erreurs absolues moyennes (Mean Absolute Error (MAE)), leurs erreurs absolues relatives (Root Absolute Error (RAE)) et les erreurs quadratiques relatives (Relative Root Square Error (RRSE)). Les résultats montrent que notre modèle présente l’erreur de prédiction la plus faible.

1.2 Le deep learning (apprentissage profond)

1.2.1 Généralités

L’apprentissage automatique (machine learning) est l’intersection entre l’informatique théo- rique et des données brutes. En gros, il s’agit de donner du sens aux données des machines, de la même manière que les humains le font[15]. L’apprentissage automatique est un type d’in- telligence artificielle par lequel un algorithme ou une méthode extrait des motifs à partir de données. L’apprentissage automatique résout quelques problèmes généraux :

• apprentissage supervisé : ici, on dispose d’un ensemble d’objets et pour chaque objet d’une valeur cible associée ; le modèle doit être capable de prédire la bonne valeur cible pour un nouvel objet. On distingue les problèmes de régression des problèmes de classi- fication. Ainsi, on considère que les problèmes de prédiction d’une variable quantitative sont des problèmes de régression (dont relève notre travail) tandis que les problèmes de prédiction d’une variable qualitative sont des problèmes de classification ;

• apprentissage non supervisé : ici, on dispose d’un ensemble d’objets sans aucune valeur cible associée ; le modèle doit être capable d’extraire les régularités présentes au sein des objets pour mieux visualiser ou appréhender la structure de l’ensemble des données ;

• apprentissage par renforcement : ici, on dispose d’un ensemble de séquences de déci- sions dans un environnement dynamique, et pour chaque action de chaque séquence une valeur de récompense (la valeur de récompense de la séquence est alors la somme des valeurs des récompenses des actions qu’elle met en œuvre) ; il faut un modèle capable de prédire la meilleure décision à prendre pour un état donné de l’environnement.

Le deep learning ou apprentissage profond est un sous-domaine de l’apprentissage automa- tique qui concerne les algorithmes inspirés de la structure et de la fonction du cerveau, appelés réseaux de neurones artificiels. Les réseaux de neurones constituent donc un type de modèle d’apprentissage automatique ; ils existent depuis au moins 50 ans. L’unité fondamentale d’un réseau de neurones est un nœud (neurone), basé vaguement sur le neurone biologique du cer- veau des mammifères. Les connexions entre neurones sont également modélisées sur le cerveau biologique, de même que la manière dont ces connexions se développent dans le temps (avec « entraînement »).

(30)

1.2.2 Le neurone

1.2.2.1 Le neurone biologique

Le neurone biologique (voir figure 1.9) est une cellule nerveuse qui constitue l’unité fonc- tionnelle fondamentale du système nerveux de tous les animaux. Les neurones existent pour communiquer les uns avec les autres et transmettre des impulsions électrochimiques à travers les synapses, d’une cellule à l’autre, à condition que l’impulsion soit suffisamment puissante pour activer la libération de produits chimiques à travers une fente synaptique. La force de l’impulsion doit dépasser un seuil minimal, sinon les produits chimiques ne seront pas libé- rés. La figure présente les principales parties de la cellule nerveuse : le soma, les dendrites, les axones et les synapses.

FIGURE1.9 – Neurone biologique [14]

Le neurone est constitué d’une cellule nerveuse constituée d’un soma (corps cellulaire) et de plusieurs dendrites mais un seul axone. L’axone unique peut cependant se ramifier des cen- taines de fois. Les dendrites sont des structures minces issues du corps cellulaire principal. Les axones sont des fibres nerveuses ayant une extension cellulaire particulière qui provient du corps de la cellule.

Les synapses

Les synapses sont la jonction de connexion entre axone et dendrites. La majorité des sy- napses envoient des signaux de l’axone d’un neurone à la dendrite d’un autre neurone.

(31)

Les dendrites

Les dendrites ont des fibres qui sortent du soma dans un réseau touffu autour de la cellule nerveuse. Les dendrites permettent à la cellule de recevoir des signaux de neurones voisins connectés et chaque dendrite peut effectuer une multiplication par la valeur du poids de cette dendrite. Par multiplication, on entend une augmentation ou une diminution du rapport neu- rotransmetteur synaptique aux signaux chimiques introduits dans la dendrite.

Les axones

Les axones sont les fibres simples et longues qui s’étendent à partir du soma principal. Ils s’étendent sur des distances plus longues que les dendrites et mesurent généralement 1 centi- mètre de long (100 fois le diamètre du soma). Finalement, l’axone se ramifiera et se connectera à d’autres dendrites. Les neurones sont capables d’envoyer des impulsions électrochimiques par le biais de changements de tension inter-membrane générant un potentiel d’action. Ce signal se déplace le long de l’axone de la cellule et active les connexions synaptiques avec d’autres neurones.

Flux d’informations à travers le neurone biologique

Les synapses qui augmentent le potentiel sont considérées comme excitatrices, et celles qui le diminuent sont considérées comme inhibitrices. La plasticité fait référence aux changements à long terme de la force des connexions en réponse au stimulus d’entrée. Les neurones se sont également avérés former de nouvelles connexions au fil du temps et même migrer. Ces méca- nismes combinés au changement de connexion dirigent le processus d’apprentissage dans le cerveau biologique.

Le neurone artificiel à partir du neurone biologique

Il a été démontré que le cerveau de l’animal est responsable des composants fondamentaux de l’esprit. Nous pouvons étudier les composants de base du cerveau et les comprendre. La recherche a montré des moyens de cartographier les fonctionnalités du cerveau et de suivre les signaux lorsqu’ils se déplacent dans les neurones. Cela a permis la conception d’éléments artificiels imitant le comportement des neurones biologiques.

1.2.2.2 Le perceptron

Le perceptron a été inventé en 1957 par le laboratoire aéronautique Cornell de Frank Rosen- blatt.

Le perceptron est un classificateur binaire à modèle linéaire avec une simple relation entrée /

(32)

sortie, comme illustré à la figure 1.10, qui montre que nous additionnons n entrées multipliés par les poids qui leur sont associés, puis que nous envoyons cette «entrée nette» à une fonction d’activation avec un seuil défini. Généralement avec les perceptrons, il s’agit d’une fonction échelon unité (Heaviside) avec une valeur seuil de 0,5. Cette fonction génère une valeur binaire unique à valeur réelle (0 ou 1), en fonction de l’entrée.

FIGURE1.10 – Perceptron [15]

La sortie de la fonction échelon unité (fonction d’activation) est la sortie du perceptron et elle nous donne une classification des valeurs d’entrée. Si la valeur du biais est négative, la somme des poids appris devient une valeur beaucoup plus grande pour obtenir une sortie de classification de 1.

1.2.2.3 Le neurone artificiel

Le neurone artificiel est similaire à son prédécesseur, le perceptron, mais il ajoute de la flexi- bilité dans le type de couche d’activation qui peut être utilisé. La figure 1.11 présente un dia- gramme mis à jour du neurone artificiel basé sur le perceptron.

(33)

FIGURE1.11 – Neurone artificiel [15]

Ce diagramme est similaire à la figure 1.10 pour le perceptron monocouche, mais nous re- marquons une fonction d’activation plus généralisée.

L’entrée nette dans la fonction d’activation reste le produit scalaire des poids et des caracté- ristiques d’entrée, mais la fonction d’activation flexible nous permet de créer différents types à partir de valeurs de sortie. C’est un contraste majeur avec la conception antérieure du per- ceptron qui utilisait une fonction échelon (Heaviside) linéaire par morceaux, cette amélioration permettant désormais au neurone artificiel d’exprimer une sortie d’activation plus complexe.

Les neurones artificiels peuvent être définis par le type d’entrée qu’ils sont capables de recevoir (binaire ou continue) et par le type de transformation (fonction d’activation) qu’ils utilisent pour produire une sortie.

Différents éléments caractérisent un neurone à savoir : Poids de connexion

Les poids sur les connexions dans un réseau de neurones sont des cœfficients qui modifient (amplifient ou minimisent) le signal entrant dans un neurone donné du réseau. Dans les repré- sentations communes des réseaux de neurones, il s’agit des lignes / flèches allant d’un point à l’autre, des arêtes du graphe mathématique. Souvent, les connexions sont notées comme w dans les représentations mathématiques des réseaux de neurones.

Les biais

Les biais sont des valeurs scalaires ajoutées à l’entrée pour garantir qu’au moins quelques nœuds par couche soient activés, quelle que soit la puissance du signal. Les biais permettent l’apprentissage en donnant au réseau une action en cas de faible signal. Ils permettent au réseau d’essayer de nouvelles interprétations ou comportements. Les biais sont généralement notésb

(34)

et, comme les poids, ils sont modifiés tout au long du processus d’apprentissage.

Fonctions d’activation

Les fonctions qui régissent le comportement du neurone artificiel sont appelées fonctions d’activation. Voici quelques fonctions d’activation dont les détails sont fournis à l’annexe A :

• la fonction linéaire ;

• la fonction sigmoïde ;

• la fonction tangente hyperbolique ;

• fonction linéaire rectifiée ;

• la fonction softmax.

1.2.3 Les réseaux de neurones

Un réseau de neurones artificiels est une tentative de simulation du réseau de neurones constituant le cerveau humain, de sorte que l’ordinateur puisse apprendre des choses et prendre des décisions de manière humaine. Les réseaux de neurones artificiels sont créés en program- mant des ordinateurs ordinaires pour qu’ils se comportent comme des cellules cérébrales inter- connectées. Dans un réseau de neurones artificiels, nous avons des neurones artificiels disposés en groupes appelés couches comme suit :

• une couche d’entrée ;

• une ou plusieurs couches cachées, entièrement connectées ;

• une seule couche de sortie.

Comme le montre la figure 1.12, les neurones de chaque couche (représentés par les cercles) sont entièrement connectés à tous les neurones de toutes les couches adjacentes. Les neurones de chaque couche utilisent tous le même type de fonction d’activation (la plupart du temps).

Pour la couche d’entrée, l’entrée est l’entrée vectorielle brute. L’entrée des neurones des autres couches est la sortie (activation) des neurones de la couche précédente.

(35)

Entrée #1 Entrée #2 Entrée #3 Entrée #4

Sortie Couche

cachée Couche

d’entrée

Couche de sortie

FIGURE1.12 – Réseau de neurones artificiels

Couche d’entrée

Cette couche réceptionne les données d’entrée (vecteurs) introduites dans notre réseau. Le nombre de neurones dans une couche d’entrée est généralement le même nombre que l’entité d’entrée sur le réseau. Les couches en entrée sont suivies d’une ou de plusieurs couches cachées.

Couche cachée

Il existe une ou plusieurs couches cachées dans un réseau de neurones. Les valeurs de poids sur les connexions entre les couches indiquent comment les réseaux de neurones codent les in- formations acquises et extraites des données brutes d’apprentissage. Les couches cachées sont la clé pour permettre aux réseaux de neurones de modéliser des fonctions non linéaires.

Couche de sortie

Nous obtenons la réponse ou la prédiction de notre modèle à partir de la couche de sortie.

Étant donné que nous mappons un espace d’entrée vers un espace de sortie avec le modèle de réseau neuronal, la couche de sortie nous fournit une sortie basée sur l’entrée de la couche d’entrée. Selon la configuration du réseau de neurones, la sortie finale peut être une sortie à valeur réelle (régression) ou un ensemble de probabilités (classification). Ceci est contrôlé par le type de fonction d’activation que nous utilisons sur les neurones de la couche de sortie. La couche de sortie utilise généralement une fonction d’activation sigmoïde pour la classification.

(36)

Connexions entre les couches

Dans un réseau entièrement connecté, les connexions entre les couches sont les connexions sortant de tous les neurones de la couche précédente à tous les neurones de la couche suivante.

Nous modifions ces poids progressivement au fur et à mesure que notre algorithme trouve la meilleure solution possible avec l’algorithme d’apprentissage de la rétro-propagation. Les poids peuvent être compris mathématiquement en les considérant comme le vecteur de para- mètre dans la section précédente sur l’algèbre linéaire, décrivant le processus d’apprentissage automatique comme une optimisation du vecteur de paramètre (par exemple, les «pondéra- tions» ici) afin de minimiser les erreurs.

1.2.4 L’apprentissage

Un réseau neuronal artificiel bien entraîné a des poids qui amplifient le signal et atténuent le bruit. Un poids plus important signifie une corrélation plus étroite entre un signal et le résultat du réseau. Les entrées associées à des poids élevés affecteront davantage l’interprétation des données par le réseau que les entrées associées à des poids plus faibles.

Le processus d’apprentissage pour tout algorithme d’apprentissage utilisant des poids est le processus de réajustement des poids et des biais, en rendant certains plus petits et d’autres plus grands, attribuant ainsi une signification à certaines informations et en minimisant d’autres.

Cela aide notre modèle à déterminer quelles variables de prédiction (ou caractéristiques) sont liées à quels résultats et ajuste les poids et les biais en conséquence.

Dans la plupart des ensembles de données, certaines caractéristiques sont fortement corré- lées avec certaines étiquettes (par exemple, la superficie en pieds carrés correspond au prix de vente d’une maison). Les réseaux de neurones apprennent aveuglément ces relations en faisant une supposition basée sur les entrées et les poids, puis en mesurant la précision des résultats.

Les fonctions de perte dans les algorithmes d’optimisation, tels que la descente de gradient sto- chastique (Stochastic Gradient Descent (SGD)), récompensent le réseau pour les bonnes sup- positions et le pénalisent pour les mauvaises. SGD déplace les paramètres du réseau vers de bonnes prévisions et s’éloigne des mauvaises.

Conclusion

Tout au long de ce chapitre nous avons abordé les notions liées aux architectures multipro- cesseur ainsi qu’au 2D SOME-Bus. Nous avons exposé les différentes méthodes utilisées gé- néralement pour prédire les performances des architectures multiprocesseurs ainsi que celles basées sur l’intelligence artificielle qui peuvent présenter un avantage par rapport aux autres du fait de leur faible coût en temps. Pour finir, nous avons présenté ce que c’est que l’appren- tissage profond avec les techniques qui lui sont relatives.

(37)

Chapitre 2

Matériel et choix techniques

Résumé. Pour concevoir les modèles de prédictions des mesures de performance du 2D SOME-Bus, il est nécessaire de disposer de données. Les différentes variables de prédictions de l’ensemble de données sont importantes dans la conception des modèles. Aussi, faut il choisir efficacement les outils pour les exploiter.

Introduction

Ce chapitre fait la synthèse des différents outils aussi bien matériels que logiciels que nous avons eu à utiliser tout au long de notre étude. Nous y présentons aussi les différents choix techniques que nous avons eu à faire pour mener à bien ce travail.

2.1 Matériel

Pour mener à bien les expérimentations, nous avons eu à utiliser des éléments aussi bien matériel que logiciel que nous détaillons dans la suite.

2.1.1 L’ensemble de données

Pour nos expérimentations nous utilisons l’ensemble de donnéesOptical Interconnection Net- work Data Set. Disponible depuis l’UCI Machine Learning Repository [21] c’est aussi celui utilisé parAkay et al.[11] dans leurs travaux. Cet ensemble a été généré avec OPNET Modeler comme environnement de simulation et contient 640 échantillons de données. Il contient des infor- mations comme la distribution temporelle et la distribution spatiale du trafic dans le bus. La conception des architectures de réseau nécessite des mécanismes permettant de prédire avec précision l’utilisation du réseau à l’avance, au lieu de concevoir ou de fabriquer le réseau et

(38)

d’évaluer ensuite ses performances. Afin de répondre à cette exigence, les architectes utilisent divers modèles de trafic pour déterminer et quantifier l’impact des paramètres critiques sur le réseau sous-jacent. Plus précisément, un modèle de trafic est un graphe décrivant à la fois la distribution spatiale et temporelle du trafic réseau (communication de données et de signaux entre les nœuds).

Une distribution temporelle détermine comment un nœud individuel génère du trafic dans le temps et comment ce trafic se propage dans le réseau. Dans la simulation faite pour obte- nir l’ensemble de données les modes de trafic synchrone et asynchrone sont utilisés. Le mode synchrone implique un client qui attend que le serveur réponde à un message. Les messages peuvent circuler dans les deux sens. Cela signifie essentiellement que le mode de trafic syn- chrone est une communication à double sens. En d’autres termes, le nœud expéditeur envoie un message au nœud destinataire et celui doit y répondre. L’expéditeur n’enverra pas d’autres messages tant qu’il n’aura pas reçu de réponse du destinataire. Dans l’ensemble de données il est appelé mode client-serveur. Le mode asynchrone implique un client qui n’attend pas un message du serveur. Un événement est utilisé pour déclencher un message d’un serveur. Ainsi, même si le client est en panne, la communication se terminera avec succès. Le mode asyn- chrone signifie que la communication est à sens unique et que le flux de communication est à sens unique.

La distribution spatiale du trafic est le modèle selon lequel la destination est sélectionnée [16, 17, 18]. Dans les simulations, un ensemble de distributions spatiales bien connues a été utilisé : bits inversés (Bit Reverse, BR), mélange parfait (Perfect Shuffle, PS), région uniforme (Uniform Region, UN) et région chaude (Hot Region, HR). Les permutations de bits telles que les bits inverses et les mélanges parfaits sont celles dans lesquelles chaque bitdide l’adresse de destination b-bit est fonction du bit de l’adresse source [18]. Un modèle de trafic uniforme peut être représenté par une matrice de trafic, où chaque élément de la matriceλs,ddonne la fraction de trafic envoyée par le nœudsen destination du nœudd. Dans le trafic uniforme, le nœud de destination est sélectionné à l’aide d’une distribution uniforme dont la moyenne est comprise entre 1 etN. Dans le modèle de région chaude, les destinations des 25% de paquets sont choisies de manière aléatoire dans une petite région chaude constituée de 12,5% des nœuds[18, 19].

Le tableau 2.1 liste la sélection du nœud de destination pour ces modèles de trafic :

TABLEAU2.1 – Statistiques descriptives des variables prédictives

Nom Modèle

Uniforme λs,d = N1

Inversion de bits di =bi+1

Mélange parfait di =si−1modb

Région chaude Les 25% des paquets sont envoyés à 12,5% du groupe de nœuds

(39)

D’autres variables de prédictions sont le rapport T/R du temps de transfert par le temps de traitement. Le temps de traitement (R) est supposé être distribué de manière exponentielle avec une moyenne de 100 cycles d’horloge. Le temps de transfert de message (T) est supposé être uniformément réparti avec une moyenne comprise entre 5 et 100 cycles d’horloge. Les autres paramètres de la simulation sont le nombre de nœuds dans le système (16 et 64) et le nombre initial de threads exécutés par chaque processeur (4, 6, 8 et 10).

TABLEAU2.2 – Statistiques descriptives des variables prédictives Variables prédictives Min. Max. Moyenne Ecart type

T/R 0.10 1 0.55 0.29

Nombre de nœuds 16 64 40 24.02

Nombre de thread 4 10 7 2.24

Distribution spatiale 1 4 2.50 1.12

Distribution temporelle 1 2 1.50 0.50

Les sorties de la simulation sont l’utilisation moyenne du canal (pourcentage du temps d’oc- cupation du canal du serveur), le temps moyen d’attente du canal (c’est-à-dire le temps d’at- tente moyen d’un paquet dans la file d’attente du canal jusqu’à ce qu’il soit transmis sur la liaison), la latence moyenne du réseau (c’est-à-dire le temps entre le moment où un message de requête est mis en file d’attente sur le canal de sortie et le moment où le message de don- nées correspondant est reçu dans la file d’attente d’entrée), l’utilisation moyenne du processeur (c’est-à-dire le pourcentage de temps pendant lequel les threads sont exécutés par un proces- seur) et le temps d’attente moyen des entrées (c’est-à-dire le temps d’attente d’un paquet dans la file d’attente d’entrée jusqu’à ce qu’il soit traité par le processeur).

TABLEAU2.3 – Statistiques descriptives des mesures de performance Mesures de performances Min. Max. Moyenne Ecart type Utilisation moyenne du canal 0.14 0.99 0.72 0.20 Temps moyen d’attente du canal 0.95 1627.33 377.46 381.98

Latence moyenne du réseau 18.98 6065.74 1529.87 1191.29 Utilisation moyenne du processeur 0.20 0.99 0.65 0.20 Temps d’attente moyen des entrées 33.04 892.85 333.25 233.72

Les tableaux 2.2 et 2.3 donnent respectivement les statistiques descriptives des variables prédictives et des mesures de performance, respectivement.

(40)

2.1.2 Hardware

Les expériences et les tests ont été effectués sur un ordinateur dont les caractéristiques sont les suivantes :

Système d’exploitation :Ubuntu 18.04 LTS [22]

Architecture :64 bits

Processeur :Intel® Core™ i7-7700HQ CPU @ 2.80GHz x 8

Mémoire RAM :8.00 Go

2.2 Choix techniques

Pour notre étude, nous avons été confrontés à des choix quant au langage de programma- tion et aux différentes librairies à utiliser. En effet il existe plusieurs langages de programmation et bon nombre d’entre eux sont mis à jour avec l’ajout des supports sur l’apprentissage auto- matique. Il est donc important de choisir judicieusement le langage à utiliser.

Parmi cette multitude de langages, il existe quatre qui se démarquent de par leur nombre d’utilisateurs, leur efficacité et les différentes fonctionnalités qu’ils offrent :

1. MATLAB (matrix laboratory) : c’est un environnement informatique numérique multi- paradigmes. MATLAB, langage de programmation propriétaire développé par MathWorks, permet des manipulations matricielles, le traçage de fonctions et de données, la mise en œuvre d’algorithmes, la création d’interfaces utilisateur et l’interfaçage avec des pro- grammes écrits dans d’autres langages, notamment C, C ++, C#, Java, Fortran et Python.

Avantages:

• plate-forme mathématique et informatique la plus rapide, en particulier pour les opé- rations vectorisées / algèbre à matrice linéaire ;

• très courts scripts en considérant la forte intégration de tous les paquets ;

• meilleure visualisation des figures et des graphiques interactifs ;

• bien testé et supporté car c’est un produit commercial.

Inconvénients:

• impossible d’exécuter les scripts de façon autonome - ils doivent être traduits dans un autre langage ;

• prix d’acquisition de licence élevé ;

(41)

• mauvaise intégration avec d’autres langages ;

• mauvaise performance pour les boucles itératives.

2. Python: c’est un langage de programmation de haut niveau, interprété et utilisé pour la programmation à usage général. Créé par Guido van Rossum et publié pour la première fois en 1991, Python repose sur une philosophie de conception qui met l’accent sur la lisi- bilité du code, en utilisant notamment des espaces significatifs. Il fournit des constructions permettant une programmation claire à petite et grande échelle.

Avantages:

• idéal pour la programmation générale et le développement d’applications ;

• beaucoup de paquets Open Source (Pandas, Numpy, Scipy) ;

• peut être un langage utilisé pour connecter d’autres langages : R, C ++ et autres (python) ;

• La vitesse générale la plus élevée, en particulier dans les boucles itératives.

Inconvénients:

• erreurs silencieuses pouvant être très longues à retrouver (même avec les débogueurs visuels / IDE) ;

• plus de code requis pour les mêmes opérations que R ou MATLAB ;

• certains paquets ne sont pas compatibles avec d’autres ou contiennent des chevau- chements.

3. R: c’est un langage et un environnement pour l’informatique statistique et les graphiques.

Il s’agit d’un projet GNU similaire au langage et environnement S développé par John Chambers et ses collègues aux laboratoires Bell (anciennement AT&T, maintenant Lucent Technologies). R peut être considéré comme une implémentation différente de S. Il existe quelques différences importantes, mais une grande partie du code écrit pour S fonctionne sans modification sous R.

Avantages:

• vitesse de développement rapide (60% de lignes en moins par rapport au python, environ 500% de moins que C) ;

• beaucoup de paquets Open Source ;

• peut s’intégrer dans du C++/C avec rcpp ;

• plus grande communauté.

(42)

Inconvénients:

• lent par rapport à Python en particulier dans les boucles itératives et les fonctions non vectorisées ;

• mauvais tracé de figure par rapport à Python et des difficultés à mettre en œuvre des graphiques interactifs ;

• capacités limitées pour créer des applications autonomes.

4. Octave : Octave est en quelque sorte la réponse de GNU au langage commercial MAT- LAB. Il s’agit d’un langage de manipulation de matrice et sa syntaxe est compatible à en- viron 95% avec MATLAB. C’est un langage conçu par les ingénieurs, et donc très chargé en routines couramment utilisées par ces derniers. Il comporte de nombreuses routines d’analyse de séries chronologiques, de statistiques, de commandes de fichiers et de com- mandes de traçage du langage MATLAB.

Avantages:

• beaucoup de paquets et tant qu’un programme ne nécessite pas de sortie graphique, il y a de bonnes chances qu’il s’exécute sous Octave comme sous Matlab sans de considérables modifications ;

• Octave utilise GNU Plot ou JHandles en tant que progiciels graphiques, ce dernier étant en quelque sorte plus proche de ce que fournit Matlab.

Inconvénients:

• juste une version libre et gratuite de MATLAB qui n’apporte pas beaucoup de nou- veautés.

De même une étude menée par KDNuggets [28] auprès de ses utilisateurs sur les outils les plus utilisés dans les sciences de données entre 2016 et 2018 a donné les résultats présentés dans la figure 2.1.

(43)

FIGURE2.1 – KDnuggets Analytics / Data Science 2018. Sondage sur les logiciels : les principaux outils en 2018 et leur part dans les sondages 2016-7 [28]

La figure 2.1 nous montre ainsi que depuis 2017, Python avec ses différents avantages est l’outil le plus utilisé pour le Machine Learning à la vue des différentes possibilités qu’il offre.

Notre choix après ces différentes analyses s’est donc porté sur lui en tant qu’outil principal pour mener à bien notre étude.

En outre, il existe plusieurs distributions, paquets et modules conçus pour Python facilitant l’utilisation des concepts clés de l’apprentissage automatique. Listés sur la figure 2.1, ils se sont avérés importants dans notre étude. Il s’agit de :

Anaconda[24] : c’est une distribution libre et gratuite des langages de programmation Py- thon et R ainsi que de nombreux autres outils tels que spyder (un environnement de déve- loppement intégré abrégé EDI en français pour écrire du code en python), matplotlib (pour visualiser des données à travers les courbes) pour les applications liées à la science des données et à l’apprentissage automatique (traitement de données à grande échelle, analyse prédictive, calcul scientifique). Il vise à simplifier la gestion et le déploiement d’applications relatives à cette dernière.

Tensorflow[25] : est un framework de programmation pour le calcul numérique qui a été rendu Open Source par Google en Novembre 2015. TensorFlow n’a cessé de gagner en popula- rité, pour devenir très rapidement l’un des frameworks les plus utilisés pour le deep learning et donc les réseaux de neurones. Son nom est notamment inspiré du fait que les opérations courantes sur des réseaux de neurones sont principalement faites via des tables de données multi-dimensionnelles, appelées Tenseurs (Tensor). Un Tenseur à deux dimensions est l’équi-

Références

Documents relatifs

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

- Medium Access Control, MAC : détermine l’ordre et les délais des accès au support de communication, le fonctionnement de ce niveau est critique pour les applications

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

tratives parmi les autorités visées à l’article 14, § 1 er , des lois coordonnées sur le Conseil d’Etat est consécutif à l’observation faite avec raison par la section

• – Dans un délai de 2 mois après la notification, possibilité de recours gracieux, hiérarchique. • – Dans un délai de 2 mois ou 2 mois après la réponse

Dans ce travail, nous étudions l’utilisation des réseaux de neurones artificiels pour l’identification de systèmes dynamiques. Nous nous concentrons sur la représentation

Laurent Saint-André, Gael Sola, Matieu Henry, Nicolas Picard. Utilisation des modèles et prédiction... Formation aux Equations Allométriques, Dec 2013, Brazzaville,