1#ifndef IRLBA_PARALLEL_HPP
2#define IRLBA_PARALLEL_HPP
8#ifndef IRLBA_CUSTOM_PARALLEL
9#include "subpar/subpar.hpp"
32template<
typename Task_,
class Run_>
34#ifndef IRLBA_CUSTOM_PARALLEL
36 subpar::parallelize_simple<true>(num_tasks, std::move(run_task));
38 IRLBA_CUSTOM_PARALLEL(num_tasks, run_task);
71 EigenThreadScope([[maybe_unused]]
int num_threads) : my_previous(Eigen::nbThreads()) {
72#ifdef IRLBA_CUSTOM_PARALLEL
73#ifdef IRLBA_CUSTOM_PARALLEL_USES_OPENMP
74 Eigen::setNbThreads(num_threads);
76 Eigen::setNbThreads(1);
79#ifdef SUBPAR_USES_OPENMP_SIMPLE
80 Eigen::setNbThreads(num_threads);
82 Eigen::setNbThreads(1);
92 Eigen::setNbThreads(my_previous);
Restrict the number of available threads for Eigen.
Definition parallel.hpp:58
EigenThreadScope(int num_threads)
Definition parallel.hpp:64
void parallelize(Task_ num_tasks, Run_ run_task)
Definition parallel.hpp:33