В связанном руководстве предлагается устанавливать эту переменную специально при использовании ray
, а не всегда.
AFAICS, это потому, что сам фреймворк порождает много процессов (по одному на каждого актера или что-то в этом роде), поэтому каждый из них, использующий несколько потоков, не принесет ускорения. Это не тот случай, когда есть только один или несколько процессов.
В общем примечании FAQ по OpenBLAS говорит, что многопоточность OpenBLAS может "конфликтовать" с многопоточностью основной программы, и рекомендует в этом случае установить OPENBLAS_NUM_THREADS=1
. Однако в разделе часто задаваемых вопросов не содержится каких-либо подробностей, подтверждающих его претензию, поэтому вполне может быть устаревшим! Согласно https://github.com/obspy/obspy/wiki/Notes-on-Parallel-Processing-with-Python-and-ObsPy, симптомам такого «конфликта» являются безудержные тупики и ошибки. Так что, если у вас нет ничего подобного, вы в чистоте. Основные библиотеки Python сами несут ответственность за решение этой проблемы, а не за дампирование их для пользователя, поэтому я вполне уверен, что если в OpenBLAS есть какие-либо ограничения на использование, numpy
и scipy
применяют их внутренне и автоматически, если вы используете OpenBLAS через них.