X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0386b99694ba4c3ab18048e7a57d46bc34201bfb..4cebfd8d6fe0ba78ca3aa3a08df69eeebf290793:/src/xbt/parmap.c?ds=sidebyside diff --git a/src/xbt/parmap.c b/src/xbt/parmap.c index 1b0ab3d793..b5d9025ff2 100644 --- a/src/xbt/parmap.c +++ b/src/xbt/parmap.c @@ -128,12 +128,23 @@ xbt_parmap_t xbt_parmap_new(unsigned int num_workers, e_xbt_parmap_mode_t mode) /* Create the pool of worker threads */ xbt_parmap_thread_data_t data; parmap->workers[0] = NULL; +#ifdef CORE_BINDING + unsigned int core_bind = 0; +#endif for (i = 1; i < num_workers; i++) { data = xbt_new0(s_xbt_parmap_thread_data_t, 1); data->parmap = parmap; data->worker_id = i; parmap->workers[i] = xbt_os_thread_create(NULL, xbt_parmap_worker_main, data, NULL); +#ifdef CORE_BINDING + xbt_os_thread_bind(parmap->workers[i], core_bind); + if(core_bind!=xbt_os_get_numcores()){ + core_bind++; + } else { + core_bind = 0; + } +#endif } return parmap; }