GPGPU for Evolutionary Algorithms
Institution:
StrasbourgDisciplines:
Directors:
Abstract EN:
Evolutionary algorithms can find satisfactory, but not necessarily optimal solutions to complex problems. The power of these algorithms is directly related to the available computing power. Indeed, these algorithms perform a parallel exploration of the search space, through the evolution of a population of individuals more or less suited to the problem being solved. The available computing power has a direct impact on the population size and therefore the exploration/exploitation ability of a given algorithm. On the other hand, multicore processor architectures are being developed largely nowadays. These processors can contain up to hundreds of cores in a chip, but have structural constraints that impose an adaptation of the algorithms to be ported on. Among multicore processors, GPGPU-type (for General Purpose Graphical Processing Unit) processors, which are generalized versions of 3D rendering chips, have been industrially developed since 2007. These processors have up to hundreds of cores per chip and allow to obtain speedups of several hundred times, on some applications. This thesis details the use of such architectures in the context of evolutionary algorithms. Several variants of these algorithms are studied, such as GA / ES and GP. Implementation on mixed architectures and GPGPUs only were considered, using artificial and real-world application.
Abstract FR:
Les algorithmes évolutionnaires permettent de trouver des réponses satisfaisantes, mais non-nécessairement optimales à des problèmes complexes. La puissance de ces algorithmes est directement corrélée à la puissance de calcul disponible pour leur exécution. En effet, ces algorithmes réalisent une exploration en parallèle de l’espace de recherche, par le biais de l’évolution d’une population d’individus plus ou moins adaptés à la résolution du problème. La puissance de calcul disponible contraint la taille de la population et donc la capacité d’exploration ou d’exploitation qu’offre un algorithme. Parallèlement, nous assistons au développement des architectures de processeurs multi-cœurs. Ces processeurs peuvent contenir jusqu’à plusieurs centaines de cœurs dans une puce, mais possèdent des contraintes structurelles qui imposent une adaptation des algorithmes utilisés. Parmi ces processeurs se développent depuis 2007 les processeurs de type GPGPU (pour General Purpose Graphical Processing Unit), qui sont des versions généralisées de puces de rendu 3D. Ces processeurs possèdent jusqu’à plusieurs centaines de cœurs par puce et permettent d’obtenir des accélérations de plusieurs centaines de fois, sur certaines applications. Cette thèse détaille l’utilisation de telles architectures dans le cadre des algorithmes évolutionnaires. Plusieurs variantes de ces algorithmes sont étudiées, comme la AG / SE et la GP. Des implantations sur architectures mixtes et GPGPUs seules sont étudiées, par l’application à des problèmes jouets et réels.