Skip to content

Commit e38ab07

Browse files
authored
Fix OpenMP thread counting returning places rather than cores
1 parent 9feaaa3 commit e38ab07

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

driver/others/memory.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,11 @@ int get_num_procs(void) {
249249

250250
#if defined(USE_OPENMP)
251251
#if _OPENMP >= 201511
252+
int i,n;
253+
n = 0;
252254
ret = omp_get_num_places();
253-
if (ret >0 ) nums = ret;
255+
if (ret > 0) for (i=0; i<ret;i++) n+= omp_get_place_num_procs(i);
256+
if (n > 0) nums = n;
254257
#endif
255258
return (nums > 0 ? nums : 2);
256259
#endif
@@ -1820,8 +1823,11 @@ int get_num_procs(void) {
18201823
#if defined(USE_OPENMP)
18211824
/* if (omp_get_proc_bind() != omp_proc_bind_false) */
18221825
#if _OPENMP >= 201511
1826+
int i,n;
1827+
n = 0;
18231828
ret = omp_get_num_places();
1824-
if (ret >0 ) nums = ret;
1829+
if (ret > 0) for (i=0;i<ret;i++) n+= omp_get_place_num_procs(i);
1830+
if (n > 0) nums = n;
18251831
#endif
18261832
return (nums > 0 ? nums :2);
18271833
#endif

0 commit comments

Comments
 (0)