35 using namespace internal;
37 ComputationManager::ComputationManager()
41 ComputationManager::~ComputationManager()
45 void ComputationManager::num_data(
index_t n)
57 job_array.push_back(job);
60 void ComputationManager::compute_data_parallel_jobs()
64 result_array.resize(job_array.size());
65 for (
size_t j=0; j<job_array.size(); ++j)
66 result_array[j].resize(data_array.size());
74 #pragma omp parallel for 75 for (int64_t i=0; i<(int64_t)data_array.size(); ++i)
81 std::vector<float32_t> current_data_results(job_array.size());
82 for (
size_t j=0; j<job_array.size(); ++j)
84 const auto& compute_job=job_array[j];
85 current_data_results[j]=compute_job(data_array[i]);
89 for (
size_t j=0; j<current_data_results.size(); ++j)
90 result_array[j][i]=current_data_results[j];
95 void ComputationManager::compute_task_parallel_jobs()
99 result_array.resize(job_array.size());
100 for (
size_t j=0; j<job_array.size(); ++j)
101 result_array[j].resize(data_array.size());
112 for (
size_t j=0; j<job_array.size(); ++j)
114 const auto& compute_job=job_array[j];
116 for (
size_t i=0; i<data_array.size(); ++i)
117 result_array[j][i]=compute_job(data_array[i]);
122 void ComputationManager::done()
125 result_array.resize(0);
128 std::vector<float32_t>& ComputationManager::result(
index_t i)
130 return result_array[i];
133 ComputationManager& ComputationManager::use_gpu()
139 ComputationManager& ComputationManager::use_cpu()
all of classes and functions are contained in the shogun namespace