Использование slovnet на нескольких процессах многократно замедляет обработку
sergotail opened this issue · 1 comments
Здравствуйте! При использовании POS-таггера в режиме скрипта внутри одного процесса, обработка происходит достаточно быстро. Но если запустить celery очередь на 4 процессах, то POS-разметка занимает экстремально много времени: на одной машине и в celery-очереди одни и те же данные обрабатываются соответственно 6 и 250 секунд.
Я запустил профилирование, и увидел вот такое:
Это файл slovnet/exec/model.py.
Каким образом я могу настроить многопроцессную обработку данных с использованием slovnet? И чем может быть вызвано такое увеличение времени обработки?
Заранее спасибо!
Если вдруг кому-то будет полезно: если numpy использует openBLAS библиотеку, то нужно явно выставлять значение переменной OPENBLAS_NUM_THREADS, причём не сильно большим. Иначе, по умолчанию openBLAS пытается задействовать все ядра системы. Для меня оптимальным стало значение 1, т.к. в моём случае распараллеливание основной задачи происходит с помощью постановки celery-задач.