Vous êtes sur la page 1sur 7

1

Amélioration des résultats et du temps de calcul


pour l’algorithme PSO
Imane ATIGUI, Youssef LAIDOUNI, Chaimae RIBI, Ayoub TOUCHANI

Résumé—Le projet de recherche présenté dans ce rapport


a pour objectif le développement d’un modèle parallèle de la
méthode PSO (Particle Swarm Optimization). La PSO est une
technique d’optimisation stochastique qui exploite un groupe
de particules pour explorer l’espace de recherche en vue de
trouver la meilleure solution à un problème donné. L’exploitation
de la parallélisation se révèle particulièrement efficace pour
accélérer les calculs effectués par la PSO. En effet, de nombreuses
étapes du processus d’optimisation peuvent être effectuées en
parallèle, notamment la génération des particules, le calcul de
leur adéquation (fitness) et la mise à jour de leurs positions.
Le modèle parallèle conçu dans le cadre de ce projet se base sur
l’utilisation de GPU (unités de traitement graphique). Les GPU
sont des processeurs spécialisés dans le traitement parallèle, ce
qui les rend particulièrement adaptés à l’exécution de la PSO.
F IGURE 1. Loi de Moore sur le nombre de transistors par microprocesseur
Les résultats des expériences menées sur quatre fonctions
d’optimisation courantes indiquent que le modèle parallèle dé-
veloppé permet d’atteindre des améliorations de performance
1) Contexte: L’algorithme PSO est un algorithme d’opti-
significatives par rapport à une mise en œuvre séquentielle sur misation stochastique, ce qui signifie qu’il ne garantit pas
CPU. Avec une population de 100 particules et une dimension de trouver la solution optimale. Cependant, il a été utilisé
de 100, le modèle parallèle permet d’obtenir une accélération avec succès pour résoudre un large éventail de problèmes
d’ordre de 100 fois. d’optimisation, tels que la planification des ressources, la
Index Terms—Compute Unified Device Architecture (CUDA),
conception de produits et le routage des réseaux.
Particle Swarm Optimization (PSO), parallel programming, Gra- L’algorithme PSO est généralement mis en œuvre en exécu-
phic Processing Unit (GPU), Unités centrales de traitement (CPU) tant le processus de recherche stochastique de manière itéra-
tive. Cela nécessite un grand nombre de mises à jour de l’état
des particules et d’évaluations de la fonction cible. Cette nature
gourmande en calcul pose un problème pour les applications
en temps réel dans des environnements dynamiques.
2) Objectifs: L’objectif de ce projet est de développer une
implémentation parallèle de l’algorithme PSO. Cette implé-
I. I NTRODUCTION
mentation doit être efficace et scalable, c’est-à-dire capable
de s’exécuter sur un nombre croissant de processeurs.
3) Méthodologie: La parallélisation de la PSO sera réalisée
L’informatique est un secteur industriel prédominant dans en découpant les opérations suivantes :
notre monde actuel. Depuis les années 1970, il est soumis à des La génération des particules Le calcul de la fitness des
pressions constantes d’améliorations, notamment en termes de particules La mise à jour des positions des particules Les
puissance de calcul. La loi de Moore prédit que le nombre différentes opérations seront parallélisées en utilisant les méca-
de transistors présents sur un microprocesseur double tous nismes de parallélisation proposés par la bibliothèque CUDA.
les deux ans. Cependant, cette loi commence à atteindre ses 4) Résultats attendus: La parallélisation est une approche
limites physiques. prometteuse pour améliorer la puissance de calcul de l’algo-
Une des approches pour continuer d’augmenter la puissance rithme PSO. Les résultats de ce projet permettront de valider
de calcul est la parallélisation. Il s’agit de découper les l’efficacité de cette approche et de la rendre disponible à
opérations de façon égale pour qu’elles soient exécutées sur d’autres chercheurs et développeurs.
plusieurs ordinateurs/processeurs en même temps. II. P ROGRAMMATION GPU AVEC CUDA
Dans ce projet, nous nous intéressons à la parallélisation de La programmation GPU est une technique qui permet d’exé-
l’algorithme PSO (Particle Swarm Optimization). La PSO est cuter des calculs parallèles sur des processeurs graphiques
une méthode d’optimisation qui utilise un essaim de particules (GPU). Cette approche offre des performances significative-
pour explorer l’espace de recherche d’une solution optimale à ment supérieures à la programmation traditionnelle sur pro-
un problème. cesseurs centraux (CPU), ce qui la rend idéale pour un large
2

éventail d’applications, notamment le traitement d’images, et Eberhart en 1995. Il s’inspire du comportement des nuées
l’apprentissage automatique et l’intelligence artificielle. d’oiseaux, qui se déplacent collectivement vers une source de
La technologie CUDA, développée par Nvidia, est l’une des nourriture.
solutions les plus populaires pour la programmation GPU. Elle Dans la version séquentielle de l’algorithme PSO, les par-
permet aux développeurs de créer des programmes en C qui ticules sont mises à jour une à la fois, dans l’ordre défini par
peuvent être exécutés sur des GPU Nvidia. un itérateur. À chaque itération, la vitesse et la position de
Pour utiliser CUDA, les développeurs doivent d’abord chaque particule sont mises à jour en fonction de sa meilleure
installer le SDK CUDA. Ce SDK fournit les outils et les position connue (pbest) et de la meilleure position connue du
bibliothèques nécessaires pour créer des programmes GPU. groupe (gbest).
Une fois le SDK CUDA installé, les développeurs peuvent
commencer à créer leurs programmes GPU. Pour ce faire,
ils doivent utiliser les instructions CUDA pour spécifier les
opérations à exécuter en parallèle sur les GPU.
Les instructions CUDA sont basées sur le modèle d’ins-
tructions unique, données multiples (SIMD). Ce modèle per-
met d’exécuter la même opération sur plusieurs éléments de
données en même temps.
La programmation GPU avec CUDA peut être complexe,
mais elle offre des performances significativement supérieures
à la programmation traditionnelle sur CPU. Cette approche est
donc idéale pour les applications qui nécessitent un traitement
parallèle intensif.
Le problème principal auquel on peut s’attendre en termes
de gain de performance est lié à la partie non parallélisable.
En effet, si la moitié du programme (moitié en termes de
temps) est parallélisable est l’autre non, on ne pourra jamais
accélérer plus de deux fois le programme quel que soit le
nombre de coeurs dédiés au processus. Même avec un nombre
de processeurs mis en parallèle qui tend vers l’infini, on aura
une partie parallèle qui prendra un temps d’exécution qui
tend vers 0 et une partie non-parallèle inchangée, donc un
programme accéléré par deux seulement. Ceci est modélisé
par la loi d’Amdahl.

F IGURE 2. représentation de la loi d’Amdahl

III. O PTIMISATION PAR ESSAIM DE PARTICULES (PSO)


A. Aperçu de la version séquentielle de PSO
L’algorithme PSO (Particle Swarm Optimization) est un al-
gorithme d’optimisation global qui a été introduit par Kennedy F IGURE 3. Processus de l’algorithme PSO sequentielle
3

Le processus de l’algorithme PSO se déroule en cinq


étapes :

Initialisation des particules À l’initialisation, chaque parti-


cule est positionnée aléatoirement dans l’espace de recherche.
Ses paramètres pbest et gbest sont initialisés à sa position
actuelle.

Mise à jour de la vitesse et de la position À chaque itération,


la vitesse et la position de chaque particule sont mises à jour
en fonction des équations ci-dessus.

Calcul de l’aptitude L’aptitude de chaque particule est


calculée en fonction de la fonction objectif.

Mise à jour de pbest Si l’aptitude de la particule est


meilleure que sa meilleure position connue, alors la nouvelle
position devient la meilleure position connue.

Mise à jour de gbest Si l’aptitude de la particule est


meilleure que la meilleure position connue du groupe, alors
la nouvelle position devient la meilleure position connue du F IGURE 4. : Schéma du déroulement parallèle de l’algorithme
groupe.

L’algorithme PSO continue à s’exécuter jusqu’à ce qu’une


condition de terminaison soit satisfaite, par exemple un
nombre maximal d’itérations ou une convergence de la
meilleure position connue du groupe.

Avantages et inconvénients de la version séquentielle de


PSO

La version séquentielle de PSO est simple à implémenter


et à comprendre. Elle est également efficace pour résoudre un À chaque itération ou mouvement du groupe d’oiseaux, les
large éventail de problèmes d’optimisation. informations sont partagées entre les threads du GPU et du
CPU, assurant une collaboration efficace. Les mises à jour
Cependant, la version séquentielle de PSO peut être moins des positions et des vitesses des particules sont parallélisées,
efficace que d’autres versions parallèles de l’algorithme, car ce qui permet d’exploiter au maximum la capacité de calcul
elle ne tire pas parti du parallélisme des opérations de mise à du GPU pour ces tâches intensives en calcul.
jour de la vitesse et de la position des particules.

Cependant, il est important de noter que l’évaluation de la


fonction objectif, qui détermine la meilleure solution connue
pour chaque particule, se déroule de manière séquentielle. Cela
signifie que cette partie du processus n’est pas parallélisée,
mais elle est effectuée séquentiellement. Cette séparation en
threads parallèles à chaque itération de l’algorithme permet
d’optimiser les performances tout en gérant efficacement les
B. Description de la version massivement parallèle de PSO
parties du processus qui ne peuvent pas être parallélisées.

La parallélisation de l’algorithme PSO (Particle Swarm En résumé, la parallélisation du PSO répartit le travail
Optimization) repose sur la division des individus en différents sur plusieurs threads, à la fois sur le GPU et le CPU, pour
threads, à la fois sur le GPU et le CPU, pour améliorer les accélérer le calcul des positions et vitesses des particules,
performances de l’algorithme. Ce processus implique la trans- tout en gérant de manière séquentielle l’évaluation de la
formation du code C en code .cu, permettant ainsi d’appeler fonction objectif. Cela permet d’exploiter au maximum les
diverses fonctions CUDA et d’exploiter la puissance de calcul ressources matérielles disponibles et d’améliorer l’efficacité
des GPU. de l’algorithme.
4

Le minimum de la fonction, atteint en x∗ = 0, est égal à


f− biais1 = −330.

F IGURE 6. Moyenne des Gbest obtenus après 10 run

F IGURE 5. Processus de l’algorithme PSO parallele au niveau GPU

IV. R ÉSULTATS EXPÉRIMENTAUX


A. Configuration
Pour évaluer l’efficacité de l’implémentation parallèle de
l’algorithme PSO par rapport à sa version séquentielle, nous
avons réalisé une étude approfondie en utilisant quatre pro-
blèmes de référence numériques bien établis, conçus pour
tester les performances de PSO à travers différentes dimen-
sions et tailles de population. Notre évaluation s’est concentrée
sur quatre aspects clés : la comparaison des moyennes de la
meilleure solution trouvée (Gbest) entre le CPU et le GPU, la
comparaison des temps moyens d’exécution entre les deux, la F IGURE 7. La Moyenne Temps (CPU-GPU) après 10 run
comparaison des moyennes des écarts types, et enfin, l’analyse
de l’évolution du rapport temps (CPU divisé par GPU) en
fonction des dimensions et du nombre de populations choisi.
Ces mesures nous ont permis d’apprécier la qualité de la
solution, l’efficacité temporelle et les avantages de l’approche
parallèle pour l’algorithme PSO.

B. Fonctions de Référence
Nous avons sélectionné quatre fonctions de référence nu-
mériques, chacune présentant des défis distincts pour l’opti-
misation :
Fonction de Rastrigin Décalée: La fonction Rastrigin dé-
calée est couramment utilisée comme problème de test de
performance pour les algorithmes d’optimisation en raison
de sa non-convexité. L’espace de recherche est généralement
limité à l’intervalle [−5, 5]D .

D
X
zi2 − 10 cos (2πzi ) + 10 + f− biais1

f1 (x) = (1)
F IGURE 8. Répartition des Ecarts Type après 10
i=1
5

F IGURE 9. Le rapports CPU/GPU (temps d’exécution) F IGURE 12. Répartition des Ecarts Type après 10

Fonction de Rosenbrock Décalée: La fonction de Rosen-


brock, également connue sous le nom de "fonction banane",
est définie par :
n−1
X 
2
f2 (x) = 100 zi2 − zi+1 + (zi − 1)2 + f− biais2
i=1
Cette fonction exhibe un minimum global situé à l’intérieur
d’une vallée étroite de forme parabolique, ce qui rend la
convergence des algorithmes de recherche du minimum global
difficile.
L’espace de recherche est généralement limité à l’intervalle
[−100, 100]D ? et son minimum global est atteint en x∗ = 0,
avec f2 (x∗ ) = f− biais2 = 390.
F IGURE 13. Le rapports CPU/GPU (temps d’exécution)

Fonction de Griewank Décalée: La fonction Griewank


décalée est un autre problème de test de performance pour les
algorithmes d’optimisation, également définie dans l’espace de
recherche [−5, 5]D .
D D  !
X zi2 Y zi
f3 (x) = − cos √ + 1+
i=1
4000 i=1
i
f− biais3 = −180 (2)

F IGURE 10. Moyenne des Gbest obtenus après 10 run


Le minimum de la fonction, atteint en x∗ = 0, est égal à
f− biais3 .

F IGURE 11. La Moyenne Temps (CPU-GPU) après 10 run F IGURE 14. Moyenne des Gbest obtenus après 10 run
6

F IGURE 15. La Moyenne Temps (CPU-GPU) après 10 run F IGURE 18. Moyenne des Gbest obtenus après 10 run

F IGURE 16. Répartition des Ecarts Type après 10

F IGURE 19. La Moyenne Temps (CPU-GPU) après 10 run

F IGURE 17. Le rapports CPU/GPU (temps d’exécution)

Fonction de la Sphère Décalée: La fonction de la sphère


décalée est un autre problème de test de performance pour les
algorithmes d’optimisation, également définie dans l’espace de
recherche [−5, 5]D .

D
X
f4 (x) = zi2 + f− biais4 (3)
i=1

Le minimum de la fonction, atteint en x∗ = 0, est égal à


f− biais4 = −450.
Où z = x − 0, x = [x1 , x2 , . . . , xD ], et x∗ = 0. F IGURE 20. Répartition des Ecarts Type après 10
7

[6] Riccardo Poli, "Analysis of the Publications on the Applications of


Particle Swarm Optimisation," Journal of Artificial Evolution and Ap-
plications, 2008 (02 2008), p. 10.
[7] URL : https ://blog.knoldus.com/digital-transformation-with-amdahls-
gunthers-law/
[8] URL : https ://www.gurumed.org/2019/12/18/loi-de-moore-lintelligence-
artificielle-surpasse-nos-prdictions-en-matire-dvolution-de-la-puissance-
de-calcul-des-ordinateurs/
[9] URL : https ://dataanalyticspost.com/Lexique/particle-swarm-
optimization-pso/

F IGURE 21. Le rapports CPU/GPU (temps d’exécution)

C. Résultats
Nos résultats montrent que le temps nécessaire pour ré-
soudre un problème avec l’algorithme PSO dépend fortement
de la complexité du problème. En particulier, lorsque le
problème a plus de dimensions, cela prend plus de temps pour
le résoudre, ce qui est assez logique. Cependant, ce qui est
intéressant, c’est que la dimension du problème a un impact
plus important sur le temps que la taille de la population.
D’autre part, notre version parallèle de l’algorithme PSO
est généralement plus rapide que la version séquentielle, ce
qui est une bonne nouvelle. Cependant, pour des problèmes
simples avec peu de dimensions, la version séquentielle peut
être aussi rapide, voire plus rapide dans certains cas.
En résumé, pour des problèmes complexes avec de nom-
breuses dimensions, la version parallèle est préférable, mais
pour des problèmes plus simples, la version séquentielle peut
être tout aussi efficace.

V. C ONCLUSION
Les résultats de ce projet montrent que la parallélisation est
un moyen efficace d’accélérer l’exécution de la PSO. L’uti-
lisation de GPU permet d’obtenir des gains de performance
encore plus importants que l’utilisation de CPU.
Ce projet ouvre la voie à de nouvelles applications de la
PSO, notamment dans des domaines où les problèmes d’opti-
misation sont complexes et nécessitent des calculs importants.

R ÉFÉRENCES
[1] URL : https ://www.zmescience.com/science/news-science/smartphone-
power-compared-to-apollo-432/
[2] J. Kennedy and R. Eberhart, "Particle swarm optimization," Proceedings
of the IEEE International Conference on Neural Networks, vol. 4, pp.
1942-1948, 1995.
[3] Wen-Jun Zhang and Xiao-Feng Xie, "DEPSO : hybrid particle swarm with
differential evolution operator," in SMC’03 Conference Proceedings. 2003
IEEE International Conference on Systems, Man and Cybernetics, Confe-
rence Theme - System Security and Assurance (Cat. No.03CH37483), vol.
4, pp. 3816-3821, 2003.
[4] J. Kennedy and R. Eberhart, "Particle swarm optimization," in Procee-
dings of ICNN’95 - International Conference on Neural Networks, vol.
4, pp. 1942-1948, 1995.
[5] "Appendix A - Statistics for Swarmers," in Swarm Intelligence, James
Kennedy, Russell C. Eberhart, and Yuhui Shi (Eds.). Morgan Kaufmann,
San Francisco, pp. 429-449, 2001.

Vous aimerez peut-être aussi