Skip to content

Commit d65b4b8

Browse files
authored
Merge pull request #2208 from su2code/add_parallel_regions
Further parallel regions and hybrid AD memory improvements
2 parents f7c27cd + bc2207e commit d65b4b8

File tree

7 files changed

+19
-8
lines changed

7 files changed

+19
-8
lines changed

Common/include/basic_types/ad_structure.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,9 @@ FORCEINLINE void ComputeAdjoint() {
357357
opdi::logic->prepareEvaluate();
358358
#endif
359359
AD::getTape().evaluate();
360+
#if defined(HAVE_OPDI)
361+
opdi::logic->postEvaluate();
362+
#endif
360363
}
361364

362365
FORCEINLINE void ComputeAdjoint(unsigned short enter, unsigned short leave) {

SU2_CFD/src/drivers/CDiscAdjSinglezoneDriver.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,9 @@ void CDiscAdjSinglezoneDriver::SetRecording(RECORDING kind_recording){
255255
for (unsigned short iMesh = 0; iMesh <= config_container[ZONE_0]->GetnMGLevels(); iMesh++) {
256256
auto solver = solver_container[ZONE_0][INST_0][iMesh][iSol];
257257
if (solver && solver->GetAdjoint()) {
258+
SU2_OMP_PARALLEL_(if (solver->GetHasHybridParallel()))
258259
solver->SetRecording(geometry_container[ZONE_0][INST_0][iMesh], config_container[ZONE_0]);
260+
END_SU2_OMP_PARALLEL
259261
}
260262
}
261263
}

SU2_CFD/src/iteration/CDiscAdjFluidIteration.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry****
457457
(kind_recording == RECORDING::SOLUTION_AND_MESH)) {
458458
/*--- Update geometry to get the influence on other geometry variables (normals, volume etc) ---*/
459459

460+
SU2_OMP_PARALLEL
460461
CGeometry::UpdateGeometry(geometry[iZone][iInst], config[iZone]);
462+
END_SU2_OMP_PARALLEL
461463

462464
CGeometry::ComputeWallDistance(config, geometry);
463465
}
@@ -480,17 +482,17 @@ void CDiscAdjFluidIteration::SetDependencies(CSolver***** solver, CGeometry****
480482
solvers0[SPECIES_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION);
481483
solvers0[SPECIES_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION);
482484
}
483-
484-
}
485-
END_SU2_OMP_PARALLEL
486-
487485
if (config[iZone]->GetWeakly_Coupled_Heat()) {
488486
solvers0[HEAT_SOL]->Set_Heatflux_Areas(geometry0, config[iZone]);
489487
solvers0[HEAT_SOL]->Preprocessing(geometry0, solvers0, config[iZone], MESH_0, NO_RK_ITER, RUNTIME_HEAT_SYS, true);
490488
solvers0[HEAT_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0);
491489
solvers0[HEAT_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION);
492490
solvers0[HEAT_SOL]->CompleteComms(geometry0, config[iZone], SOLUTION);
493491
}
492+
493+
}
494+
END_SU2_OMP_PARALLEL
495+
494496
if (config[iZone]->AddRadiation()) {
495497
solvers0[RAD_SOL]->Postprocessing(geometry0, solvers0, config[iZone], MESH_0);
496498
solvers0[RAD_SOL]->InitiateComms(geometry0, config[iZone], SOLUTION);

SU2_CFD/src/solvers/CHeatSolver.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_contain
314314

315315
void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
316316

317+
BEGIN_SU2_OMP_SAFE_GLOBAL_ACCESS {
318+
317319
string HeatFlux_Tag, Marker_Tag;
318320

319321
su2double *Local_Surface_Areas, Local_HeatFlux_Areas_Monitor, Area, *Normal;
@@ -365,6 +367,8 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
365367
}
366368

367369
delete[] Local_Surface_Areas;
370+
371+
} END_SU2_OMP_SAFE_GLOBAL_ACCESS
368372
}
369373

370374
void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics,

externals/medi

meson_scripts/init.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ def init_submodules(
5757
# The sha tag must be maintained manually to point to the correct commit
5858
sha_version_codi = "9ca6c38280610b3ea5337ca3e5b5085ee1c66b59"
5959
github_repo_codi = "https://github.com/scicompkl/CoDiPack"
60-
sha_version_medi = "85711944f8d5d03dd75c635f8a18e220b216040d"
60+
sha_version_medi = "ab3a7688f6d518f8d940eb61a341d89f51922ba4"
6161
github_repo_medi = "https://github.com/SciCompKL/MeDiPack"
62-
sha_version_opdi = "93d05a762f1b614a84767ea5ba75fd7e2c27f317"
62+
sha_version_opdi = "8c89798817253abb017d857a0ae7f0520187645c"
6363
github_repo_opdi = "https://github.com/SciCompKL/OpDiLib"
6464
sha_version_meson = "41c650a040d50e0912d268af7a903a9ce1456dfa"
6565
github_repo_meson = "https://github.com/mesonbuild/meson"

0 commit comments

Comments
 (0)