Calibre
What’s the main difference between Multi-threaded and MTFlex modes
2023-07-03T10:18:09.000-0400
IC Verification & Signoff
Summary
The differences between Multi-threaded and MTFlex modes, license consumption, and speed
Details
Multi-Threaded processing is a generic term for distributing jobs across multiple CPUs using one of the following options:
1. Multi-threaded (MT) mode uses multiple CPUs on the same host, it executes threads on CPUs that share memory, referred to as local CPUs, and is enabled through the -turbo command line option.
2. Calibre MTflex functionality provides a parallel processing architecture for running Multithreaded (MT) Calibre tools on distributed networked computers. MTflex mode uses multiple CPUs on a network of hosts executes threads on CPUs that do not share memory, referred to as remote CPUs, and is enabled with the -remote or remote file command line option.
More information about other modes you can find in Calibre Administrator's Guide. Also, please refer to the following app notes:
MG575554 “Calibre execution modes: From Multi-Threading to Hyper Remote”
How the licenses are calculated for multithreaded runs?
A license consumption formula is used by applicable Calibre tools to determine the number of licenses needed for a multithreaded Calibre job (MT, MTFlex).
Below is shown the formula used to calculate the number of licenses required by most Calibre tools when run in multithreaded mode. The number of licenses required is based on the number of CPUs (>1) that are used to run the job. The resulting value is truncated to the nearest integer.
Standard Multithreaded License Requirements Formula:
Some Calibre products have different licensing requirements, which are described on the respective product license reference pages.
For MTflex applications, the CPUs on the primary (master) machine often do not factor into the count in the “Running on N CPUs” line because they are used for data management purposes only, not layer operations. The CPUs on the primary typically process only the data generated by the remote CPUs, which always are considered “running” CPUs.
If the primary machine is overdriven, then some or all of its CPUs are used for runtime data generation in addition to the data management services they perform. Such CPUs are counted toward the total processor count for the run.
Which is typically faster, Multithread or MTflex in general?
This depends on several factors (design/rule file/machines). The KB article: MG542506 has more details about the runtime with different modes.