NUMA系统上的多线程程序共享变量

时间:2014-12-17 13:23:20

标签: c linux linux-kernel pthreads numa

我正在对NUMA系统进行一些实验。我在多线程/双线程c程序中共享一个缓存行(int64)变量。当我在同一节点上运行两个线程时,程序比在两个不同的NUMA节点上运行/绑定这些线程花费的时间多出近50%。我认为它应该是另一种方式,因为它们共享数据,如果它们在同一节点上运行,它们应该更快完成。

我在这里遗漏了什么吗?

  pthread_mutex_lock (&shared_mutex);
  if (thinfo->thread_num == 1)
    shared_var++;
  else
    shared_var--;
  pthread_mutex_unlock (&shared_mutex);

0 个答案:

没有答案