Cassiopee Forum
CFD python modules
S'il vous plaît connectez vous ou Enregistrement'.
Date et heure en ce moment : lundi, 20 novembre 2017, 20:09

Nouvelle discussion | Répondre
Cassiopee Forum :: Discussions, suggestions, bug report :: Transform :: Nouveau splitter  ::
ChristopheBenoit
Administrator
Image


Messages: 169
Nouveau splitter (mardi, 6 mai 2014, 10:51) citation  
L'algorithme de splitter très largement inspiré de celui d'elsA est disponible.
En python :
t = T.splitSize(t, R=NProc, multigrid=0, type=2)
Il faut ensuite faire un connectMatch (voir mon précédent post).

Pour l'instant, il n'y a pas encore le découpage des conditions aux limites exotiques.
Dans l'interface tkCassiopee : tkDistributor -> splitAndDistribute.

C'est pour l'instant dans /home/benoit/Cassiopee sur eos et visio.
Dites moi ce que vous en pensez.
a+

Ip enregistré Statut: déconnecté Profil | Site Web 
Ordre des réponses: Première réponse en dernier :: Première réponse en premier
VincentBrunet
Newbie
Image


Messages: 6
RE: Nouveau splitter (mardi, 20 mai 2014, 16:06) citation  
J'ai essayé sur eos et sur visio, mais je n'ai pas l'impression que c'est l'ancien Split Size qui fonctionne. J'ai essayé sur eos et visio

Ip enregistré Statut: déconnecté Profil | Site Web 
ChristopheBenoit
Administrator
Image


Messages: 169
RE: Nouveau splitter (mardi, 20 mai 2014, 16:19) citation  
As-tu bien essayé splitSize avec type=2 et R=NProc (et N=0 par defaut)?
a+

Ip enregistré Statut: déconnecté Profil | Site Web 
VincentBrunet
Newbie
Image


Messages: 6
RE: Nouveau splitter (mardi, 20 mai 2014, 16:36) citation  
Oui, ma commande :
t = TF.splitSize(t,N=0,R=nb_proc,multigrid=0,type=2)

En sortie je n'ai plus qu'une seule base sur 3 à l'origine et pas de découpe.
Le cassiopée :
/home/benoit/Cassiopee

Ip enregistré Statut: déconnecté Profil | Site Web 
Simon Verley
Newbie
Image


Messages: 25
RE: Nouveau splitter (jeudi, 22 mai 2014, 10:39) citation  
citation:
Dans l'interface tkCassiopee : tkDistributor -> splitAndDistribute.


Je viens d'essayer. Ça fonctionne sur mon cas pour le "splitAndDistribute" sauf que le splitter me remet toutes les zones découpées dans la première CGNSBase qu'il trouve, et non celle de la Zone d'origine. Forcément, ça pose des problèmes pour le connectMatch ensuite !

Y'a-t-il un moyen d'accéder à ce nouveau splitter sans passer par splitAndDistribute ?

Ip enregistré Statut: déconnecté Profil | 
Simon Verley
Newbie
Image


Messages: 25
RE: Nouveau splitter (jeudi, 22 mai 2014, 18:03) citation  
J'ai aussi remarqué les zones renomées accumulent beaucoup de compteur. Ma favorite est celle-ci dans mon cas :

zone.97.0.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1

ce qui n'est pas le cas lorsque l'on utilise splitNParts

Ip enregistré Statut: déconnecté Profil | 
ChristopheBenoit
Administrator
Image


Messages: 169
RE: Nouveau splitter (lundi, 26 mai 2014, 13:42) citation  
L'attachement des zones splittés à la bonne base est corrigé,
je pense.
Pour accéder à la fonction en python, c'est
t = TF.splitSize(t,N=0,R=nb_proc,multigrid=0,type=2)
comme indiqué précédemment.

A noter : la fonction splitNParts qui split en un nombre donné de blocs :
t = TF.splitNParts(t,N=NProcs)
qui donne donc 1 bloc par proc, et donne parfois aussi de très bons équilibrages (parfois mieux que splitSize avec type=2
et avec moins de blocs, donc moins de com...
a+

Ip enregistré Statut: déconnecté Profil | Site Web 
Fabien Gand
Newbie
Image


Messages: 15
RE: Nouveau splitter (vendredi, 24 octobre 2014, 14:23) citation  
Salut,

Un petit retour sur l'utilisation de ces nouveaux splitters, pour un maillage qui fait 135 M de points. Je cherche à équilibrer sur 480 cœurs, j'ai rencontré quelques soucis (voire des bugs) et fini par m'en sortir, si ça peut intéresser quelqu'un...Le cas est dans /home/fgand/PARTAGE/CoJeN_v13_OB.cgns si besoin.

1) Avec le splitSize par taille max. de zone, c'est galère et je tombe à 8% d'équilibrage quand j'ai plus de 3000 zones, ça fait trop de communications.

2) Avec la R.3 livrée avec elsA 3.5.04 sur eos, le splitSize(A,N=0,R=480,multigrid=2,type=2) me retourne un arbre avec seulement 338 zones, un bug quelque-part ?

3) Avec la R.4 de /home/benoit/Cassiopee sur celeste, là le splitSize(A,N=0,R=480,multigrid=2,type=2) marche bien, c'est équilibré à 0,1% près, mais le splitter s'acharne sur certaines zones et au final j'ai quelques zones qui font 4x4x4, le solveur va pas trop aimer...J'ai essayé de le faire en plusieurs passes (R=32, R=64, etc.) mais ça n'a pas amélioré le résultat.

4) Avec splitNParts, en mettant N=480 ça équilibre pas bien mais avec N=960 c'est équilibré à 5%, plutôt pas mal, comme l'avait dit Christophe ça vaut le coup de tenter cette fonction. Par contre ça découpe toujours dans la même direction, j'ai quelques zones qui n'ont que 9 points dans une direction, pas top. Du coup en 2 passes, N=480 puis N=960, c'est équilibré à 5% et il n'y a plus de zones "plates".

En conclusion : on arrive à s'en sortir avec les splitters dispos dans la R.4, c'est largement plus efficace qu'avec le splitSize uniquement par taille max de zone (qui doit pouvoir servir dans d'autres cas). Donc merci pour les nouvelles fonctions ! Pour améliorer encore les choses, je trouve qu'il serait très utile d'empêcher l'algo de découper deux fois de suite dans la même direction.


Ip enregistré Statut: déconnecté Profil | Site Web 
Nouvelle discussion | Répondre

Software PBLang 4.65 © 2002-2003 by Martin Senftleben
Image