[Prev] Thread [Next] |
[Prev] Date [Next]
Re: Thread Affinity - posix vs. cocoa threads
Wed Jul 16 05:03:02 2008
Am 08.07.2008 um 21:35 schrieb George Warner:
On Tue, 8 Jul 2008 15:05:58 +0200, Markus Stürmer
<[EMAIL PROTECTED]> wrote:
Currently I'm investigating codes that try exploiting the shared
caches of the Core2 architecture.
As I want use my codes also on other systems, I'm usually programming
in C++ using posix threads. Therefore I cannot use the
thread affinity interface the recommended way of first creating an
NSThread in Cocoa and setting its affinity tag before actually
I can only start my threads first using pthread_create and can set
their affinity afterwards, hoping that the OS finds it appropriate to
schedule or migrate the threads the way I like them.
So use the thread_policy_get/thread_policy_set API:
I _do_. I don't even know another possibility on MacOS (and only with
But with pthreads, I can only spawn a thread without affinity (I
think this is the default) and set its affinity tag when it is
already running. As it seems, setting the thread affinity will not
make Leopard migrate threads with the same affinity tag to the same
die (i.e. shared cache), at least not in reasonable time.
If one wants a thread to already have some affinity information when
it starts executing, one has to use Cocoa (as far as I understand),
and this is well described in the documentation you have cited.
However, pthreads aren't even mentioned there — perhaps the affinity
API just doesn't work well for threads already executing.
Schizophrenic Optimization Scientist
Apple Developer Technical Support (DTS)
Do not post admin requests to the list. They will be ignored.
Mt-smp mailing list ([EMAIL PROTECTED])
Help/Unsubscribe/Update your Subscription:
This email sent to [EMAIL PROTECTED]