Одновременная обработка NLP (coreferencing)
Я понимаю, что, вообще говоря, в модуле Python concurrent.futures ProcessPoolExecutor используется для задач с ограничением ЦП, а ThreadPoolExecutor используется для выходных данных с ограничением ввода-вывода.
У меня есть фрейм данных, содержащий новостные статьи, в которых я хотел бы применить разрешение кореференции с пакетом huggingface neuralcoref . Поскольку это фактически расчет, я ожидал, что это будет процесс с ограничением ЦП, и поэтому пытался использовать ProcessPoolExecutor. Однако я обнаружил, что метод ThreadPoolExecutor обрабатывает пакет вдвое быстрее. Кажется, мое предположение, что это был процесс, ограниченный процессором, неверно. Почему это так?
Если это полезно, вот спецификации:
Процессор: AMD FX-8350 (8-ядерный)
Материнская плата: Gigabyte 990FXA-UD3
Память: 16 ГБ DDR3
Хранение: Samsung SSD