AUTH's THMMY "Parallel and distributed systems" course assignments.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- /**
- * \file v1.hpp
- * \brief
- *
- * \author
- * Christos Choutouridis AEM:8997
- * <cchoutou@ece.auth.gr>
- */
-
- #include "v1.hpp"
-
- /*!
- * \fn void init_workers()
- *
- * Initialize worker settings
- */
- void init_workers() {
- #if defined CILK
- size_t cilk_w = __cilkrts_get_nworkers();
-
- if (!session.max_threads)
- session.max_threads = (session.slices) ? (session.slices) : cilk_w;
- // else if (session.max_threads < cilk_w)
- // __cilkrts_set_param("nworkers", "4");
- // else ignored by cilk
-
- #elif defined OMP
- // omp_set_dynamic(1);
- size_t omp_w = (size_t)omp_get_max_threads();
-
- if (!session.max_threads) {
- session.max_threads = (session.slices) ? (session.slices) : omp_w;
- // omp_set_dynamic(1);
- }
- else if (session.max_threads < omp_w) {
- // omp_set_dynamic(0);
- omp_set_num_threads(session.max_threads);
- }
- // else ignored by omp
-
- #elif defined PTHREADS
- size_t pth_w = std::thread::hardware_concurrency();
-
- if (!session.max_threads)
- session.max_threads = (session.slices) ? (session.slices) : pth_w;
- #else
-
- #endif
- if (!session.slices)
- session.slices = session.max_threads;
-
- openblas_set_num_threads(1); // Limit OpenBLAS to 1 thread
- }
|