Jean Zay : la bibliothèque METIS

Description

METIS est un outil de partitionnement de graphes. Il peut être utilisé pour partitionner des éléments de maillages finis et réduire le remplissage (fill-in) induit lors de la factorisation des matrices creuses. Les algorithmes implémentés dans METIS sont basés sur les schémas de partitionnement multi-niveaux récursifs, multi-niveaux k-way et multi-contraintes.

Versions installées

La bibliothèque METIS propose plusieurs variantes selon le compilateur et la taille de représentations des types de données. Généralement la version 32 bits sera suffisante pour la plupart des projets. La version 64 bits doit être utilisée si le nombre total de noeuds ou d'arêtes des graphes à partitionner dépasse la représentation sur 32 bits, soit 2^31-1.

  • metis/4.0.3 : version 4.0.3 avec entiers 32 bits, réels 32 bits.
  • metis/5.1.0 : version 5.1.0 avec entiers 32 bits, réels 32 bits.
  • metis/5.1.0-int32-real64 : version 5.1.0 avec entiers 32 bits, réels 64 bits.
  • metis/5.1.0-int64-real64 : version 5.1.0 avec entiers 64 bits, réels 64 bits.

Ces informations peuvent être retrouvées par la commande :

$ module avail metis

Environnement

Les versions de METIS sont disponibles dans les environnements suivants :

  • intel-compilers/19.0.4
  • pgi/19.7
  • gcc/9.1.0

Ces informations peuvent être retrouvées par la commande :

$ module show metis

Pour utiliser cette librairie dans d'autres environnements, veuillez contacter l'équipe Support aux Utilisateurs.

Remarque : pour obtenir les informations sur les chemins d'accès aux librairies, il sera nécessaire de charger au préalable l'environnement choisi (Intel dans cet exemple) :

$ module load intel-compilers/19.0.4
$ module show metis

Utilisation

La bibliothèque est accessible par module.

Pour charger la version par défaut dans l'environnement courant ou dans l'environnement par défaut si aucun environnement n'est préalablement chargé :

$ module load metis

ou pour charger une version spécifique dans un environnement spécifique (Gcc dans cet exemple) :

$ module load gcc/9.1.0
$ module load metis/5.1.0-int32-real64 

Édition des liens

Lors de la compilation, il est nécessaire d'ajouter l'option -lmetis :

$ module load metis
$ ifort appel_metis.f90 -lmetis

Documentation