Introducing parallelism into MT pre-translation
memoQ 10.6 introduces a performance improvement in MT-based pre-translation. This means you can now send multiple translation requests to the MT service at once.
Important things to know
While this new feature can enhance performance, it can also overload the memoQ server and the MT service(s) you’re using. It’s essential to understand the processing capabilities of both your and your MT vendor's infrastructure. It’s a good idea to consult with your MT vendors while configuring this new feature to make sure everything runs smoothly.
Overloading the memoQ server can cause issues, and flooding the MT provider's API with multiple requests might lead to temporary or even permanent denial of service.

With memoQ 10.6, you can configure parallelism in the pre-translation.
It can be controlled at two levels:
-
inside memoQ at MT-based pre-translation
-
outgoing translation requests from MT plugins to MT providers
For MT providers, managing outgoing translation requests is crucial. You can control this function from MT plugins based on the memoQ MT SDK or through memoQ TMS and the desktop app.

The pre-translation process gets faster because you can send parallel pre-translation requests at once. Source segments are sent in batches to the MT providers.
Here’s how it works:
The parallel processing occurs on two levels:
To control the maximum values for these levels, use:
-
for memoQ’s configuration files - PreTranslate.MT.ParallelismLevel
-
for online projects - MemoQ Server (GUI).exe.config and MemoQ Server.exe.config
How to read the above example?
-
The maximum number of documents and batches pre-translated in parallel is based on the square root of the PreTranslate.MT.ParallelismLevel value, rounded down (in our example, they are both 10).
-
If you set ParallelismLevel to 1, pre-translation will run as before (memoQ processes a single document at a time and sends batches one by one to the MT providers).
-
If you set ParallelismLevel to 0, parallelism is controlled by the .NET run time and memoQ doesn't limit it in any way.
-
If you enter an invalid value (any value that is not a non-negative integer), ParallelismLevel resets to the fallback value of 100.
-
The BatchSize parameter controls how many segments are in a batch. Its default value is 10.
Things to keep in mind
-
PreTranslate.BatchSize became configurable and is now independent from the batch size used in TM lookup and similar operations. It only controls MT-based pre-translation.
-
The MT plugin may not handle a high number of segments.
Online projects have a 1-minute timeout setting, so if you send too many parallel requests (from the memoQ desktop app, using MT/AIQE resources from a memoQ TMS online project), there is a chance that memoQ won’t get the answer from memoQ TMS in time, especially when the pre-translate requests have more than one selected MT provider and an AIQE provider. In such a case, decrease ParallelismLevel.
If ParallelismLevel is set too high, the MT service may throw an error (such as “Too many requests”), so when setting this value, consider how many concurrent requests your subscription plan allows.

In memoQ 10.6, each MT plugin's engine has a new property: MaxDegreeOfParallelism.
It controls how many concurrent batches the MT plugin lets through to the MT provider. We’ve carefully tested our plugins for optimal performance, so you’ll see specific values for memoQ-owned plugins:
-
MemoQ.MicrosoftMTEx: 30
-
MemoQ.AmazonMT: 20
-
MemoQ.DeepLMT: 30
-
MemoQ.SystranMT: 10
-
MemoQ.GoogleAdvancedMT: 30
-
MemoQ.GoogleMT: 30
Provider-owned plugins have a MaxDegreeOfParallelism value of 1, until the MT providers reviewand update their plugins.
This value is also saved in the corresponding MT settings resource (.mqres) file. If there are more MT providers configured in a resource, each one can have different values.The default MaxDegreeOfParallelism values in the .mqres file are provider suggestions, users can change them for each MT settings resource – this can make sense if their own subscription plans allow for higher throughput. If a user has multiple subscriptions for an MT provider, they can set them up with different MaxDegreeOfParallelism values in different MT settings resources.
Here’s where to find .mqres files:
-
local resources: %PROGRAMDATA%\MemoQ\Resources\Local\MTSettings\
-
online resources on server: %PROGRAMDATA%\MemoQ Server\Resources\Local\MTSettings\
-
local copies of online resources in checked-out online projects: %PROGRAMDATA%\MemoQ\Resources\Remote\[server name]\MTSettings\
After making manual changes to MaxDegreeOfParallelism values in online resources, remember to restart memoQ to apply them.
Even if MaxDegreeOfParallelism is set to 1 for an MT plugin (or it is the default value because the MT provider didn’t update the plugin yet), you can change it in the MT settings resource, and pre-translation will run in parallel:
Things to keep in mind
-
When an MT provider updates their plugin, and it is released in a new memoQ version, installing the update won’t affect previously created MT settings resources. The MaxDegreeOfParallelism value stays the same. But MT settings resources created with the new memoQ version will have the new default value. See more details in the What should you do? section.
-
If the MT plugin can’t handle parallel pre-translation, always keep this setting’s value at 1.
-
If there is no MaxDegreeOfParallelism value in the .mqres file, the plugin will use its MT engine’s default value.

ParallelismLevel controls how many batches memoQ sends to the MT plugins at one time (from all the documents being processed concurrently). MaxDegreeOfParallelism controls how many batches the respective MT plugin processes at one time.

The parallelism function implies risks to memoQ's stability and the health of MT services and their memoQ integration.
This is why:
-
memoQ users can use parallelism only through config files, there’s no GUI for this
-
we are communicating these functions and the implied risks to MT providers
-
we allow MT providers have some control over it: they can specify a MaxDegreeOfParallelism value in their respective MT plugins

memoQ-owned MT plugins
For MT plugins developed and maintained by memoQ, we run thorough tests and calibrate a reasonably good and stable performance that already multiplies the pre-translation performance of the given MT service in versions 10.6 and up.
As of memoQ 10.6.8 (2024.03.27), the MaxDegreeOfParallelism values for our MT plugins are:
-
MemoQ.MicrosoftMTEx: 30
-
MemoQ.AmazonMT: 20
-
MemoQ.DeepLMT: 30
-
MemoQ.SystranMT: 10
-
MemoQ.GoogleAdvancedMT: 30
-
MemoQ.GoogleMT: 30
Provider-owned MT plugins
Each MT provider needs to check and update their plugins. We are contacting them and will provide help.

-
To use parallelism in MT-based pre-translation
If you install memoQ 10.6 or the newer version, you’ll find everything pre-configured.
But if you’re upgrading from an older version, here’s what to do:
-
Add the PreTranslate.MT.ParallelismLevel and PreTranslate.BatchSize keys to the three config files listed in the How to control parallelism in memoQ? section.
-
Add the MaxDegreeOfParallelism key to each MT settings resource as described in the Managing parallelism in MT plugins section, or recreate MT settings resources. Resources created in memoQ 10.6 already contain the MaxDegreeOfParallelism key.
-

After the configuration is done, you can start optimizing your MT pre-translation configuration (for each engine you use).
Play around with all three parameters:
-
PreTranslate.BatchSize
-
PreTranslate.MT.ParallelismLevel
-
MaxDegreeOfParallelism