Académique Documents
Professionnel Documents
Culture Documents
é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.
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
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
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
D
X
f4 (x) = zi2 + f− biais4 (3)
i=1
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.