Глобальное состояние
В NumPy есть несколько опций, которые изменяют глобальное поведение во время импорта, компиляции или выполнения. Большинство из них связаны с производительностью или отладкой и не будут представлять интереса для большинства пользователей.
Параметры, связанные с производительностью
Количество потоков, используемых для линейной алгебры
Сам NumPy обычно намеренно ограничен одним потоком во время вызовов функций, однако он поддерживает одновременное выполнение нескольких потоков Python. Обратите внимание, что для эффективного выполнения линейной алгебры NumPy использует бэкенд BLAS, такой как OpenBLAS или MKL, которые могут использовать несколько потоков, которые могут контролироваться переменными среды, такими как OMP_NUM_THREADS, в зависимости от используемого варианта. Один из способов управления количеством потоков — пакет threadpoolctl.
Использование Hugepage на Linux
При работе с очень большими массивами на современных ядрах Linux вы можете значительно ускорить процесс, используя прозрачные огромные страницы. Текущую политику системы для прозрачных огромных страниц можно увидеть:
cat /sys/kernel/mm/transparent_hugepage/enabled
Если значение установлено в madvise, NumPy обычно будет использовать огромные страницы для повышения производительности. Это поведение можно изменить, установив переменную среды:
NUMPY_MADVISE_HUGEPAGE=0
или установив её в 1, чтобы всегда включать её. Если переменная не установлена, по умолчанию используется madvise для ядер 4.6 и новее. Предполагается, что эти ядра получают значительный прирост производительности с поддержкой огромных страниц. Этот флаг проверяется во время импорта.
Параметры, связанные с межплатформенной совместимостью
Протокол функции массива, который позволяет объектам, похожим на массивы, подключаться к API NumPy, в настоящее время включён по умолчанию. Эта опция существует с NumPy 1.16 и включена по умолчанию с NumPy 1.17. Её можно отключить, используя:
NUMPY_EXPERIMENTAL_ARRAY_FUNCTION=0
См. также numpy.class.__array_function__ для получения дополнительной информации. Этот флаг проверяется во время импорта.
Параметры, связанные с отладкой
Упрощенная проверка шагов
Переменные среды (во время компиляции):
NPY_RELAXED_STRIDES_DEBUG=0 NPY_RELAXED_STRIDES_CHECKING=1
контролируют, как NumPy сообщает о непрерывности массивов. По умолчанию она включена, а режим отладки отключен. Это значение должно быть всегда включено. Включение режима отладки может быть полезно для тестирования кода, написанного на языке C, который итерируется по массивам, которые могут или не могут быть непрерывными в памяти. Большинству пользователей нет необходимости изменять эти параметры; для получения более подробной информации см. документацию по структуре памяти.
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/global_state.html