Skip to content
Snippets Groups Projects
Commit 6c701a46 authored by Thomas Purcell's avatar Thomas Purcell
Browse files

Remove LossFunction firstprivate

This seems to not be feasable with OpenMP
parent 6aac080c
No related branches found
No related tags found
No related merge requests found
...@@ -983,9 +983,9 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve ...@@ -983,9 +983,9 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve
int worst_score_ind = std::max_element(scores_sel.begin(), scores_sel.end()) - scores_sel.begin(); int worst_score_ind = std::max_element(scores_sel.begin(), scores_sel.end()) - scores_sel.begin();
double worst_score = scores_sel[worst_score_ind]; double worst_score = scores_sel[worst_score_ind];
#pragma omp parallel firstprivate(worst_score, worst_score_ind, loss, scores_sel_all) #pragma omp parallel firstprivate(worst_score, worst_score_ind, scores_sel_all)
{ {
loss = loss_function_util::copy(loss); std::shared_ptr<LossFunction> loss_copy = loss_function_util::copy(loss);
std::vector<node_ptr> phi_sel_private(phi_sel); std::vector<node_ptr> phi_sel_private(phi_sel);
std::vector<double> scores_sel_private(scores_sel); std::vector<double> scores_sel_private(scores_sel);
int index_base = _phi.size() + _n_sis_select * (omp_get_thread_num() + _mpi_comm->size()); int index_base = _phi.size() + _n_sis_select * (omp_get_thread_num() + _mpi_comm->size());
...@@ -995,7 +995,7 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve ...@@ -995,7 +995,7 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve
std::shared_ptr<NLOptimizer> reparam_optimizer; std::shared_ptr<NLOptimizer> reparam_optimizer;
if(_reparam_residual) if(_reparam_residual)
{ {
std::vector<double> prop_vec(loss->prop_project()); std::vector<double> prop_vec(loss_copy->prop_project());
reparam_optimizer = nlopt_wrapper::get_optimizer(_project_type, _task_sizes, prop_vec, _max_phi, _max_param_depth); reparam_optimizer = nlopt_wrapper::get_optimizer(_project_type, _task_sizes, prop_vec, _max_phi, _max_param_depth);
} }
else else
...@@ -1037,7 +1037,7 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve ...@@ -1037,7 +1037,7 @@ void FeatureSpace::project_generated(std::shared_ptr<LossFunction> loss, std::ve
node_value_arrs::clear_temp_reg_thread(); node_value_arrs::clear_temp_reg_thread();
std::vector<double> scores(generated_phi.size()); std::vector<double> scores(generated_phi.size());
project_funcs::project_loss_no_omp(loss, generated_phi, scores.data()); project_funcs::project_loss_no_omp(loss_copy, generated_phi, scores.data());
std::vector<int> inds = util_funcs::argsort<double>(scores); std::vector<int> inds = util_funcs::argsort<double>(scores);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment