我正在使用运行在双处理器上的Java线程(Java 8)的多线程代码执行与NUMA(非统一内存访问)相关的研究:Intel(R)Xeon( R)CPU E5-2650 v2 @ 2.60GHz:
http://ark.intel.com/products/75269/Intel-Xeon-Processor-E5-2650-v2-20M-Cache-2_60-GHz
因此,在计算机体系结构方面,我将其中两个处理器配置为两个NUMA节点。 很难理解我的程序的线程映射到物理内核的位置。为了得出一些结论,我需要一种方法来理解我的程序的线程是否在执行期间在内核之间或套接字之间出现迁移现象。
有什么建议吗?谢谢你的帮助。
答案 0 :(得分:2)
Java Thread对象委托给OS的线程管理系统,因此确切的行为取决于操作系统。另外,OS通常不会将线程“映射”到核心,这将使处理器的使用效率低下。我不能说你的情况发生了什么,但我希望它很复杂。