307
Bandwidth Requirements
The maximum available persistent memory bandwidth depends on the number of
channels populated with a persistent memory module. A fully populated system works
well for a workload with a high bandwidth requirement. Partially populated systems
can be used for workloads that are not as memory latency sensitive. Refer to the server
documentation for population guidelines.
BIOS Options
With the introduction of persistent memory into server platforms, many features and
options have been added to the BIOS that provide additional tuning capabilities. The
options and features available within the BIOS vary for each server vendor and persistent
memory product. Refer to the server BIOS documentation for all the options available;
most share common options, including:
• Ability to change power levels to balance power consumption and
performance. More power delivered to persistent memory can
increase performance
• Enable or disable persistent memory–specific features
• Tune latency or bandwidth characteristics of persistent memory
Optimizing the Software for Persistent Memory
There are many ways to optimize applications to use persistent memory efficiently and
effectively. Each application will benefit in different ways and will need to have code
modified accordingly. This section describes some of the optimization methods.
Guided Data Placement
Guided data placement is the most common avenue for optimizing volatile workloads
on a persistent memory system. Application developers can choose to allocate a data
structure or object in DRAM or persistent memory. It is important to choose accurately
because allocating incorrectly could impact application performance. This allocation
is usually handled via specific APIs, for example, the allocation APIs available in the
Persistent Memory Development Kit (PMDK) and memkind library.
Chapter 15 profiling and performanCe
Précédent

- 331/457

Suivant