diff --git a/src/feature_creation/feature_space/FeatureSpace.cpp b/src/feature_creation/feature_space/FeatureSpace.cpp index 1c72bdef02c6c71e4aeaa9023792b7d206f45e4e..a7d7d55dcd349c6f444231c52168361bfd16b520 100644 --- a/src/feature_creation/feature_space/FeatureSpace.cpp +++ b/src/feature_creation/feature_space/FeatureSpace.cpp @@ -347,14 +347,14 @@ void FeatureSpace::generate_reparam_feature_set(const std::vector<double>& prop) std::shared_ptr<NLOptimizer> optimizer_param = nlopt_wrapper::get_optimizer(_project_type, _task_sizes, _prop, _max_phi, _max_param_depth); std::shared_ptr<NLOptimizer> optimizer_reparam = nlopt_wrapper::get_optimizer(_project_type, _task_sizes, prop, _max_phi, _max_param_depth); - #pragma omp for schedule(dynamic) + #pragma omp for schedule(monotonic: dynamic) for(auto feat_1 = _phi_reparam.begin() + _start_gen_reparam.back() + _mpi_comm->rank(); feat_1 < _phi_reparam.end(); feat_1 += _mpi_comm->size()) { generate_non_param_feats(feat_1, next_phi_private, _phi_reparam.begin(), feat_ind, l_bound, u_bound); generate_param_feats(feat_1, next_phi_private, _phi_reparam.begin(), feat_ind, optimizer_param, l_bound, u_bound); } - #pragma omp for schedule(dynamic) + #pragma omp for schedule(monotonic: dynamic) for(auto feat_1 = _phi.begin() + _start_gen[nn-1] + _mpi_comm->rank(); feat_1 < _phi.begin() + _end_no_params[nn-1]; feat_1 += _mpi_comm->size()) { generate_reparam_feats(feat_1, next_phi_private, feat_ind, optimizer_reparam, l_bound, u_bound); @@ -572,7 +572,7 @@ void FeatureSpace::generate_feature_space() std::vector<node_ptr> next_phi_private; std::shared_ptr<NLOptimizer> optimizer = nlopt_wrapper::get_optimizer(_project_type, _task_sizes, _prop, _max_phi, _max_param_depth); - #pragma omp for schedule(dynamic) + #pragma omp for schedule(monotonic: dynamic) for(auto feat_1 = _phi.begin() + _start_gen.back() + _mpi_comm->rank(); feat_1 < _phi.end(); feat_1 += _mpi_comm->size()) { generate_non_param_feats(feat_1, next_phi_private, _phi.begin(), feat_ind, l_bound, u_bound); @@ -586,7 +586,7 @@ void FeatureSpace::generate_feature_space() #pragma omp parallel firstprivate(feat_ind, l_bound, u_bound) { std::vector<node_ptr> next_phi_private; - #pragma omp for schedule(dynamic) + #pragma omp for schedule(monotonic: dynamic) for(auto feat_1 = _phi.begin() + _start_gen.back() + _mpi_comm->rank(); feat_1 < _phi.end(); feat_1 += _mpi_comm->size()) { generate_non_param_feats(feat_1, next_phi_private, _phi.begin(), feat_ind, l_bound, u_bound); @@ -967,7 +967,7 @@ void FeatureSpace::project_generated(const double* prop, const int size, std::ve } #endif - #pragma omp for schedule(dynamic) + #pragma omp for schedule(monotonic: dynamic) for(auto feat = _phi.begin() + _start_gen.back() + _mpi_comm->rank(); feat < _phi.end(); feat += _mpi_comm->size()) { unsigned long int feat_ind = _phi.size() + _n_sis_select * (omp_get_num_threads() + _mpi_comm->size());