I'll give that a try.  Thanks Brice!

From: Brice Goglin <Brice.Goglin@inria.fr>
Reply-To: Hardware locality user list <hwloc-users@open-mpi.org>
Date: Wed, 27 Feb 2013 22:08:48 +0100
To: <hwloc-users@open-mpi.org>
Subject: Re: [hwloc-users] rebind subarray

Hello Rob,

That's exactly what set_area_membind() was meant for.

That said, you can only move entire pages (usually 4kbytes) to another domain. So you can only move half of your array if you array is larger than a single page.



You likely need something like this:

[... initialize the hwloc topology ... ]

hwloc_bitmap_t set = hwloc_bitmap_alloc();
hwloc_bitmap_only(set, N); /* where N is the number of the domain/numa-node where you want to move */
hwloc_set_area_membind(topology, buffer_start, buffer_length_in_bytes, set, HWLOC_MEMBIND_BIND, HWLOC_MEMBIND_MIGRATE);
hwloc_bitmap_free(set);


Brice



Le 27/02/2013 22:02, Aulwes, Rob a écrit :
Hi,

I'm running OpenMP tests and I see a slow down going from 8 to 16 threads.  I'm suspecting that the arrays I'm using are all allocated on a single NUMA domain, so that threads 9-15 encounter a slowdown when accessing those arrays, because they have to cross domains.  Suppose that I've allocated an array v[1..100].  Is it possible to use hwloc_set_area_membind_nodeset to reset a portion of the array to another domain?  That is, can I "move" v[51..100] to a different NUMA domain?

Thanks,Rob


_______________________________________________
hwloc-users mailing list
hwloc-users@open-mpi.orghttp://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users

_______________________________________________ hwloc-users mailing list hwloc-users@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users