From c2b45dd78ff3b1703460e2ee75f0386b9ef60f2e Mon Sep 17 00:00:00 2001 From: Martin Reinecke <martin@mpa-garching.mpg.de> Date: Mon, 4 Nov 2019 20:01:22 +0100 Subject: [PATCH] cosmetics --- gridder_cxx.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gridder_cxx.h b/gridder_cxx.h index fda6c19..5feb416 100644 --- a/gridder_cxx.h +++ b/gridder_cxx.h @@ -1570,6 +1570,15 @@ size_t getIdxSize(const Baselines &baselines, return res; } +void calc_share(size_t nshares, size_t myshare, size_t nwork, size_t &lo, + size_t &hi) + { + size_t nbase = nwork/nshares; + size_t additional = nwork%nshares; + lo = myshare*nbase + ((myshare<additional) ? myshare : additional); + hi = lo+nbase+(myshare<additional); + } + void fillIdx(const Baselines &baselines, const GridderConfig &gconf, const const_mav<bool,2> &flags, int chbegin, int chend, double wmin, double wmax, mav<idx_t,1> &res) @@ -1589,14 +1598,12 @@ void fillIdx(const Baselines &baselines, vector<idx_t> acc(nbu*nbv+1, 0); vector<idx_t> tmp(nrow*(chend-chbegin),~idx_t(0)); -#pragma omp parallel +#pragma omp parallel num_threads(gconf.Nthreads()) { idx_t nthr = my_num_threads(); idx_t id = my_thread_num(); - idx_t nbase = nrow/nthr; - idx_t additional = nrow%nthr; - idx_t lo = id*nbase + ((id<additional) ? id : additional); - idx_t hi = lo+nbase+(id<additional); + size_t lo, hi; + calc_share(nthr, id, nrow, lo, hi); vector<idx_t> lacc(nbu*nbv+1, 0); for (idx_t irow=lo, idx=lo*(chend-chbegin); irow<hi; ++irow) -- GitLab