Как изучить влияние NUMA в алгоритмах Java
Я изучаю некоторые коды в Java (алгоритм SOR и LU факторизация). Основная цель - изучить влияние выполнения таких алгоритмов в архитектуре с поддержкой NUMA. Я уже нашел некоторые инструменты, такие как numactl, и другие переменные окружения. Такие как: GOMP_CPU_AFFINITY (GCC) и KMP_AFFINITY (ICC) для закрепления потоков на ядрах с использованием тех же алгоритмов на C. Однако я не знаю, какие у меня есть альтернативы для изучения NUMA на Java. Для Java я использую только numactl с повышением производительности, используя флаг --interleave=all, но на самом деле я не контролирую, что происходит на уровне JVM.
Я нашел другой инструмент, называемый numastat, который должен измерять "счетчики NUMA" в архитектуре NUMA и знать, какие выделения были "hit" (numa_hit) и "miss" (numa_miss) в NUMA-узле. Однако я не уверен, как я могу использовать его для измерения этих счетчиков с моим Java-приложением. Какие тесты (и методы программирования) я должен выполнить, чтобы изучить влияние NUMA в приложениях Java?
Спасибо за вашу помощь.