Understanding how the LIM daemon detects cores, threads, and processors
Traditionally, the value of ncpus has been equal to the number of physical CPUs. However, most CPUs consist of multiple cores and threads, so the traditional 1:1 mapping is no longer useful.
- The number of processors
- Cores: the number of cores (per processor) * the number of processors (this is the ncpus default setting)
- Threads: the number of threads (per core) * the number of cores (per processor) * the number of processors
An EGO cluster administrator globally defines how ncpus is computed using the EGO_DEFINE_NCPUS parameter (instead of EGO_ENABLE_DUALCORE) in the ego.conf file (shared directory).

Although the ncpus computation is applied globally, it can be overridden on a per-host basis.
To correctly detect processors, cores, and threads, LIM daemons or services assume that all physical processors on a single machine are of the same type.
In cases where CPU architectures and operating system combinations may not support accurate processor, core, thread detection, LIM uses the defaults of 1 processor, 1 core per physical processor, and 1 thread per core. If LIM detects that is it is running in a virtual environment (for example, VMware, each detected processor is similarly reported (as a single-core, single-threaded, physical processor).