Ne fait aucun traitement pour les partitions vides. Cela risque potentiellement de poser problème lors du partitionnement suivant car ParMetis n'est pas robuste lorsqu'on essaie de partitionner un graphe distribué avec des composantes vides.
take-from-biggest-partition-v1
Tente de supprimer les partitions vides en faisant en sorte que le sous-domaine ayant le plus de mailles donne une de ses mailles à une partition vide. Il s'agit de l'algorithme historique utilisé jusque dans la version 2.18 de Arcane. Cet algorithme fonctionne bien sauf dans le cas où il y a plus de partitions vide que de mailles dans le sous-domaine le plus grand car il laisse des partitions vides. Il faut noter que ce cas arrive uniquement si on a peu de mailles, beaucoup de sous-domaines et un déséquilibre important.
take-from-biggest-partition-v2
Tente de supprimer les partitions vides en appliquant de manière itérative la version 1 de cet algorithme.
Strategie à adopter pour gérer les éventuelles partitions vides générées par ParMetis.
Metis utilise tous les processeurs disponibles. La repetabilite "run a run" n'est pas garantie.
one-processor-per-node
Redistribue le graph sur un processeur par noeud. Cela permet souvent d'ameliorer les performances en evitant d'avoir peu de mailles par processus. La repetabilite "run a run" du partitionnement n'est pas garantie. Lorsqu'il n'y a qu'un seul noeud, tous les processeurs du noeuds sont utilises (pas de regroupement du graph).
two-processors-two-nodes
Effectue d'abord un regroupement du graph sur un processeur par noeud, puis effectue un regroupement du graph sur 2 de ces processeurs. S'il n'y a qu'un seul noeud, les 2 processeurs sont choisis sur ce noeud. La repetabilite "run a run" du partitionnement est garantie, mais cela consomme plus de memoire et de temps CPU lors du partitionnement.
two-gathered-processors
Effectue un regroupement du graph sur les 2 premiers processeurs. A priori, ces 2 processeurs se trouvent sur le meme noeud. La repetabilite "run a run" du partitionnement est garantie, mais cela consomme plus de memoire et de temps CPU lors du partitionnement.
two-scattered-processors
Effectue un regroupement du graph sur 2 processeurs distants. A priori, ces 2 processeurs se trouvent sur des noeuds differents. La repetabilite "run a run" du partitionnement est garantie, mais cela consomme plus de memoire et de temps CPU lors du partitionnement.
Strategie a adopter pour les appels a Metis.
Enumeration
1<metis-call-strategy>value</metis-call-strategy>
tolerance-target (real=1.05)
Tolerance t used by partitioner. It means that all parts returned by partitioner should verify 'size' lte 'avg' * t.