База знаний

Номер статьи: 1426 | Категория: Общие вопросы | Тип: Вопрос/Ответ | Последнее обновление: 27.02.2014

Распараллеливание обработки

Описание

Как распределяется работа между Станциями Обработки? Разбивается ли пакет на несколько Станций или ядер? Разбивается ли задание?

Решение

Распределение работы между Станциями Обработки осуществляется по задачам (подробнее о задачах можно прочитать в этой статье). Одна задача не может выполняться на разных Станциях. Но одна Станция может выполнять несколько задач, если у нее несколько ядер.

В зависимости от задачи, она может выполняться одновременно несколькими ядрами. Возможность распараллеливания по ядрам обработки пакета на определенном этапе определяется свойствами проекта/типа пакета (наличием определений документа с многостраничными гибкими шаблонами). Для разных типов установки ABBYY FlexiCapture распределение обработки по Станциям, а затем и по ядрам Станции осуществляется по-разному.

ABBYY FlexiCapture Standalone

Задания импорта, распознавания и экспорта выполняются той Станцией, на которой они были запущены пользователем. При этом задачи импорта и экспорта ВСЕГДА выполняются на одном ядре процессора.

Распознавание пакета документов может выполняться параллельно на разных ядрах Станции (при условии, что их несколько), если проект/тип пакета не содержит опубликованных определений документа с многостраничными гибкими описаниями, а также, когда пакет разделен на документы во время импорта (например, на Станции Сканирования). В этом случае пакет делится на порции примерно по 10 изображений в каждой (если пакет уже разделен на документы, то в каждой порции может быть немного больше/меньше, чем 10 изображений; основное условие – целое число документов в порции), которые распределяются по доступным ядрам Станции.

Если проект/тип пакета содержит опубликованные определения документа с многостраничными гибкими шаблонами и при этом он не разделен на документы, то распознавание пакета не распараллеливается и каждый пакет распознается одним ядром Станции.

ABBYY FlexiCapture Distributed

В отличие от локальной (Standalone) установки, когда все задачи выполняются на той Станции, где они были запущены, в ABBYY FlexiCapture Distributed распределением заданий импорта, распознавания и экспорта по Станциям Обработки занимается Сервер Обработки. При этом учитываются следующие факторы:

  1. Количество свободных ядер на Станции.
    Система также оценивает ресурсы, необходимые для обработки задания. Следуя внутреннему алгоритму, опирающему на эти данные, Сервер выбирает наиболее подходящую Станцию.
  2. Данные в кэше Станции.
    Сервер проверяет, сохранен ли обрабатываемый пакет в кэше данной Станции. Если да, то Станция имеет приоритет на обработку этого пакета.
    Это важный механизм, позволяющий уменьшить количество скачиваний одних и тех же данных в процессе обработки пакета.
  3. Возможность выполнить задание на Станции. Сервер Обработки использует специальный внутренний механизм для балансировки нагрузки и, следуя ему, может не отправлять задания определенного типа на какие-либо Станции Обработки.

При появлении нового задания Сервер Обработки оценивает все вышеперечисленные параметры и отправляет его на какую-либо Станцию. Затем, если это задача экспорта в PDF-S или распознавания и выполнены некоторые дополнительные условия (подробнее см. ниже), происходит распределение задачи по свободным ядрам Станции.

Отдельно стоит отметить, что в том случае, когда в ABBYY FlexiCapture Distributed какое-либо из автоматических заданий (импорт, распознавание или экспорт) вызывается непосредственно оператором на интерактивной станции (например, на Станции Верификации или Станции Настройки Проектов), то так же, как и для Standalone установки, работа будет выполнена на той Станции, где она была запущена. При этом будет доступно только 2 ядра процессора.

Задания импорта, как и в локальной версии программы, всегда выполняются на одном ядре процессора.

Это относится и к задачам экспорта, за исключением случая выгрузки в формат PDF-S, когда есть некоторые нюансы. PDF-файлы для документов создаются на этапе предобработки перед экспортом. Этот процесс происходит параллельно на нескольких ядрах Станции (в случае их наличия). А дальнейшая выгрузка полученных файлов уже осуществляется одним ядром Станции.

Аналогично распознаванию пакета документов в ABBYY FlexiCapture Standalone, в распределенной версии программы этот процесс может выполняться параллельно на разных ядрах Станции Обработки (при условии, что их несколько). Это будет происходить в следующих случаях:

  1. если пакет разделен на документы на этапе импорта;
  2. если для пакета отключена автоматическая сборка документов (взведен флаг IsExcludedFromAutomaticAssembling);
  3. если пакет не разделен на документы, но проект/тип пакета не содержит опубликованных определений документа с многостраничными гибкими описаниями.

Если какое-либо из этих 3 условий выполнено, пакет делится на порции примерно по 10 изображений в каждой (если пакет уже разделен на документы, то в каждой порции может быть немного больше/меньше, чем 10 изображений; основное условие – целое число документов в порции), которые распределяются по доступным ядрам Станции. Иначе, распознавание пакета не распараллеливается и каждый пакет распознается одним ядром Станции Обработки.

Рассмотрим пример, позволяющий лучше понять, как происходит распределение работы между Станциями Обработки и ядрами.

Пример:

Пусть есть 2 Станции Обработки с 4 ядрами на каждой, но на 1ой станции число используемых ядер ограничено оператором.
В очереди распознавания на Сервере Обработки находятся 3 пакета: Пакет А, Пакет В и Пакет С, причем Пакеты А и С относятся к типу пакета 1, который не содержит определений документа с многостраничными гибкими шаблонами, а Пакет В – к типу пакета 2, где такие определения документа уже есть.
В кэше Станций Обработки нет информации об этих пакетах.

Пакеты будут распределены по станциям следующим образом:

 

1)     Пакет А (28 страниц, нет многостраничных гибких шаблонов):

2)     Пакет В (16 страниц, есть многостраничные гибкие шаблоны)

3)     Пакет С (14 страниц, нет многостраничных гибких шаблонов)

358 считают это полезным.
Была ли эта информация вам полезна?