IRPF90

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 02/12/09
  • Correction mineure : 02/12/09
Mots-clés

IRPF90 : un préprocesseur qui facilite le développement de gros codes en Fortran

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système :
  • Version actuelle : 1.1 - 29/10/2009
  • Licence(s) : GPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Anthony Scemama
  • Contact concepteur(s) : scemama@irsamc.ups-tlse.fr
  • Laboratoire(s), service(s)... : LCPQ

 

Fonctionnalités générales du logiciel

Un code scientifique peut presque toujours être vu comme une fonction pure de ses données. Dans cette vision fonctionnelle, un programme peut être représenté comme un arbre de production, où les feuilles sont les données, les noeuds sont les variables et les segments sont les relations {à besoin de/est nécessaire pour}.

IRPF90 introduit une nouvelle catégorie de variables (entités IRP) qui seront les noeuds de l'arbre de production. Pour chaque entité, le programmeur écrit le provider qui est une procédure qui fournit l'entité construite. Le préprocesseur analyse ensuite le code, construit l'arbre de production et génère un code Fortran qui assure qu'avant chaque utilisation d'une entité IRP celle-ci est construite. On peut faire l'analogie entre l'exécution du programme et la compilation d'un programme muni d'un makefile. À un instant donné, le programme ne va calculer que les entités qui ne sont pas valides, sinon il utilise la dernière valeur calculée.

Lorsque le programmeur écrit un code, il ne doit donc pas se soucier de la séquence d'exécution du programme. Si il veut introduire une nouvelle quantité à calculer dans le code, il ne doit connaître que les noms des autres entités dont il a besoin pour construire la nouvelle entité, sans se soucier de savoir si ce dont il a besoin a déja été calculé ni comment cela a été calculé. Ainsi, le développement collaboratif est grandement simplifié.

Contexte d’utilisation du logiciel

Le contexte d'utilisation d'IRPF90 est le calcul scientifique en général. Il est actuellement utilisé dans le domaine du calcul scientifique en chimie quantique. Plusieurs codes sont écrits au laboratoire de Chimie et Physique Quantiques (Toulouse) en utilisant cet outil:

  • EZFIO : Un générateur de bibliothèque d'entrées/sorties pour le Fortran et le Python [http://ezfio.sourceforge.net]
  • EPLF : Un programme qui calcul la fonction de localisation de paires électroniques dans un système moléculaire [http://eplf.sourceforge.net]
  • QMC=Chem : Un programme de calcul Monte Carlo Quantique massivement parallèle

D'autres codes de calcul Hartree-Fock et post-Hartree Fock sont écrits au laboratoire de Chimie Théorique (Paris 6)

Publications liées au logiciel

"IRPF90: a programming environment for high performance computing" A. Scemama, arXiv:0909.5012v1 [cs.SE] (2009)