OASIS
Le couplage de codes numériques, c'est-à-dire l'échange synchronisé d'informations entre ces codes, a acquis depuis les années 1990 une importance de tout premier plan dans plusieurs domaines scientifiques tels que la modélisation du climat, l'assimilation de données, et la mécanique des fluides et des structures. Dans ce cadre, l'équipe "Modélisation du Climat et de son Changement Global" du CERFACS (Centre Européen de Recherche et de Formation Avancée en Calcul Scientifique) développe le logiciel OASIS conçu et utilisé pour coupler des modèles représentant les différentes composantes du système climatique (modèles de circulation générale atmosphérique, de circulation générale océanique, de glace de mer, de sol, d'hydrologie, etc.) en gardant le système modulaire, cad en gardant autonomes les différentes composantes. Il en est actuellement à la version OASIS3-MCT.
OASIS est constitué d'une bibliothèque de communication complètement parallèle, permettant de synchroniser les codes à coupler et d'échanger les champs de couplage à l'interface de ces modèles. Pour OASIS3, un exécutable séparé effectue les interpolations, i.e. les transformations requises pour exprimer, sur la grille du code cible, les champs de couplage fournis par le code source sur sa propre grille, tandis qu'il n'y a plus d'exécutable du coupleur dans OASIS3-MCT: tout est calculé dans les modèles.
OASIS peut coupler un nombre quelconque de codes numériques, échanger un nombre quelconque de champs de couplage entre ces codes, et effectuer des transformations (temporelles ou spatiales) spécifiques à chaque champ. Un envoi ou une réception d'un champ de couplage peut aussi avoir comme cible ou source un fichier de données sur disque; la bibliothèque de communication d'OASIS effectue alors automatiquement les entrées-sorties.
Pour être couplé par OASIS, un code doit bien entendu inclure un certain nombre d'appels aux routines de la bibliothèque de communication d'OASIS (initialisation, déclaration des champs de couplage et des maillages, envoi et réception des champs, terminaison).
Tous les paramètres de couplage (codes à coupler, envoi et réception à activer, sources et cibles, fréquence de couplage, transformations, etc.) sont définis par l'utilisateur dans des fichiers de configuration texte.
Les codes numériques couplés par OASIS peuvent être parallèles et chaque processus du code source et du code cible participe alors directement à l'échange des champs de couplage.
Deux versions d'OASIS co-existent actuellement, OASIS3 et OASIS3-MCT.
Avec OASIS3, évolution du coupleur développé depuis une vingtaine d'années au CERFACS (donc stable et bien validé), l'intégralité du champ de couplage est rassemblée par l'exécutable du coupleur qui effectue la recherche des voisins pour la transformation du champ de couplage de la grille source à la grille cible (qui permet de créer le fichier de poids et d'adresses de la transformation), puis le champ transformé est distribué aux différents processus du modèle cible; de plus, les champs de couplage doivent être bi-dimensionnels. La dernière version d'OASIS3 permet cependant l'utilisation de plusieurs exécutables OASIS3 au sein d'un même modèle couplé et donc une parallélisation champ par champ du couplage.
Une nouvelle version du coupleur, OASIS3-MCT, a été mise à disposition des utilisateurs en Août 2012 (donc encore en cours de validation). OASIS3-MCT a été développé dans le cadre du projet Européen IS-ENES en interfaçant OASIS3 avec la bibliothèque américaine MCT (Model Coupling Toolkit) développée par le Laboratoire National d'Argone, pour s'affranchir du goulot d'étranglement observé avec OASIS3 lorsque la résolution des modèles et le nombre de processeurs augmentent. Comme il n'y a plus d'exécutable du coupleur il n'y a plus de centralisation du champ source et du champ cible sur un seul processeur. En utilisant d'une part le fichier de poids et d'adresses permettant de caratériser la transformation du champ de couplage de la grille source à la grille cible, et d'autre part les décompositions parallèles du domaine source et cible, MCT réalise un couplage entièrement parallèle entre le modèle source et le modèle cible. Le calcul du fichier de poids et adresses est calculé sur un seul processeur d'un des modèles ou lu s'il existe déja mais il n'y a pas de calcul des poids en parallèle dans OASIS3-MCT. Par ailleurs, cette nouvelle version permet d'échanger facilement des champs 3D.
OASIS permet de coupler des codes numériques écrits en Fortran.
Les fichiers de données, éventuellement utilisés en entrée/sortie, doivent être au format NetCDF et respecter la convention CF (Climate and Forecast, http://cf-pcmdi.llnl.gov/ )
Le CERFACS développe le coupleur OASIS depuis une vingtaine d'années. En France, OASIS est utilisé au CERFACS, à Météo-France et à l'IPSL (Institut Pierre Simon Laplace) principalement pour coupler des modèles de circulation générale atmosphérique (ARPEGE, LMDZ, WRF) et des modèles de circulation générale océanique (NEMO, OPA, ROMS). OASIS a aussi aujourd'hui acquis une reconnaissance internationale et est utilisé par environ 30 autres groupes de recherche en modélisation climatique en Europe mais aussi aux Etats-Unis, au Canada, au Japon et en Australie.
Contrairement au coupleur PALM ), OASIS ne permet pas de couplage "dynamique" dans le sens où les codes à coupler doivent être démarrés au début de la simulation couplée et doivent s'exécuter durant toute la simulation.