我是NUMA感知多線程編程的新手。我正在編寫我的代碼,以便所有線程及其內存分配都被限制在一個節點上。在節目的一開始,我提出以下電話:如何限制所有內存分配到一個NUMA節點
struct bitmask *bm = numa_parse_nodestring("0");
if (bm == 0) {
exit(1);
}
numa_bind(bm);
我的理解是,一個電話這種方式將綁定所有線程和內存分配到numa_bind到節點0
而且,當
pthread_setaffinity_n
然而,當我查看/ proc // numa_maps,我仍然可以看到,某些庫(如libc中)被綁定到:我從這個代碼開始並行線程,我用它們綁定到特定CPU節點1上的內存。我怎樣才能確保所有的內存需求紅色由進程綁定到節點0?