Почему python tesserocr не использует 4 ядра процессора в AWS Batch? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь заставить библиотеку python tesserocr работать на 4 ядрах.Согласно документам Tesseract, я понимаю, что он поддерживает до 4 ядер.У меня есть задание tesserocr python3.x, запущенное внутри AWS Batch (докер-контейнер на основе amazonlinux: последний образ) на экземпляре c4.x2large, который имеет 8 виртуальных ЦП, все они были выделены для пакетного задания во время отправки.

Тесты показывают, что максимальная загрузка процессора составляет 30%, то есть 2,5 vCPU, то есть около 1,25 физических ядер (каждые 2 vCPU являются грубыми 1 физическим ядром).

Я также пробовал OMP_NUM_THREADS = 4, OMP_THREAD_LIMIT = 4 переменных среды (на основе какого-либо форума в Интернете), но никакое значение никак не повлияло на производительность.

Как я могу использовать tesserocr для масштабирования до всех 4 ядер (8 vCPU)?

1 Ответ

0 голосов
/ 20 декабря 2018

Потоки Python не равны 1: 1 с vCPU / ядрами.

Если вы посмотрите спецификации для экземпляра c4.x2large, он говорит, что вы можете запустить до 2 потоков на ядро.И эта машина имеет 8 виртуальных ЦП.

Для потенциально используйте все 8 виртуальных ЦП, которые вы могли бы попробовать установить OMP_NUM_THREADS=16, OMP_THREAD_LIMIT=16.Однако реализация базового tesserocr окажет огромное влияние на то, насколько хорошо он масштабируется в контексте машины.

...