You are here: 25 NUMA and Moab > Using NUMA-Aware with Moab

25.1 Using NUMA-Aware with Moab

This chapter introduces NUMA-aware scheduling and identifies Moab-, Torque-, and MAM-related functions.

NUMA-aware scheduling is available with Moab Workload Manager 9.0 and later and requires Torque Resource Manager 6.0 and later.

In this chapter:

25.1.1 NUMA Process

The following image provides an example of the NUMA process.

Click to enlarge

25.1.2 Installation and Configuration

Moab does not require any special installation or configuration processes to support NUMA-aware with Torque.

25.1.3 Moab and NUMA Resources

Moab uses generic resources to natively understand the concept of "socket", "numanode", "core" and "thread". The msub/qsub "-L" syntax for job submissions lets you request placement or allocation of these specific resources.

See 25.2 -L NUMA Resource Request for more information on using the -L syntax.

For the -L syntax, submit using qsub unless your system requires submissions using msub.

Moab does not require a configuration change to support NUMA-aware scheduling (no new Moab configuration parameters). However, you may need to increase MAXGRES to accommodate the additional resources. See MAXGRES.

When using NUMA-aware, the following occurs:

  1. Moab imports NUMA resources from Torque and treats them as a special case of generic resources.
  2. When a job requests a NUMA resource, such as a socket or numanode, Moab will schedule exclusive access to those resources for the job. If exclusive access to the NUMA resource is not available on a particular node, Moab will look for another node or schedule the job out into the future if no resources are available at the time.

25.1.3.A Balanced Resources

Moab assumes that the NUMA resources on a particular node are balanced. This means that each socket has the same amount of resources, including numanodes, cores, threads, memory, and gpus.

Moab supports advanced multi-req resource requests within the same job using the msub/qsub "-L" syntax.

In addition, any job that requests NUMA resources will receive a per-task default memory requirement if a memory requirement is not specified by the user. .

25.1.3.B Job Recommendations

Adaptive Computing provides these recommendations for jobs:

25.1.4 Track Dedicated NUMA Resources

If Moab Accounting Manager is part of your configuration, you can configure MAM to track dedicated NUMA resources ( sockets, numanodes, cores, threads).

As the MAM Admin, run the commands for the individual resources you wish to track. The follow example shows the commands for all of the available resources.

[mam]$ mam-shell Attribute Create Object=UsageRecord Name=Sockets DataType=Integer Description="\"Number of Sockets Dedicated\""
[mam]$ mam-shell Attribute Create Object=UsageRecord Name=NumaNodes DataType=Integer Description="\"Number of Numa Nodes Dedicated\""
[mam]$ mam-shell Attribute Create Object=UsageRecord Name=Cores DataType=Integer Description="\"Number of Cores Dedicated\""
[mam]$ mam-shell Attribute Create Object=UsageRecord Name=Threads DataType=Integer Description="\"Number of Threads Dedicated\""

NUMA resources are only reported to MAM when they are dedicated to the job. As you can specify the placement rules (the NUMA resources that are dedicated), it is not recommended to charge for any NUMA resources; use Processors instead.

© 2017 Adaptive Computing