Utilisation des méthodes formelles pour le développement de programmes parallèles
Institution:
Nancy 1Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
Le travail décrit dans cette thèse a pour but d'étudier comment on peut appliquer les méthodes formelles à la parallélisassions, pour développer des programmes parallèles corrects. Comme un de nos objectifs est de travailler sur des applications en grandeur nature, nous avons, durant ce travail, collaboré avec des physiciens et chimistes de notre université afin de paralléliser trois de leurs applications. Ces applications ont été parallélisées, sur l'origin 2000 du centre Charles Hermite, soit avec openmp, soit avec mpi, soit avec ces deux paradigmes à la fois. Afin de prouver qu'une parallèlisation basée sur une décomposition de domaines est correcte, nous avons développé une méthodologie adéquate qui demande à l'utilisateur d'abstraire son code séquentiel afin d'en obtenir une post-condition. Celle-ci nécessite d'être généralisée pour le code parallèle. Ensuite, on doit prouver que les post-conditions du code parallèle, plus la post-condition du code réalisant le collage des informations obtenues en parallèle, impliquent la post-condition du programme séquentiel. Si on ne spécifie pas la post-condition du code réalisant le collage, la preuve échoue, mais les obligations de preuves constituent la post-condition du code d'assemblage des calculs parallèles. Nous avons appliqué cette méthodologie à deux des parallelisations que nous avons effectuées. Pour montrer que l'on peut élaborer un programme à partir d'une spécification formelle et en faire la preuve, nous avons prouvé que le tri bitonique, facilement parallelisable, est correct en utilisant pvs. Nous avons également construit un compilateur qui permet de transformer une spécification unity d'un programme parallèle déterministe en un programme fortran que l'on peut exécuter sur une machine avec openmp.