OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
zfac_omp_m.F File Reference

Go to the source code of this file.

Modules

module  zmumps_fac_omp_m

Functions/Subroutines

subroutine zmumps_fac_omp_m::zmumps_fac_l0_omp (n, liw, nstk_steps, nd, fils, step, frere, dad, istep_to_iniv2, tab_pos_in_pere, ptrist, ptrast, pimaster, pamaster, ptrarw, ptraiw, itloc, rhs_mumps, rinfo, nbroot, nbrtot, nbroot_under_l0, uu, icntl, ptlust_s, ptrfac, info, keep, keep8, procnode_steps, slavef, comm_nodes, myid_nodes, bufr, lbufr, lbufr_bytes, intarr, dblarr, root, perm, nelt, frtptr, frtelt, lptrar, comm_load, ass_irecv, seuil, seuil_ldlt_niv2, mem_distrib, ne, dkeep, pivnul_list, lpn_list, lpool_b_l0_omp, ipool_b_l0_omp, l_virt_l0_omp, virt_l0_omp, virt_l0_omp_mapping, l_phys_l0_omp, phys_l0_omp, perm_l0_omp, ptr_leafs_l0_omp, l0_omp_mapping, ll0_omp_mapping, thread_la, mumps_tps_arr, zmumps_tps_arr, nstepsw, opassw, opeliw, nelvaw, comp, maxfrw, nmaxnpivw, npvw, noffnegw, nb22t1w, nbtinyw, det_expw, det_mantw, det_signw, lrgroups, l0_omp_factors, ll0_omp_factors, i4_l0_omp, nbstats_i4, nbcols_i4, i8_l0_omp, nbstats_i8, nbcols_i8)
subroutine zmumps_fac_omp_m::zmumps_set_maxs_maxis_thread (maxs_base_relaxed8th, maxis_base_relaxedth, blr_strat, keep, i4_l0_ompth, nbstats_i4, i8_l0_ompth, nbstats_i8)
subroutine zmumps_fac_omp_m::zmumps_ma_eff_mem_dispo (mumps_tps_arr, nbthreads, keep8, keep, n, blr_strat, lpool_p, i8_l0_omp, nbstats_i8, memdispo_underl0)
subroutine zmumps_fac_omp_m::zmumps_l0omp_copy_iw (iw, liw, iwpos, mumps_tps_arr, keep, ptlust, icntl, info)
subroutine zmumps_fac_omp_m::zmumps_perform_copies_init (state, keep8_77_save, nbwaitmem, nbfinished, nbongoingcopies, nbunderl0, keep, keep8)
subroutine zmumps_fac_omp_m::zmumps_perform_copies (thread_id_p, mumps_tps_arr, zmumps_tps_arr, l0_omp_factors, ll0_omp_factors, state, size_copied, nbwaitmem, nbfinished, nbongoingcopies, nbunderl0, myid_nodes, n, slavef, step, ptrast, pamaster, procnode_steps, dad, keep, keep8, info_p)
recursive subroutine zmumps_process_front_niv1 (comm_load, ass_irecv, n, inode, type, typef, la, iw, liw, a, maxfrw, noffnegw, npvw, nb22t1w, nbtinyw, det_expw, det_mantw, det_signw, info_p, uu, seuil, seuil_ldlt_niv2, opeliw, nelvaw, nmaxnpivw, nstepsw, ptrist, ptlust_s, ptrfac, ptrast, step, pimaster, pamaster, ne, posfac, lrlu, lrlus, lrlusm, iptrlu, icntl, keep, keep8, dkeep, pivnul_list, lpn_list, comp, iwpos, iwposcb, procnode_steps, slavef, ifath, comm_nodes, myid_nodes, ipool_p, lpool_p, leaf, perm, nstk_steps, bufr, lbufr, lbufr_bytes, nbfin, root, opassw, itloc, rhs_mumps, fils, ptrarw, ptraiw, intarr, dblarr, nd, frere, dad, lptrar, nelt, frtptr, frtelt, istep_to_iniv2, tab_pos_in_pere, lrgroups, flop_estim_acc)

Variables

integer(8), parameter zmumps_fac_omp_m::underl0 = -20_8
integer(8), parameter zmumps_fac_omp_m::copynotstarted = -19_8
integer(8), parameter zmumps_fac_omp_m::waitmem = -18_8
integer(8), parameter zmumps_fac_omp_m::copyfactorsfinished = -17_8
integer(8), parameter zmumps_fac_omp_m::allocatevidercbencours = -16_8
integer(8), parameter zmumps_fac_omp_m::finished = -15_8

Function/Subroutine Documentation

◆ zmumps_process_front_niv1()

recursive subroutine zmumps_process_front_niv1 ( integer comm_load,
integer ass_irecv,
integer n,
integer inode,
integer type,
integer typef,
integer(8) la,
integer, dimension(liw) iw,
integer liw,
complex(kind=8), dimension(la) a,
integer maxfrw,
integer noffnegw,
integer npvw,
integer nb22t1w,
integer nbtinyw,
integer det_expw,
complex(kind=8) det_mantw,
integer det_signw,
integer, dimension(2) info_p,
double precision uu,
double precision seuil,
double precision seuil_ldlt_niv2,
double precision opeliw,
integer nelvaw,
integer nmaxnpivw,
integer nstepsw,
integer, dimension(keep(28)) ptrist,
integer, dimension(keep(28)) ptlust_s,
integer(8), dimension (keep(28)) ptrfac,
integer(8), dimension (keep(28)) ptrast,
integer, dimension(n) step,
integer, dimension(keep(28)) pimaster,
integer(8), dimension(keep(28)) pamaster,
integer, dimension(keep(28)) ne,
integer(8) posfac,
integer(8) lrlu,
integer(8) lrlus,
integer(8) lrlusm,
integer(8) iptrlu,
integer, dimension(60) icntl,
integer, dimension(500) keep,
integer(8), dimension(150) keep8,
double precision, dimension(230) dkeep,
integer, dimension(lpn_list) pivnul_list,
integer lpn_list,
integer comp,
integer iwpos,
integer iwposcb,
integer, dimension(keep(28)) procnode_steps,
integer slavef,
integer ifath,
integer comm_nodes,
integer myid_nodes,
integer, dimension(lpool_p), intent(in) ipool_p,
integer, intent(in) lpool_p,
integer leaf,
integer, dimension( n ) perm,
integer, dimension( keep(28) ) nstk_steps,
integer, dimension( lbufr ) bufr,
integer lbufr,
integer lbufr_bytes,
integer nbfin,
type (zmumps_root_struc) root,
double precision opassw,
integer, dimension( n + keep(253) ) itloc,
complex(kind=8), dimension(keep(255)) rhs_mumps,
integer, dimension( n ) fils,
integer(8), dimension( lptrar ), intent(in) ptrarw,
integer(8), dimension( lptrar ), intent(in) ptraiw,
integer, dimension(keep8(27)) intarr,
complex(kind=8), dimension(keep8(26)) dblarr,
integer, dimension( keep(28) ) nd,
integer, dimension( keep(28) ) frere,
integer, dimension( keep(28) ) dad,
integer lptrar,
integer nelt,
integer, dimension( n+1 ) frtptr,
integer, dimension( nelt ) frtelt,
integer, dimension(keep(71)) istep_to_iniv2,
integer, dimension(slavef+2,max(1,keep(56))) tab_pos_in_pere,
integer, dimension(n), intent(in) lrgroups,
double precision flop_estim_acc )

Definition at line 1135 of file zfac_omp_m.F.

1154 USE zmumps_struc_def, ONLY : zmumps_root_struc
1155 IMPLICIT NONE
1156 include 'mumps_headers.h'
1157 TYPE (ZMUMPS_ROOT_STRUC) :: root
1158 INTEGER COMM_LOAD, ASS_IRECV
1159 INTEGER COMM_NODES, MYID_NODES, TYPE, TYPEF
1160 INTEGER N, LIW, INODE,INFO_P(2)
1161 INTEGER ICNTL(60), KEEP(500)
1162 DOUBLE PRECISION DKEEP(230)
1163 DOUBLE PRECISION UU, SEUIL, SEUIL_LDLT_NIV2
1164 INTEGER(8) KEEP8(150)
1165 INTEGER(8) :: LA, POSFAC, LRLU, LRLUS, LRLUSM, IPTRLU
1166 INTEGER IWPOSCB, IWPOS,
1167 & IFATH, SLAVEF, NELVAW, NMAXNPIVW, NSTEPSW
1168 INTEGER IW(LIW),PROCNODE_STEPS(KEEP(28))
1169 INTEGER(8) :: PTRAST (KEEP(28))
1170 INTEGER(8) :: PTRFAC (KEEP(28))
1171 INTEGER(8) :: PAMASTER(KEEP(28))
1172 INTEGER PTRIST(KEEP(28)), PTLUST_S(KEEP(28))
1173 INTEGER STEP(N), PIMASTER(KEEP(28)), NE(KEEP(28))
1174 COMPLEX(kind=8) A(LA)
1175 INTEGER :: MAXFRW, NOFFNEGW, NPVW, NBTINYW
1176 INTEGER, intent(in) :: LRGROUPS(N)
1177 DOUBLE PRECISION OPASSW, OPELIW
1178 COMPLEX(kind=8) DBLARR(KEEP8(26))
1179 INTEGER INTARR(KEEP8(27))
1180 INTEGER ITLOC( N + KEEP(253) ), FILS( N ),
1181 & ND( KEEP(28) ), FRERE( KEEP(28) )
1182 INTEGER DAD( KEEP(28) )
1183 COMPLEX(kind=8) :: RHS_MUMPS(KEEP(255))
1184 INTEGER ISTEP_TO_INIV2(KEEP(71)),
1185 & TAB_POS_IN_PERE(SLAVEF+2,max(1,KEEP(56)))
1186 INTEGER NELT, LPTRAR
1187 INTEGER FRTPTR( N+1 ), FRTELT( NELT )
1188 INTEGER(8), INTENT(IN) :: PTRAIW( LPTRAR ), PTRARW( LPTRAR )
1189 INTEGER LEAF, COMP
1190 INTEGER :: NB22T1W, DET_EXPW, DET_SIGNW
1191 COMPLEX(kind=8) :: DET_MANTW
1192 INTEGER PERM( N )
1193 INTEGER NSTK_STEPS( KEEP(28) )
1194 INTEGER LBUFR, LBUFR_BYTES
1195 INTEGER BUFR( LBUFR )
1196 INTEGER NBFIN
1197 INTEGER :: LPN_LIST
1198 INTEGER :: PIVNUL_LIST(LPN_LIST)
1199 DOUBLE PRECISION FLOP_ESTIM_ACC
1200 INTEGER, INTENT(IN) :: LPOOL_P
1201 INTEGER, INTENT(IN) :: IPOOL_P(LPOOL_P)
1202 INTEGER :: IOLDPS, JOBASS, ETATASS
1203 INTEGER(8) :: POSELT
1204 LOGICAL :: AVOID_DELAYED, SON_LEVEL2
1205 jobass = 0
1206 etatass = 0
1207 IF ( keep(55) .EQ. 0 ) THEN
1208 jobass = 0
1209 CALL zmumps_fac_asm_niv1( comm_load, ass_irecv, n, inode,
1210 & iw, liw, a, la,
1211 & info_p, nd, fils, frere, dad, maxfrw, root, opassw,
1212 & opeliw, ptrist, ptlust_s, ptrfac, ptrast, step, pimaster,
1213 & pamaster, ptrarw, ptraiw, itloc, rhs_mumps, nstepsw,
1214 & son_level2,comp, lrlu, iptrlu,
1215 & iwpos, iwposcb, posfac,
1216 & lrlus, lrlusm, icntl, keep, keep8, dkeep,
1217 & intarr, keep8(27), dblarr, keep8(26),
1218 & nstk_steps, procnode_steps, slavef, comm_nodes,
1219 & myid_nodes, bufr, lbufr, lbufr_bytes, nbfin, ipool_p,
1220 & lpool_p, leaf, perm, istep_to_iniv2, tab_pos_in_pere,
1221 & jobass, etatass
1222 & , lrgroups
1223 & )
1224 ELSE
1225 CALL zmumps_fac_asm_niv1_elt(comm_load,ass_irecv,nelt,frtptr,
1226 & frtelt, n, inode, iw, liw, a,
1227 & la, info_p, nd, fils, frere, dad, maxfrw,
1228 & root, opassw, opeliw, ptrist, ptlust_s, ptrfac, ptrast, step,
1229 & pimaster, pamaster, ptrarw, ptraiw, itloc,
1230 & rhs_mumps, nstepsw, son_level2, comp, lrlu,
1231 & iptrlu, iwpos, iwposcb,
1232 & posfac, lrlus, lrlusm, icntl, keep, keep8, dkeep,
1233 & intarr, keep8(27), dblarr, keep8(26),
1234 & nstk_steps, procnode_steps, slavef,
1235 & comm_nodes, myid_nodes, bufr, lbufr, lbufr_bytes, nbfin,
1236 & ipool_p, lpool_p, leaf, perm, istep_to_iniv2,
1237 & tab_pos_in_pere
1238 & , lrgroups
1239 & )
1240 ENDIF
1241 IF (info_p(1) .LT. 0) THEN
1242 RETURN
1243 ENDIF
1244 avoid_delayed = ( ( ifath .EQ. keep(20)
1245 & .OR.
1246 & ifath .EQ. keep(38) )
1247 & .AND.
1248 & ( keep(60) .NE. 0 ) )
1249 poselt = ptrast(step(inode))
1250 ioldps = ptlust_s(step(inode))
1251 IF ( keep(50) .EQ. 0 ) THEN
1252 CALL zmumps_fac1_lu( n, inode,
1253 & iw, liw,
1254 & a, la, ioldps,
1255 & poselt,
1256 & info_p(1), info_p(2), uu, noffnegw, npvw, nbtinyw,
1257 & det_expw, det_mantw, det_signw,
1258 & keep, keep8,
1259 & step, procnode_steps, myid_nodes, slavef,
1260 & seuil, avoid_delayed, etatass,
1261 & dkeep(1), pivnul_list(1), lpn_list, iwpos
1262 & , lrgroups
1263 & , perm
1264 & )
1265 ELSE
1266 iw( ioldps + 4 + keep(ixsz) ) = 1
1267 CALL zmumps_fac1_ldlt( n, inode,
1268 & iw, liw, a,
1269 & la,
1270 & ioldps, poselt,
1271 & info_p(1), info_p(2), uu, noffnegw, npvw,
1272 & nb22t1w, nbtinyw, det_expw, det_mantw, det_signw,
1273 & keep, keep8, myid_nodes, seuil,
1274 & avoid_delayed,
1275 & etatass,
1276 & dkeep(1), pivnul_list(1), lpn_list, iwpos
1277 & , lrgroups
1278 & , perm
1279 & )
1280 iw(ioldps + 4 + keep(ixsz)) = step(inode)
1281 ENDIF
1282 IF (info_p(1) .LT. 0) THEN
1283 RETURN
1284 ENDIF
1285 CALL zmumps_fac_stack( comm_load, ass_irecv, n, inode, TYPE,
1286 &TYPEF, LA, IW, LIW, A,
1287 &INFO_P(1), INFO_P(2), OPELIW, NELVAW, NMAXNPIVW, PTRIST, PTLUST_S,
1288 &PTRFAC, PTRAST, STEP, PIMASTER, PAMASTER, NE, POSFAC,
1289 &LRLU, LRLUS, LRLUSM, IPTRLU, ICNTL, KEEP,
1290 &KEEP8, DKEEP,
1291 &COMP,IWPOS, IWPOSCB, PROCNODE_STEPS,
1292 &SLAVEF, IFATH, COMM_NODES, MYID_NODES, IPOOL_P,
1293 &LPOOL_P, LEAF, NSTK_STEPS, PERM, BUFR, LBUFR,
1294 &LBUFR_BYTES, NBFIN, root, OPASSW, ITLOC, RHS_MUMPS,
1295 &FILS, DAD, PTRARW, PTRAIW, INTARR, DBLARR, ND, FRERE,
1296 &LPTRAR, NELT, FRTPTR, FRTELT, ISTEP_TO_INIV2, TAB_POS_IN_PERE,
1297 & LRGROUPS,
1298 & FLOP_ESTIM_ACC
1299 &)
1300 RETURN
subroutine zmumps_fac1_ldlt(n, inode, iw, liw, a, la, ioldps, poselt, iflag, ierror, uu, nnegw, npvw, nb22t1w, nbtinyw, det_expw, det_mantw, det_signw, keep, keep8, myid, seuil, avoid_delayed, etatass, dkeep, pivnul_list, lpn_list, iwpos, lrgroups, perm)
subroutine zmumps_fac1_lu(n, inode, iw, liw, a, la, ioldps, poselt, iflag, ierror, uu, noffw, npvw, nbtinyw, det_expw, det_mantw, det_signw, keep, keep8, step, procnode_steps, myid, slavef, seuil, avoid_delayed, etatass, dkeep, pivnul_list, lpn_list, iwpos, lrgroups, perm)
subroutine zmumps_fac_asm_niv1_elt(comm_load, ass_irecv, nelt, frt_ptr, frt_elt, n, inode, iw, liw, a, la, info, nd, fils, frere, dad, maxfrw, root, opassw, opeliw, ptrist, ptlust, ptrfac, ptrast, step, pimaster, pamaster, ptrarw, ptraiw, itloc, rhs_mumps, nsteps, son_level2, comp, lrlu, iptrlu, iwpos, iwposcb, posfac, lrlus, lrlusm, icntl, keep, keep8, dkeep, intarr, lintarr, dblarr, ldblarr nstk_s, procnode_steps, slavef, comm, myid, bufr, lbufr, lbufr_bytes, nbfin, ipool, lpool, leaf, perm, istep_to_iniv2, tab_pos_in_pere, lrgroups, mumps_tps_arr, zmumps_tps_arr, l0_omp_mapping)
subroutine zmumps_fac_asm_niv1(comm_load, ass_irecv, n, inode, iw, liw, a, la, info, nd, fils, frere, dad, maxfrw, root, opassw, opeliw, ptrist, ptlust, ptrfac, ptrast, step, pimaster, pamaster, ptrarw, ptraiw, itloc, rhs_mumps, nsteps, son_level2, comp, lrlu, iptrlu, iwpos, iwposcb, posfac, lrlus, lrlusm, icntl, keep, keep8, dkeep, intarr, lintarr, dblarr, ldblarr nstk_s, procnode_steps, slavef, comm, myid, bufr, lbufr, lbufr_bytes, nbfin, ipool, lpool, leaf, perm, istep_to_iniv2, tab_pos_in_pere, jobass, etatass, lrgroups, mumps_tps_arr, zmumps_tps_arr, l0_omp_mapping)
int comp(int a, int b)
subroutine zmumps_fac_stack(comm_load, ass_irecv, n, inode, type, typef, la, iw, liw, a, iflag, ierror, opeliw, nelvaw, nmaxnpiv, ptrist, ptlust_s, ptrfac, ptrast, step, pimaster, pamaster, ne, posfac, lrlu, lrlus, lrlusm, iptrlu, icntl, keep, keep8, dkeep, comp, iwpos, iwposcb, procnode_steps, slavef, fpere, comm, myid, ipool, lpool, leaf, nstk_s, perm, bufr, lbufr, lbufr_bytes, nbfin, root, opassw, itloc, rhs_mumps, fils, dad, ptrarw, ptraiw, intarr, dblarr, nd, frere, lptrar, nelt, frtptr, frtelt, istep_to_iniv2, tab_pos_in_pere, lrgroups, flop_estim_acc)