1. Git et GitHub en résumé
  2. Prise en main et exemples
    1. CPMD (Car-Parrinello Molecular Dynamics)
    2. DeepModeling

Git et GitHub en résumé

Un programme se construit aujourd’hui de manière collective, en regroupant de multiples développeurs. Gérer un code à plusieurs en gardant une trace des versions successives nécessite donc un outil spécifique. Ce dernier doit notamment permettre aux développeurs qui souhaitent ajouter de nouvelles fonctionnalités de créer des branches parallèles qui seront par la suite fusionnées intelligemment dans la branche principale : c’est la gestion de versions. Des modifications plus indépendantes du projet principal sont également possibles et se nomment duplications (forks).

En 2005, Linus Torvalds, à l’origine du système d’exploitation Linux, créa Git, un système de contrôle de versions distribué et open source. GitHub est une plateforme qui propose un hébergement de cet outil (dans le cloud) avec une interface conviviale. Son succès a conduit à son rachat par Microcosft en 2018. GitLab est une plateforme concurrente regroupant un nombre plus réduit de développeurs.

Page de Linus Torvalds sur GitHub

Prise en main et exemples

Cet outil est très facile à prendre en main grâce à des tutoriels qui guident l’utilisateur dans la création de son profil, sa documentation en code Markdown, la création de son premier référentiel, de sa première branche, et sa fusion avec la branche principale. Il est également très aisé de suivre d’autres projets et de mettre en favori des référentiels. En voici deux exemples en guise d’illustration.

CPMD (Car-Parrinello Molecular Dynamics)

CPMD est un code de simulation atomistique ab initio basé sur des ondes planes dont le développement débuta en 1990 sous licence IBM. En 2022, IBM mit le code à disposition sur GitHub sous licence MIT. Parcourons la page CPMD-code pour découvrir cette interface.

Sept dépôts ou référentiels (repositories) publics figurent sur cette page :

  • le programme, en Fortran, se trouve dans le dépôt CPMD ;
  • les fichiers d’entrée permettant de vérifier la bonne installation du code sont fournis dans le dépôt Tests ;
  • les tests qui permettent de vérifier la stabilité des versions sur des exemples servant de référence sont inclus dans le dépôt Regtests ;
  • les extensions au code CPMD développées par la communauté (comme l’utilitaire cpmd2cube) sont inclues dans le dépôts Addons.

Le dépôt CPMD indique que la dernière version (release) porte le numéro 4.3 et date du 23 décembre 2022. Les contributeurs sont mentionnés ainsi que les langages de programmation utilisés, ici le Fortran à 97,5 %. On note aussi la présence de deux branches : main et lxc5.

DeepModeling

DeepModeling est un projet qui existe depuis plus de six ans sur GitHub. Il concerne la simulation atomistique basée sur l’apprentissage machine (machine learning). Par comparaison à CPMD, on note immédiatement un nombre de dépôts plus important (49 au moment de l’écriture de ce billet). On peut notamment citer :

  • deepmd-kit, un outil couramment utilisé pour entraîner un potentiel interatomique sur des données ab initio (la version 2.2.9 datant du 4 février 2024, et le code étant écrit à 48 % en C++ et 47 % en python) ;
  • dpgen, qui permet d’étendre les possibilités de deepmd-kit (la version 0.12.0 datant du 2 novembre 2023, et le code étant écrit à 99,5 % en python) ;
  • dpdata, un outil permettant de convertir des trajectoires issues de différents code de dynamique moléculaire vers le format lisible par deepmd-kit (la version 0.2.17 datant du 31 octobre 2023, et le code étant écrit à 78 % en python).

On apprend aussi qu’en parallèle de la branche primaire (master) du deepmd-kit, la branche en développement (devel) est en avance de la première d’un nombre de modifications mentionné dans l’en-tête (196 commits au moment de l’écriture de ce billet).

Laisser un commentaire