首页 > 解决方案 > Jit Compiler 是否了解 NUMA 架构?

问题描述

目前,我一直在 Windows Google Compute Engine VM 上测试我的高性能计算并行算法。但是,Google 虚拟机(可能还有大多数虚拟机)不能正确提供物理主机的“真正”NUMA 架构。(例如,如果物理主机有 2 个 CPU 插槽、8 个 CPU 核心/插槽和每个 CPU 核心 2 个超线程,则虚拟机会简单而错误地报告 - 根据我的侦探工作 - 有 32 个 CPU 核心来自单插槽....它还会报告每个 CPU 内核的 L1/L2 缓存的“奇怪”结果,因为它会“双重计数”等)

无论如何,关键问题是:JIT 编译器是否利用了所有这些 NUMA 架构信息,特别是在使用 jdk8 并行流期货时,例如“收集器”?(例如,尝试在收集器协议中首先对芯片上彼此“接近”的线程执行“组合”步骤,然后再处理“远”的线程(例如在不同的 CPU 插槽上)彼此远离。(此外,基于真正的 L2 缓存大小等,基于真正的 L2 缓存大小等以某种方式提取数据会更有意义。)我假设这是JIT 与 C++ 等静态编译语言相比的主要优势,如果我是对的,那么当我们在“非 VM”计算机上测试我们的代码时,

标签: javajitnuma

解决方案


推荐阅读