La tendance des constructeurs pour le calcul scientifique est à l'imbrication de technologies permettant un degré de parallélisme toujours plus fort au sein d'une même machine: architecture NUMA, puces multicoeurs, SMT. L'efficacité de l'exécution d'une application parallèle irrégulière sur de telles machines hiérarchiques repose alors sur la qualité de l'ordonnancement des threads et du placement des données. Dans cette thèse, pour garantir une certaine portabilité des performances, nous définissons la notion de "bulle" permettant d'exprimer la nature structurée du parallélisme du calcul, et nous modélisons l'architecture de la machine cible. Une interface de programmation et des outils de débogage de haut niveau ont alors permis de développer simplement des ordonnanceurs dédiés, efficaces et portables. Des mesures de performances de plusieurs applications permettent d'illustrer l'intérêt de cette approche, les gains obtenus étant de l'ordre de 20 à 40%.