-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do MPI tests #33
Comments
I did a 5-day test on gx3 with max 50 nonlinear iterations, 1x1 vs 2x1 vs 4x1. There are small differences (~1E-04) at a few points... |
also, on daley a 32x1 test segfaults on gx1, not sure why |
gx1
gx3
|
Je pense avoir trouvé l'erreur:
étant donné que |
J'ai corrigé ça dans 8bf95d1 Ça passe avec (vérifié sur ppp3): gx3
gx1
|
@JFLemieux73 si tu veux rester au courant pour les tests MPI. Je vais relancer le test gx1 5 ans sur daley maintenant que le bogue est réglé. |
Ok je vais etre plus present sur github. Q pour toi. C'est mieux de rouler sur banting ou daley (pour ne pas piler sur les pieds des ops)? |
@JFLemieux73 cette semaine jai fait des tests sur gx1 pour 5 jours (sur daley) avec plusieurs décompositions MPI, mais c'est très lent sur gx1, même avec un max de 20 itérations. Je pense qu'il faudrait profiler le code pour déterminer si la lenteur est dans la communication MPI ou bien dans la façon dont le code est écrit ou les deux.. pas simple. J'ai comparé les sorties entre les différentes décompositions et il semble avoir des différences surtout au ice edge, donc je me demande si il n'y a pas une erreur quelque part dans l'implémentation ou bien la communication avec les conditions frontières... as tu une référence pour ça au niveau numérique? J'ai aussi lancé d'autres tests avec différentes décomposition sur la grille gx3, au moins ça roule plus vite je vais pouvoir avoir des résultats plus rapidement. |
Plan:
|
Comparaisons 1x1 vs 2x1 (gx3)
donc je vais investiguer le PGMRES... |
C'est gx3? En réglant la question de l'initialisation avec des 0 peut-être que tu as réglé la question des différentes décompositions? |
Oui c'est gx3. je vais essayer les différents préconditioneurs, et augmenter le nombre de pas de temps. J'espère qu'en effet ça va régler les différences entre les décompositions |
As-tu le même nb d'itération de fgmres et pgmres pour les 2 décomp? Ca peut être le moment de mettre P*=0...ca va te guider pour trouver le problème. |
Oui c'est les mêmes nombres d'itérations. Ok bonne idée, je vais mettre P*=0. |
Je pense que c'est normal que ça ne donne pas la même réponse avec différentes décomposition avec PGMRES. Si tu te souviens (on s'en était déjà parlé), le PGMRES fait pas mal la même chose que FGMRES mais évite certaines communications (pour l'efficacité, vu que c'est juste un préconditioneur). Donc, à mon avis, si on met les mêmes tolérances ( On peut s'appeler lundi pour en discuter. |
C'est la diff de h (épaisseur)? Oui c'est pas mal gros. Essaie de voir ce qui est fait à la fin du evp avant de faire advection-ridging. On a peut-être oublié un truc. |
Non c'est uvel. OK. je check ça |
Je me suis rappelé que le sorties sont en simple précision... en regardant le restart à la place, après 1 pas de temps même à 1E-10 il y a des différences (environ 1E-14, avec EVP c'est bit for bit 1x1 vs 2x1)... j'ai comparé le code mais je n'ai pas encore trouvé qqch qui ferait une différence... je continue de chercher. |
1e-14 comme différence c'est quand même vraiment petit. Je serais surpris que ça donne des diff de 1e-02 après une journée. Tu pourrais regarder l'impact avec 1e-12 comme tolérance. Quand tu fais un seul pas de temps tu fais aussi l'advection-ridging? |
OK je vais faire des tests supplémentaires. Oui, l'advection et le ridging sont à "on". |
Je ferais aussi un test avec P*=0. Selon moi dans ce cas tu vas avoir exactement la meme reponse apres le solveur et ca va te permettre de tester le reste de la mecanique. |
J'ai fait un pas de temps à 1E-12, avec P* = 0 et P* = la valeur par défaut. Avec P* = 0 j'ai des différences des 1E-18. J'ai essayé de rouler une journée à 1E-12 (avec Pstar non modifié), mais ça prenait plus qu'une heure et le walltime sur ma station est 1 heure (en mode batch)... il s'est rendu à 10 heures. après 10 heures la différence était de 1E-9. Je vais refaire le test 1 journée à 1E-10 pcq moi aussi je trouve ça suprenant que ça donne 1E-2 après 24 heures... peut-être que je m'étais trompé. |
Si tu roules une journée mais que tu utilises la matrice identité comme precond est-ce que c'est bfb? Ca te dirait au moins que le reste de la mécanique est ok et que c'est seulement pgmres qui donne des différences. |
En passant pour le 1e-12 ca se peut que tu ne puisses pas te rendre à ça car c'est trop près de la précision machine. |
Tu verrais le l2norm oscillé dans ce cas autour d'une valeur très basse. |
Je vais refaire des tests avec les autres precond. |
une journée, precond=diag, reltol=1E-8 => différences autour de 1E-6 à la fin de la journée (pour uvel, vvel) |
Je viens de partir un journée, précond=ident, reltol=1E-8, mais ça a pris 40 minutes faire un pas de temps en 2x1... il s'est rendu au maximum d'itérations nonlinéaires (5000)... |
Le solveur semble avoir le comportement attendu selon les résultats ci-dessus. Je vais fermer cette issue. Au besoin j'en ouvrirai une autre si/quand je ferai plus de tests. |
No description provided.
The text was updated successfully, but these errors were encountered: