Note publique d'information : Le progrès technologique dans la fabrication des ordinateurs n'a cessé d'évoluer afin
de répondre aux besoins des utilisateurs. Mais, si nous savons fabriquer des machines
sophistiquées, savons-nous les utiliser de façon à exploiter toutes les opportunités
qu'elles offrent ? Cette thèse s'inscrit dans la recherche d'une exploitation du niveau
matériel et du niveau logiciel les meilleurs possibles afin de tirer vers le haut
les performances globales des machines ou des librairies parallèles. Il s'agit donc
d'une thèse en calcul haute performance qui touche à des problématiques de gestion
mémoire (sur des machines mono ou multicoeurs) ainsi que des problèmatiques d'ordonnancement
dans la grille. À partir de l'application classique du tri séquentiel nous avons montré
qu'avec des processeurs modernes, le meilleur temps d'exécution est obtenu en réduisant
le nombre de défauts de cache, le nombre d'instructions exécutées, et surtout en augmentant
le nombre d'instructions indépendantes exécutables en parallèle. Pour le cas des processeurs
multi-cores, nous avons comparé plusieurs bibliothèques de threads sur la base des
réactions de leurs ordonnanceurs quand les cores sont chargés de différentes manières.
Nous avons cherché à trouver une corrélation entre les vols des tâches et le déplacement
des données dans la mémoire (cache). Pour le cas des grappes de calcul, nous avons
mis au point un schéma de partitionnement des données sur les différents processeurs
en tenant compte de leurs performances respectives ainsi que de la complexité du tri
séquentiel. Finalement pour les grilles de calcul, nous nous sommes intéressés à l'optimisation
des phases de communication, notamment de l'opération collective de la diffusion.
Nous avons développé en particulier une nouvelle heuristique pour la construction
d'un arbre de diffusion. Des expérimentations ont été conduites pour chacune des problématiques,
notamment sur la grille française Grid5000 et elles font ressortir les principales
caractéristiques des objets (algorithmes/processeurs/librairies) étudiés.
Note publique d'information : Technological progress in computer manufacturing has continued to evolve to meet the
needs of users. But if we make powerful machines, do we know how to use them so that
we exploit all the resources they offer? This thesis is seeking an operating level
hardware and software at the best possible to pull up the overall performance of machines
or parallel libraries. It is therefore an argument in HPC that touches on issues of
memory management (on mono or multi-core machines) and the problematics of scheduling
in the grid. From the classic application of sequencing we showed that with modern
processors, the best execution time is obtained by reducing the number of cache misses,
the number of instructions executed, and especially by increasing the number independent
executable instructions in parallel. In the case of multi-core processors, we compared
several thread libraries on the basis of their reactions when schedulers cores are
loaded in different ways. We tried to find a correlation between flight tasks and
moving data in memory (cache). In the case of compute clusters, we developed a scheme
of data partitioning on different processors, taking into account their respective
performances as well as the complexity of sequencing. Finally for grid computing,
we are interested in optimizing communication phases, including the operation of collective
diffusion. We have particularly developed a new heuristic for the construction of
a broadcast tree. Experiments were conducted for each of the issues, including the
French Grid5000 grid and they highlight the main characteristics of objects (algorithm
/ processor / libraries) studied.