Scotch

Fiche logiciel validé
  • Création ou MAJ importante : 18/10/10
  • Correction mineure : 18/10/10
Mots-clés
Pour aller plus loin

Scotch : partitionneur séquentiel et parallèle de graphes et renuméroteur de matrices creuses

  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Téléchargement
  • Version évaluée : 5.1
  • Langue(s) de l'interface : anglais
  • Licence : CeCILL-C

    Les caractéristiques de cette licence sont proches de celles de la GNU LGPL, mais elle est de droit Français, et ses deux versions, anglaise et française, font toutes deux foi.

  • Origine du développement : INRIA Bordeaux, LABRI
Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : Scotch
Description
Fonctionnalités générales

La distribution SCOTCH est un ensemble de programmes séquentiels et parallèles et de bibliothèques qui implémentent les algorithmes de placement statique, de partitionnement de graphes, et de renumérotation de matrices creuses conçus au sein du projet SCOTCH.

SCOTCH possède de nombreuses caractéristiques intéressantes :

  • Il peut être compilé en mode 32 ou 64 bits. Dans ce dernier cas, il peut partitionner des graphes à plus de 2 milliards de sommets, distribués sur autant de processeurs que nécessaire (testé jusqu'à 20.000 coeurs).
  • Ses fonctionnalités peuvent être mises en oeuvre par le biais d'un ensemble de programmes indépendants ou au moyen de la bibliothèque libSCOTCH, qui offre des interfaces pour les langages C et Fortran.
  • Il fournit des algorithmes pour partitionner des structures de graphes, ainsi que des structures de maillages définies comme des graphes bipartis noeuds/éléments et qui peuvent aussi représenter des hypergraphes.
  • Il peut placer tout type de graphe source sur tout type de graphe cible. Les graphes source et cible peuvent être de topologies quelconques, et leurs sommets et arêtes peuvent être valués. Qui plus est, ces graphes peuvent même être déconnectés. Cette fonctionnalité permet le placement de programmes sur des sous-parties disjointes d'une architecture parallèle constituée de processeurs et de liens de communication hétérogènes.
  • Il calcule des renumérotations de matrices creuses amalgamées par blocs, pour une résolution efficace au moyen de routines BLAS.
Autres fonctionnalités
  • Il est paramétrable dynamiquement, grâce à l'interprétation des chaînes de stratégie lors de l'exécution du programme.
  • Il offre un support étendu des graphes et maillages adaptatifs par la gestion de tableaux d'arêtes disjoints.
  • Il peut manipuler indifféremment des structures de graphes et de maillages créées au sein de programmes C ou Fortran, avec des indices de tableaux commençant à 0 ou à 1.
  • Son temps d'exécution est linéaire vis-à-vis du nombre d'arêtes du graphe source, et logarithmique vis-à-vis du nombre de sommets du graphe cible dans le cas du placement statique.
  • Il offre de nombreux outils pour construire, tester, et afficher des graphes.
  • Il est écrit en C ANSI et utilise l'interface POSIX, ce qui le rend très portable. PT-SCOTCH utilise l'interface MPI, et optionnellement les threads POSIX.
  • Il utilise efficacement la mémoire disponible, pour traiter des graphes et maillages plus gros sans tomber à court de mémoire.
  • Il est très fortement modulaire et documenté. Comme il est maintenant disponible sous la licence libre CeCILL-C, il peut être utilisé comme banc de test pour le développement rapide et le test de nouvelles méthodes de partitionnement ou de renumérotation.
  • Il peut être facilement interfacé avec d'autre programmes. Les programmes du projet SCOTCH ont été conçus pour fonctionner en mode ligne de commande sans sollicitations de l'utilisateur, afin qu'ils puissent être appelés facilement à partir d'autres programmes au moyen d'appels system() ou popen(), ou bien être combinés sur une seule ligne de commande au moyen de pipes. De plus, les fonctionnalités d'étiquetage des sommets permettent une renumérotation facile de ceux-ci.
Interopérabilité

Les formats de graphes et matrices acceptés en entrée sont les formats :

  • Scotch
  • Chaco/MeTiS
  • Harwell/Boeing
  • Matrix Market
Contexte d'utilisation dans mon laboratoire/service

Scotch est un produit stable, utilisé en production chez de nombreux partenaires académiques et industriels tels que le CEA, EADS, EDF, LLNL, etc. Il est intégré au sein des solveurs MUMPS et PaStiX, ce qui élargit d'autant sa base d'utilisateurs.

La version 4.0 a été téléchargée plus de 2400 fois.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Des paquetages existent pour les distributions :

  • Debian science
  • FreeBSD
  • RedHat
  • Ubuntu
Plates-formes

Tous systèmes Posix (Linux, AIX, HP-UX, Solaris, FreeBSD ...), Windows, MacOS X.

Logiciels connexes

Une bibliothèque MPI (MPIch2, bibliothèques constructeurs) est nécessaire à la compilation des fonctions parallèles de la bibliothèque PT-Scotch.
Une bibliothèque de threads compatibles POSIX peut être utilisée de façon optionnelle.

PaStiX : Parallel Sparse matriX package : http://www.projet-plume.org/fiche/pastix
MUMPS : solveur direct de systèmes linéaires creux : http://www.projet-plume.org/fiche/mumps
HIPS : solveur de systèmes linéaires creux : http://www.projet-plume.org/fiche/hips

Autres logiciels aux fonctionnalités équivalentes

MeTiS / ParMeTiS, Chaco, Jostle, Party.

Environnement de développement
Type de structure associée au développement

Communauté restreinte. En plus de François Pellegrini, ont contribué au développement : Cédric Chevalier, Jun-Ho Her et Sébastien Fourestier.

Eléments de pérennité

Logiciel maintenu depuis plus de 18 ans.

Références d'utilisateurs institutionnels

CEA, EDF.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Des ressources communautaires, comme par exemple un forum, sont disponibles sur le site INRIA Gforge :
http://gforge.inria.fr/forum/?group_id=248 .

Documentation utilisateur

Fichiers d'aide à l'installation (en anglais), manuels utilisateur (en anglais) et forums sont disponibles.
cf http://www.labri.fr/~pelegrin/scotch/ pour plus d'information.

Contributions

Pour contribuer au logiciel, la meilleure façon est de prendre contact avec l'auteur principal, par courriel ou par l'intermédiaire du forum.

Commentaires

Logiciel connexe

Prendre en compte le logiciel https://www.projet-plume.org/fr/fiche/neper en tant que logiciel connexe lors de la mise à jour ?

David.