Skip to main content
Skip table of contents

Multi-threading

Modern microcomputer architectures pack more and more CPU cores into a single package or integrated circuit. For practical purposes, each CPU core behaves like an independent CPU. In addition, Intel Xeon CPUs and AMD Opteron CPUs are frequently assembled into multi-CPU servers.

Normally, a computer application runs as a single thread or unit of execution. A single thread can utilize only one CPU core. Multi-threading is a technique for distributing the processing load among several CPUs or CPU cores that share common memory. By distributing work among multiple threads, a properly-coded computer application can split a task into several parts, and assign each part to a different CPU core, thus achieving better overall throughput.

How does it work?

Data Management takes advantage of multi-processor configurations to increase the throughput of a Data Management project by dividing the task into threads. Each thread is an independent execution unit that can be mapped onto a CPU, core by the operating system. Data Management dynamically maps each thread onto a tool that is ready to do some work, assigning CPU resources to individual tools as needed. Data Management will also utilize additional threads to run some computationally-intensive tasks such as sorting and compressing data in parallel, for additional throughput.

Configuring threads

The more threads that can be marshaled to work on your Data Management project, the faster it will run, but only to a point. Generally, having more threads than CPU cores doesn't help, and can even slow down processing. In addition, the number of available CPU cores may be limited by your license. Each site (or cluster of Execution Servers) has a total CPU core limit controlled by your license key. This can vary between computers. For example,  you may have some four-core servers and some eight-core, all of which will attempt to check out licenses from the Site Server for the desired number of CPU cores.

In order to set the number of threads appropriately, you should set the Maximum threads for each Execution Server to be equal to the total number of CPU cores. (See Configuring Machine Settings for details.) Doing this for each Execution Server means that your projects will use an appropriate number of threads no matter where they are run.

CPU-core licensing

Generally, workstation licenses are limited to two CPU cores, and server cluster licenses have the total number of CPU cores set according to the number of CPU core licenses purchased by your organization. Contact your Data Management sales representative to determine which licenses are right for your environment.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.