Proposition d'un modèle pour la représentation de contexte d'exécution de simulations informatiques à des fins de reproductibilité

La reproductibilité en informatique est un concept incontournable au 21ème siècle. Les évolutions matérielles des calculateurs font que le concept de reproductibilité connaît un intérêt croissant au sein de la communauté scientifique. Pour les experts en simulation, ce concept est indissociable de c...

Full description

Bibliographic Details
Main Author: Congo, Faïçal Yannick Palingwendé
Other Authors: Clermont Auvergne
Language:en
Published: 2018
Subjects:
Web
Online Access:http://www.theses.fr/2018CLFAC093/document
Description
Summary:La reproductibilité en informatique est un concept incontournable au 21ème siècle. Les évolutions matérielles des calculateurs font que le concept de reproductibilité connaît un intérêt croissant au sein de la communauté scientifique. Pour les experts en simulation, ce concept est indissociable de celui de vérification, de confirmation et de validation, que ce soit pour la crédibilité des résultats de recherches ou pour l’établissement de nouvelles connaissances. La reproductibilité est un domaine très vaste. Dans le secteur computationnel et numérique, nous nous attacherons, d’une part, à la vérification de la provenance et de la consistance des données de recherches. D’autre part, nous nous intéressons à la détermination précise des paramètres des systèmes d’exploitation, des options de compilation et de paramétrage des modèles de simulation permettant l’obtention de résultats fiables et reproductibles sur des architectures modernes de calcul. Pour qu’un programme puisse être reproduit de manière consistante il faut un certain nombre d’information de base. On peut citer entre autres le système d’exploitation, l’environnement de virtualisation, les diverses librairies utilisées ainsi que leurs versions, les ressources matérielles utilisées (CPU, GPU, accélérateurs de calcul multi coeurs tel que le précédent Intel Xeon Phi, Mémoires, ...), le niveau de parallélisme et éventuellement les identifiants des threads, le statut du ou des générateurs pseudo-aléatoires et le matériel auxquels ils accèdent, etc. Dans un contexte de calcul scientifique, même évident, il n’est actuellement pas possible d’avoir de manière cohérente toutes ces informations du fait de l’absence d’un modèle standard commun permettant de définir ce que nous appellerons ici contexte d'exécution. Un programme de simulation s'exécutant sur un ordinateur ou sur un noeud de calcul, que ce soit un noeud de ferme de calcul (cluster), un noeud de grille de calcul ou de supercalculateur, possède un état et un contexte d'exécution qui lui sont propres. Le contexte d'exécution doit être suffisamment complet pour qu’à partir de celui-ci, hypothétiquement,l'exécution d’un programme puisse être faite de telle sorte que l’on puisse converger au mieux vers un contexte d’exécution identique à l’original dans une certaine mesure. Cela, en prenant en compte l'architecture de l’environnement d’exécution ainsi que le mode d'exécution du programme. Nous nous efforçons, dans ce travail, de faciliter l'accès aux méthodes de reproductibilité et de fournir une méthode qui permettra d’atteindre une reproductibilité numérique au sens strict. En effet, de manière plus précise, notre aventure s’articule autour de trois aspects majeurs. Le premier aspect englobe les efforts de collaboration, qui favorisent l'éveil des consciences vis à vis du problème de la reproductibilité, et qui aident à implémenter des méthodes pour améliorer la reproductibilité dans les projets de recherche. Le deuxième aspect se focalise sur la recherche d’un modèle unifiant de contexte d'exécution et un mécanisme de fédération d’outils supportant la reproductibilité derrière une plateforme web pour une accessibilité mondiale. Aussi, nous veillons à l’application de ce deuxième aspect sur des projets de recherche. Finalement, le troisième aspect se focalise sur une approche qui garantit une reproductibilité numérique exacte des résultats de recherche. === Computational reproducibility is an unavoidable concept in the 21st century. Computer hardware evolutions have driven a growing interest into the concept of reproducibility within the scientificcommunity. Simulation experts press that this concept is strongly correlated to the one ofverification, confirmation and validation either may it be for research results credibility or for theestablishment of new knowledge. Reproducibility is a very large domain. Within the area ofnumerical and computational Science, we aim to ensure the verification of research dataprovenance and integrity. Furthermore, we show interest on the precise identification ofoperating systems parameters, compilation options and simulation models parameterizationwith the goal of obtaining reliable and reproducible results on modern computer architectures.To be able to consistently reproduce a software, some basic information must be collected.Among those we can cite the operating system, virtualization environment, the softwarepackages used with their versions, the hardware used (CPU, GPU, many core architectures suchas the former Intel Xeon Phi, Memory, …), the level of parallelism and eventually the threadsidentifiers, the status of pseudo-random number generators, etc. In the context of scientificcomputing, even obvious, it is currently not possible to consistently gather all this informationdue to the lack of a common model and standard to define what we call here execution context.A scientific software that runs in a computer or a computing node, either as a cluster node, a gridcluster or a supercomputer possesses a unique state and execution context. Gatheringinformation about the latter must be complete enough that it can be hypothetically used toreconstruct an execution context that will at best be identical to the original. This of course whileconsidering the execution environment and the execution mode of the software. Our effortduring this journey can be summarized as seeking an optimal way to both ease genuine access toreproducibility methods to scientists and aim to deliver a method that will provide a strictscientific numerical reproducibility. Moreover, our journey can be laid out around three aspects.The first aspect involves spontaneous efforts in collaborating either to bring awareness or toimplement approaches to better reproducibility of research projects. The second aspect focusesin delivering a unifying execution context model and a mechanism to federate existingreproducibility tools behind a web platform for World Wide access. Furthermore, we investigateapplying the outcome of the second aspect to research projects. Finally, the third aspect focusesin completing the previous one with an approach that guarantees an exact numerical reproducibility of research results.