我正在研究一个NUMA架构,其中每个计算节点有 2 个套接字和 4 个内核,计算节点总共有 8 个内核,每个节点有 24GB 的 RAM。我必须证明设置处理器亲和性会对性能产生重大影响。
您是否有任何程序建议我可以用作基准来显示使用处理器亲和性之间的影响差异?我也可以使用 MPI、OpenMP 或 pthreads 编写一个简单的 C 测试程序,但是什么操作最适合进行该测试?它必须能够利用缓存局部性,但也会触发上下文切换(阻塞操作),因此进程可能会迁移到另一个核心,或者更糟的是,迁移到另一个套接字。它必须在 8 个内核的倍数上运行。