> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MultiProcessingModeEnum

<Note>
  This enum is implemented in FRE for Linux and Windows.
</Note>

MultiProcessingModeEnum enumeration constants specify the mode of processing multi-page documents using multiple CPU cores.

```
typedef enum {
 MPM_Sequential,
 MPM_Auto,
 MPM_Parallel
} MultiProcessingModeEnum;
```

## Elements

| Name              | Description                                                                                                                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MPM\\\_Auto       | The number of processes is detected automatically. If only one page is processed or there is only one processor in the system, one process is used. Otherwise, parallel processing is used. |
| MPM\\\_Parallel   | Pages of a document are always processed in parallel processes.                                                                                                                             |
| MPM\\\_Sequential | Pages of a document are processed sequentially in one process.                                                                                                                              |

## Remarks

When parallel processing is used, the actual number of processes which is run depends on the value of the [IMultiProcessingParams::RecognitionProcessesCount](/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams#recognitionprocessescount) property.

If the value of the IMultiProcessingParams::RecognitionProcessesCount property is 0, the number of processes is equal to the minimum of the following values:

* number of available CPU cores,
  * For Windows, this includes physical or logical CPU cores anddepends on the value of the [IMultiProcessingParams::UseOnlyPhysicalCPUCores](/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams#useonlyphysicalcpucores) property
* number of free CPU cores available in the license,
* number of pages in the document.

If the value of the IMultiProcessingParams::RecognitionProcessesCount property is not 0, the number of processes is equal to the minimum of the following values:

* the value of the RecognitionProcessesCount property,
* number of free CPU cores available in the license,
* number of pages in the document.

The results of processing the same document in parallel processes and in a single process may be different. This is due to the fact that not all information which is used during processing can be shared between different processes.

The distribution among CPU cores is available for the following methods:

* the [AddImageFile](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefile-method), [AddImageFileFromMemory](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefrommemory-method), [AddImageFileFromStream](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilefromstream-method), [AddImageFileWithPassword](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpassword-method), [AddImageFileWithPasswordCallback](/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpasswordcallback-method), [Preprocess](/fine-reader/engine/api-reference/document-related-objects/frdocument/preprocess-method), [PreprocessPages](/fine-reader/engine/api-reference/document-related-objects/frdocument/preprocesspages-method), [Analyze](/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method), [AnalyzePages](/fine-reader/engine/api-reference/document-related-objects/frdocument/analyzepages-method), [Recognize](/fine-reader/engine/api-reference/document-related-objects/frdocument/recognize-method), [RecognizePages](/fine-reader/engine/api-reference/document-related-objects/frdocument/recognizepages-method), [Process](/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method), [ProcessPages](/fine-reader/engine/api-reference/document-related-objects/frdocument/processpages-method), [Export](/fine-reader/engine/api-reference/document-related-objects/frdocument/export-method), [ExportPages](/fine-reader/engine/api-reference/document-related-objects/frdocument/exportpages-method), [ExportToMemory](/fine-reader/engine/api-reference/document-related-objects/frdocument/exporttomemory-method) methods of the [FRDocument](/fine-reader/engine/api-reference/document-related-objects/frdocument) object

* the [InjectTextLayer](/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/injecttextlayer-method), [RecognizeImageFile](/fine-reader/engine/api-reference/engine-object-iengine-interface/processing-methods/recognizeimagefile-method) methods of the [Engine](/fine-reader/engine/api-reference/engine-object-iengine-interface) object

## Used in

[IMultiProcessingParams::MultiProcessingMode](/fine-reader/engine/api-reference/parameter-objects/multiprocessingparams#multiprocessingmode)
