CGCL-codes / HME

HME a hybrid memory emulator for studying the performance and energy characteristics of upcoming NVM technologies. HME exploits features available in commodity NUMA architectures to emulate two kinds of memories: fast, local DRAM, and slower, remote NVM on other NUMA nodes. HME can emulates a wide range of NVM latencies and bandwidth by injecting different memory access delay on the remote NUMA nodes. To facilitate programmers and researchers in evaluating the impact of NVM on the application performance, a high-level programming interface is also provided to allocate memory from NVM or DRAM nodes.
48 stars 18 forks source link

Can we change the memory capacity that we simulate? #2

Open hkundnani opened 5 years ago

hkundnani commented 5 years ago

Since the capacity of NVRAM can be larger than the DRAM. Can we set the NVM to be larger than the DRAM when we do the simulation?

Gumi-presentation-by-Dzh commented 5 years ago

Unfortunately, HME can not change the memory size through its own interface. The HME simulation method is to add delay to the current memory access to implement NVM delay simulation.

If you need to make the DRAM smaller to simulate a scenario where the NVM is larger than the DRAM, you can use the Linux hot swap or set the memory remaining in the boot parameter.

hkundnani commented 5 years ago

If I change the DRAM size at boot parameter, suppose I change the DRAM size to 1GB from 8GB, wouldn't HME then consider that my system has only 1GB RAM and in hybrid mode (DRAM + NVM) it would just use that 1GB between NVM and DRAM instead of allocating 1GB DRAM and rest 6GB NVM

Gumi-presentation-by-Dzh commented 5 years ago

It will not happen in HME which is based on NUMA.

So back to your situation," Change the DRAM size to 1 GB from 8GB", which NUMA node DRAM did you change? Let's assume that you change the DRAM size on node0 to 1GB from 8GB, then you will get 1GB DRAM and node1 size NVM in HME. Basically, NVM size or DRAM size in HME is equal the size you can use on NUMA node0 or node1.

If you want to simulate where the NVM is larger than then DRAM , make use change the DRAM size on NUMA node0 through boot parameter.