numa

How to make Java application use all CPU groups

血红的双手。 提交于 2021-02-19 08:44:04
问题 I am running a java application on Intel(R) Xeon(R) machine which has 72 CPUs (with Hyperthreading on). Since, Microsoft groups CPUs into two groups if there are more than 64 CPUs, the java application uses only 1 group (or in other words 36 CPUs). See the snapshots below for the grouping and CPU usage details. As we can see, the java application is using 36 CPUs at capacity but not able to use other CPUs. I added +UseNUMA in JVM parameters but it did not work. Does anyone know of JVM option

Spreading OpenMP threads among NUMA nodes

陌路散爱 提交于 2021-02-10 04:16:51
问题 I have a matrix spread among four NUMA-node local memories. Now I want to open 4 threads, each one on a CPU corresponding to a different NUMA-node, so that each thread can access its part of the matrix as fast as possible. OpenMP has the "proc_bind(spread)" option, but it puts the threads on the same NUMA-node, but on far apart CPUs. How can I force the threads to bind to different NUMA nodes? Or, if that is not possible: When I use all cores on all nodes (256 threads total), I know how to

Java uses only 1 of 2 CPU with NUMA (Neo4J)

眉间皱痕 提交于 2020-12-31 04:36:18
问题 I’m working on a java program to create a really large Neo4J database. I use the batchinserter and Executors.newFixedThreadPool to speed things up. My Win2012R2 server has 2 cpu’s (2x6 Cores + 2x6 Hyper-threads) and 256GB in NUMA architecture . My problem is now, that my importer only uses 1 CPU (Node). Is it possible to use both NUMA-Nodes with only one javaprocess? Javaoptions: -XX:+UseNUMA -Xmx64g -Xms64g 回答1: It isn't clear how much memory is assigned to each node - is it 256GB or 128GB?

Java uses only 1 of 2 CPU with NUMA (Neo4J)

一曲冷凌霜 提交于 2020-12-31 04:34:50
问题 I’m working on a java program to create a really large Neo4J database. I use the batchinserter and Executors.newFixedThreadPool to speed things up. My Win2012R2 server has 2 cpu’s (2x6 Cores + 2x6 Hyper-threads) and 256GB in NUMA architecture . My problem is now, that my importer only uses 1 CPU (Node). Is it possible to use both NUMA-Nodes with only one javaprocess? Javaoptions: -XX:+UseNUMA -Xmx64g -Xms64g 回答1: It isn't clear how much memory is assigned to each node - is it 256GB or 128GB?

Fail to query via move_pages()

馋奶兔 提交于 2020-01-30 01:07:07
问题 #include <cstdint> #include <iostream> #include <numaif.h> #include <sys/mman.h> #include <fcntl.h> #include <errno.h> #include <unistd.h> #include <string.h> #include <limits> int main(int argc, char** argv) { const constexpr uint64_t size = 16lu * 1024 * 1024; const constexpr uint32_t nPages = size / (4lu * 1024 * 1024); int32_t status[nPages]; std::fill_n(status, nPages, std::numeric_limits<int32_t>::min()); void* pages[nPages]; auto fd = shm_open("test_shm", O_RDWR|O_CREAT, 0666); void*

Using move_pages() to move hugepages?

守給你的承諾、 提交于 2020-01-23 17:19:28
问题 This question is for: kernel 3.10.0-1062.4.3.el7.x86_64 non transparent hugepages allocated via boot parameters and might or might not be mapped to a file (e.g. mounted hugepages) x86_64 According to this kernel source, move_pages() will call do_pages_move() to move a page, but I don't see how it indirectly calls migrate_huge_page(). So my questions are: can move_pages() move hugepages? if yes, should the page boundary be 4KB or 2MB when passing an array of addresses of pages? It seems like

How do I know if my server has NUMA?

两盒软妹~` 提交于 2020-01-22 05:21:10
问题 Hopping from Java Garbage Collection, I came across JVM settings for NUMA. Curiously I wanted to check if my CentOS server has NUMA capabilities or not. Is there a *ix command or utility that could grab this info? 回答1: I'm no expert here, but here's something: Box 1, no NUMA: ~$ dmesg | grep -i numa [ 0.000000] No NUMA configuration found Box 2, some NUMA: ~$ dmesg | grep -i numa [ 0.000000] NUMA: Initialized distance table, cnt=8 [ 0.000000] NUMA: Node 4 [0,80000000) + [100000000,280000000)