Septembre 2022 si BRYPISCESAGRIF 1way et 2way passent, relancer avec OPENMP = 1 ================================================================================ ================================================================================ proposition test Rachid le 5 Oct 2022 Suite à notre stimulante conversation, je te propose 2 tests de repro MPI à faire: 1- BRYPISCES22 en Agrif one way uniquement (ou un autre découpage) 2- BRYPISCES22 en Agrif two way en supprimant dans cppdefs.h les lignes: # if defined PASSIVE_TRACER || defined BIOLOGY || defined SEDIMENT \ || defined MUSTANG # define BIO_HADV_WENO5 # endif J’ai essayé sur le LR sur ma machin :e - test1 : pour isoler le truc => j'ai la reproductibilité chez moi en 1 way - test2 : pour la bio on force un schéma d’advection différent pour les traceurs bio uniquement. En enlevant les lignes on utilise sur la bio le schéma par défaut, le même que T et S => chez moi, la bio devient reproductible Rachid -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- pour respecter la nomenclature: BRYPISCESAGRIF1W22 pisces agrif 1 Way. BRYPISCESAGRIF2W22 pisces agrif 2 Way. avec 1 Way et OPENMP=0 / OPENMP=1 BRYPISCESAGRIF1W22_OPENMP_0 BRYPISCESAGRIF1W22_OPENMP_1 il bloque sur le tracer 16... et le check_file_1_0 grossit ... NaN tracer nb :12 name : ZOO2 mean : 0.9999985846E-08 min : 0.9999945929E-08 max : 0.1000733433E-07 tracer nb :13 name : BSi mean : 0.1499568978E-08 min : 0.1223564319E-08 max : 0.1499981635E-08 tracer nb :14 name : Fer mean : 0.7299437999E-09 min : 0.7002724191E-10 max : 0.1432642482E-08 tracer nb :15 name : BFe mean : 0.4999162261E-13 min : 0.4111139713E-13 max : 0.5241251475E-13 tracer nb :16 name : GOC mean : 0.9996059344E-08 min : 0.8156886638E-08 max : 0.9999334937E-08 BUGBIN = t prestep3d 0 0 0 0 0 1 NaN NaN NaN res_mpi=BUGBIN = t prestep3d 0 0 0 0 0 1 NaN NaN NaN PERFRST: PISCESAGRIF... #error "AGRIF with EXACT_RESTART is not yet implemented" difference Rachid et moi: Rachid: BENGUELA LR & UV_HADV_WENO5 Moi: BENGUELA VHR & UV_HADV_UP3 & AVERAGES & AVERAGES_K 06 Oct 2022 Rachid: Bon je rajoute Christian, il n’y a pas de raison qu’il échappe aux réjouissances. Indépendamment de la repro, je tombe sur un truc bizarre dans p4zsink mais peut-être déjà repéré et pas corrigé: - les tableaux de flux verticaux ligne 722 sont alloués comme PRIV_3D_BIOARRAY, c’est à dire de taille Istrp:Iendp,Jstrp:Jendp,1:jpk - ensuite utilisés en argument lors de l’appel à p4z_sink2_std (ligne 161 par exemple) - mais p4z_sink2_std attend un tableau psinkflx de taille 1:N+1 pour le flux (et ça paraît logique pour les flux) du coup dans p4z_sink2_std ça a l’air n’importe quoi des lignes 392 à 409 mais je veux bien une confirmation Christian : 1°) Oui oui on a corrigé ce genre de chose côté NEMO, il faudrait déclarer les tableaux sinking ( dans p4zsink.F90 lignes 722-728 ) en (PRIV_2D_BIOARRAY,1:jpk+1 ) 2°) SPIRIT - le nouveau cluster de l'IPSL - m'a permis de trouver un autre bug ( le tableau de tendance est non initialisé ) il faut corriger cela dans la routine p4zsms.F90 IF( kt == nittrc000 ) THEN ! ALLOCATE( xnegtr(PRIV_3D_BIOARRAY) ) ! DO jn = jp_pcs0, jp_pcs1 tra(:,:,:,jn) = 0.e0 ENDDO ! ENDIF Christophe: Si je comprend bien, je modifie 1/ p4zsink.F90 : remplacer toutes les déclaration de flux (PRIV_3D_BIOARRAY) par PRIV_2D_BIOARRAY,1:jpk+1 pour les lignes 722 à 728 2/ p4zsms.F90 : je rajoute les lignes DO jn = jp_pcs0, jp_pcs1 tra(:,:,:,jn) = 0.e0 ENDDO Je commite ces 2 modifs dans notre branch 63-pisces-bug-fixes/ Et je relance les test CVTK et vous tiens au courant. Sinon, Rachid, j'ai pour différences entre nos tests CVTK BRYPISCES AGRIF 1 WAY Toi: BENGUELA_LR + UV_HADV_WENO5 Moi: BENGUELA VHR + UV_HADV_UP3 + AVERAGES et AVERAGES_K que tu as désactivé de ton côté. Mais je n'ai pas réussit pour autant à éviter les NaN. alors est ce DATARMOR ou BENGUELA VHR au lieu de LR? Je vais tenter demain de vérifier tout ça demain et faire le test sur BENAGUELA LR ... Gildas (à propos du PERFRST, mais va avec...): Hello Christophe, ... en changeant le schéma d'advection de la BIO notamment (On en a parlé avec Rachid, le WENO5 fait des blague avec AGRIF, a priori la repro // peut pas marcher avec la combinaison WENO5+AGRIF) avec 07_BUGFIX_agrif_BIO_HADV_WENO5-false_UV_HADV_WENO5_et_AVE_False il bloque sur le tracer 25... et le check_file_1_0 grossit toujours ... NaN tracer nb :12 name : ZOO2 mean : 0.9999985846E-08 min : 0.9999945929E-08 max : 0.1000733433E-07 tracer nb :13 name : BSi mean : 0.1499568978E-08 min : 0.1223564319E-08 max : 0.1499981635E-08 tracer nb :14 name : Fer mean : 0.7299437999E-09 min : 0.7002724191E-10 max : 0.1432642482E-08 tracer nb :15 name : BFe mean : 0.4999162261E-13 min : 0.4111139713E-13 max : 0.5241251475E-13 tracer nb :16 name : GOC mean : 0.9996059344E-08 min : 0.8156886638E-08 max : 0.9999334937E-08 BUGBIN = t prestep3d 0 0 0 0 0 1 NaN NaN NaN res_mpi=BUGBIN = t prestep3d 0 0 0 0 0 1 NaN NaN NaN GESTION DE MEMOIRE?? option ifort -heap-array !!! Rachid : - mon pb de ifort, c’est lié à la manière dont ma version gère la mémoire par défaut, en jouant avec les options ça marche. Et à ce moment là le one way est reproductible sur le LR j’ai ajouté l’option -heap-array ce que je comprends de mes lectures, c’est que ifort alloue par défaut les tableaux locaux dans la zone mémoire stack. Avec cette option, c’est alloué dans la zone heap. Je n’ai jamais compris cette histoire de zone mémoire, mais l’important ici c’est que la zone stack est petite par exemple sans l'option j’arrivais à tourner le petit benguela en MPI 2x2 mais pas en mono, vu que les tableaux dans ce casMPI sont 4 fois plus petits et dans Pisces il y a bcp de tableaux locaux 3D ça me faisiat des plantages sur des lignes sans aucun rapport