Disabled needsFlagBcast

This commit is contained in:
rastogi 2025-12-10 01:22:12 +01:00
parent cf64110dee
commit f470c7ad3c
6 changed files with 18 additions and 10 deletions

View File

@ -2,14 +2,14 @@ iterations <- 10000
dt <- 200 dt <- 200
chkpt_interval <- 100 chkpt_interval <- 100
stab_interval <- 100 stab_interval <- 100
mape_threshold <- rep(0.0035, 13) mape_threshold <- rep(0.01, 13)
mape_threshold[5] <- 1 #Charge mape_threshold[5] <- 1 #Charge
zero_abs <- 1e-13 zero_abs <- 1e-13
rb_limit <- 3 rb_limit <- 3
rb_interval_limit <- 100 rb_interval_limit <- 300
ctrl_cell_ids <- seq(0, (400*400)/2 - 1, by = 401) ctrl_cell_ids <- seq(0, (400*400)/2 - 1, by = 401)
#out_save <- seq(500, iterations, by = 500) out_save <- seq(500, iterations, by = 500)
out_save = c(seq(1, 10), seq(10, 100, by= 10), seq(200, iterations, by=100)) #out_save = c(seq(1, 10), seq(10, 100, by= 10), seq(200, iterations, by=100))
list( list(

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
#SBATCH --job-name=p2_eps0035_v3 #SBATCH --job-name=p2_eps01_300
#SBATCH --output=p2_eps0035_v3_%j.out #SBATCH --output=p2_eps01_300_%j.out
#SBATCH --error=p2_eps0035_v3_%j.err #SBATCH --error=p2_eps01_300_%j.err
#SBATCH --partition=long #SBATCH --partition=long
#SBATCH --nodes=6 #SBATCH --nodes=6
#SBATCH --ntasks-per-node=24 #SBATCH --ntasks-per-node=24
@ -15,5 +15,5 @@ module purge
module load cmake gcc openmpi module load cmake gcc openmpi
#mpirun -n 144 ./poet dolo_fgcs_3.R dolo_fgcs_3.qs2 dolo_only_pqc #mpirun -n 144 ./poet dolo_fgcs_3.R dolo_fgcs_3.qs2 dolo_only_pqc
mpirun -n 144 ./poet --interp --rds dolo_fgcs_3_rt.R dolo_fgcs_3.qs2 p2_eps0035_v3 mpirun -n 144 ./poet --interp dolo_fgcs_3_rt.R dolo_fgcs_3.qs2 p2_eps01_300
#mpirun -n 144 ./poet --interp barite_fgcs_4_new/barite_fgcs_4_new_rt.R barite_fgcs_4_new/barite_fgcs_4_new.qs2 barite #mpirun -n 144 ./poet --interp barite_fgcs_4_new/barite_fgcs_4_new_rt.R barite_fgcs_4_new/barite_fgcs_4_new.qs2 barite

Binary file not shown.

View File

@ -457,13 +457,13 @@ void poet::ChemistryModule::MasterRunParallel(double dt) {
ChemBCast(&this->ai_surrogate_validity_vector.front(), this->n_cells, MPI_INT); ChemBCast(&this->ai_surrogate_validity_vector.front(), this->n_cells, MPI_INT);
} }
if (control->needsFlagBcast()) { //if (control->needsFlagBcast()) {
ftype = CHEM_CTRL_FLAGS; ftype = CHEM_CTRL_FLAGS;
PropagateFunctionType(ftype); PropagateFunctionType(ftype);
uint32_t ctrl_flags = uint32_t ctrl_flags =
buildCtrlFlags(this->dht_enabled, this->interp_enabled, this->stab_enabled); buildCtrlFlags(this->dht_enabled, this->interp_enabled, this->stab_enabled);
ChemBCast(&ctrl_flags, 1, MPI_UINT32_T); ChemBCast(&ctrl_flags, 1, MPI_UINT32_T);
} //}
this->ctrl_batch.clear(); this->ctrl_batch.clear();
ftype = CHEM_WORK_LOOP; ftype = CHEM_WORK_LOOP;

View File

@ -49,6 +49,8 @@ void poet::ControlModule::updateSurrState(bool dht_enabled, bool interp_enabled)
if (surr_active > config.rb_interval_limit) { if (surr_active > config.rb_interval_limit) {
surr_active = 0; surr_active = 0;
rb_count -= 1; rb_count -= 1;
std::cout << "Surr active counter: " << surr_active
<< ", rb interval limit: " << config.rb_interval_limit << std::endl;
std::cout << "Rollback count reset to: " << rb_count << "." << std::endl; std::cout << "Rollback count reset to: " << rb_count << "." << std::endl;
} }
} }
@ -103,6 +105,10 @@ uint32_t poet::ControlModule::calcRbIter() {
std::optional<uint32_t> std::optional<uint32_t>
poet::ControlModule::findRbTarget(const std::vector<std::string> &species) { poet::ControlModule::findRbTarget(const std::vector<std::string> &species) {
if (rbLimitReached()) {
return std::nullopt;
}
/* Skip threshold checking if already in stabilization phase*/ /* Skip threshold checking if already in stabilization phase*/
if (s_history.empty() || rb_enabled) { if (s_history.empty() || rb_enabled) {
return std::nullopt; return std::nullopt;
@ -270,6 +276,8 @@ void poet::ControlModule::processCheckpoint(uint32_t &current_iter,
} }
bool poet::ControlModule::needsFlagBcast() const { bool poet::ControlModule::needsFlagBcast() const {
// Keep broadcasting flags so all ranks disable interpolation even after rb_limit is
// reached
return (config.rb_limit > 0) && !rbLimitReached(); return (config.rb_limit > 0) && !rbLimitReached();
} }