Précédent : Motivations et objectifs Remonter :
Outils
pour le débogage et Suivant : Traces et
performance
Le non déterminisme apparent des exécutions parallèles induit des erreurs fugitives particulièrement difficiles à détecter. En effet, des programmes parallèles produisant des résultats déterministes sont susceptibles d'emprunter des chemins d'exécution différents en raison de conditions différentes dans l'environnement d'exécution (par exemple s'il y a régulation dynamique de charge). Dans ces conditions, des erreurs fugitives sont susceptibles d'apparaître, erreurs qui ne se produisent pas à toutes les exécutions ou disparaissent lorsque des moyens d'investigation sont mis en oeuvre (traceur, débogueur). La technique utilisée classiquement pour mettre au point les programmes à comportement non déterministe est d'enregistrer, au cours d'une exécution initiale, des traces qui seront utilisées par la suite pour forcer le programme à suivre le même chemin durant les exécutions suivantes durant lesquelles il sera ainsi possible d'utiliser tous les outils de débogage existants.
Dans le cadre des techniques classiques de réexécution de programmes parallèles, un mécanisme original a été défini pour ATHAPASCAN-0, valable pour les modèles de programmation parallèles basés sur l'appel de procédure à distance, mais aussi adaptable aux applications structurées suivant un modèle client-serveur. Le surcoût du à la prise de traces a été mesuré de façon systématique en utilisant des programmes synthétiques. Les résultats des mesures ont mis en évidence un surcoût très faible. Le travail en cours consiste à étudier une adaptation des mécanismes existants à la nouvelle version de ATHAPASCAN-0 (sur MPI), plus complexe du point de vue de la réexécution déterministe, ainsi qu'à ATHAPASCAN-1.