Adapting the Polytope Model for Dynamic and Speculative Parallelization - Archive ouverte HAL Accéder directement au contenu
Thèse Année : 2012

Adapting the Polytope Model for Dynamic and Speculative Parallelization

Résumé

In this thesis, we present a Thread-Level Speculation (TLS) frame-work whose main feature is to be able to speculatively parallelize a sequential loop nest in various ways, by re-scheduling its iterations. The transformation to be applied is selected at runtime with the goal of minimizing the number of rollbacks and maximizing performance. We perform code transformations by applying the polyhedral model that we adapted for speculative and runtime code parallelization. For this purpose, we designed a parallel code pattern which is patched by our runtime system according to the profiling information collected on some execution samples. Adaptability is ensured by considering chunks of code of various sizes, that are launched successively, each of which being parallelized in a different manner, or run sequentially, depending on the currently observed behavior for accessing memory. We show on several benchmarks that our framework yields good performance on codes which could not be handled efficiently by previously proposed TLS systems.
Dans cette thèse, nous décrivons la conception et l'implémentation d'une plate-forme logicielle de spéculation de threads, ou fils d'exécution, appelée VMAD, pour "Virtual Machine for Advanced Dynamic analysis and transformation", et dont la fonction principale est d'être capable de paralléliser de manière spéculative un nid de boucles séquentiel de différentes façons, en ré-ordonnançant ses itérations. La transformation à appliquer est sélectionnée au cours de l'exécution avec pour objectifs de minimiser le nombre de retours arrières et de maximiser la performance. Nous effectuons des transformations de code en appliquant le modèle polyédrique que nous avons adapté à la parallélisation spéculative au cours de l'exécution. Pour cela, nous construisons au préalable un patron de code qui est patché par notre runtime, ou support d'exécution logiciel, selon des informations de profilage collectées sur des échantillons du temps d'exécution. L'adaptabilité est assurée en considérant des tranches de code de tailles différentes, qui sont exécutées successivement, chacune étant parallélisée différemment, ou exécutée en séquentiel, selon le comportement des accès à la mémoire observé. Nous montrons, sur plusieurs programmes que notre plate-forme offre de bonnes performances, pour des codes qui n'auraient pas pu être traités efficacement par les systèmes spéculatifs de threads proposés précédemment.
Fichier principal
Vignette du fichier
thesis.pdf (2.28 Mo) Télécharger le fichier

Dates et versions

tel-00733850 , version 1 (19-09-2012)
tel-00733850 , version 2 (08-11-2012)

Identifiants

  • HAL Id : tel-00733850 , version 1

Citer

Alexandra Jimborean. Adapting the Polytope Model for Dynamic and Speculative Parallelization. Hardware Architecture [cs.AR]. Université de Strasbourg, 2012. English. ⟨NNT : ⟩. ⟨tel-00733850v1⟩
343 Consultations
1028 Téléchargements

Partager

Gmail Facebook X LinkedIn More