8 Conclusion
Nous avons présenté ici SPPoC , un outil de calcul polyédrique et de
programmation linéaire qui permet l'utilisation à travers une
interface unifiée de PIP , de la PolyLib et de l'Omega Library . Plus
qu'une simple interface, SPPoC offre des fonctionnalités
supplémentaires : prise en charge des changements de variables lors
des appels à PIP , amélioration de certaines fonctions de la PolyLib (gestion automatique des dimensions et comptage de points dans un
produit cartésien), et un moteur de simplification d'expressions
arithmétiques et de systèmes de contraintes.
Le premier objectif de SPPoC est atteint : permettre l'implantation
des deux applications présentées dans cet article. Pour bien
comprendre le chemin parcouru, il faut savoir qu'une tentative de
calcul du volume des communications sur l'exemple donné dans la
section 7.2 a été faite en utilisant directement PIP et
la PolyLib . Dans un premier temps, aucun résultat n'a pu être obtenu
(mémoire insuffisante, temps de calcul prohibitif). Dans un second
temps, après découpage manuel du problème, un résultat est finalement
sorti. Le volume calculé tenait sur deux pages de texte et était, bien
entendu, inexploitable.
Le second objectif est de faire en sorte que SPPoC puisse être plus
facilement utilisable pour les autres applications. Une première version
est téléchargeable dès maintenant à partir de la page web
http://www.lifl.fr/west/sppoc/, mais des améliorations sont
nécessaires pour une plus grande diffusion. Le paquetage doit être
perfectionné en supprimant de parties de code obsolète, en augmentant
l'indépendance par rapport aux versions de PIP et de la PolyLib et
en terminant l'interface à l'Omega Library . Il faut aussi ajouter des
fonctionnalitées et, bien sûr, continuer la chasse aux bogues.
Le domaine d'application de SPPoC est très large puisqu'il couvre
tout le champ des optimisations de compilation ou de parallélisation
basées sur des analyses statiques de code. SPPoC permettant une plus
grande facilité d'accès aux bibliothèques de calcul polyédrique, nous
pensons que des analyses plus complexes pourront être menées à bien
et que le prototypage de nouvelles applications sera plus rapide.
Notons en particulier qu'il est prévu d'utiliser SPPoC dans le cadre
d'une collaboration entre le LIFL et le PRiSM autour du thème de
l'analyse de code pour vérifier l'équivalence de programmes.