Глобальные параметры конфигурации#
NumPy имеет несколько опций конфигурации во время импорта, компиляции или выполнения, которые меняют глобальное поведение. Большинство из них связаны с производительностью или для целей отладки и не будут интересны подавляющему большинству пользователей.
Параметры, связанные с производительностью#
Количество потоков, используемых для линейной алгебры#
Сам NumPy обычно намеренно ограничен одним потоком
во время вызовов функций, однако он поддерживает несколько потоков Python,
работающих одновременно.
Обратите внимание, что для производительной линейной алгебры NumPy использует бэкенд BLAS,
такой как OpenBLAS или MKL, который может использовать несколько потоков, которые
могут контролироваться переменными окружения, такими как OMP_NUM_THREADS
в зависимости от используемого.
Один из способов управления количеством потоков — пакет
threadpoolctl
madvise hugepage на Linux#
При работе с очень большими массивами на современных ядрах Linux вы можете испытать значительное ускорение, когда прозрачная огромная страница используется. Текущую системную политику для прозрачных огромных страниц можно увидеть с помощью:
cat /sys/kernel/mm/transparent_hugepage/enabled
При установке значения madvise NumPy обычно использует огромные страницы для повышения
производительности. Это поведение можно изменить, установив переменную окружения:
NUMPY_MADVISE_HUGEPAGE=0
или установка его в 1 чтобы всегда включать его. Когда не установлен, по умолчанию используется madvise на ядрах 4.6 и новее. Эти ядра, предположительно, испытывают значительное ускорение с поддержкой hugepage. Этот флаг проверяется при импорте.
Выбор SIMD-функций#
Установка NPY_DISABLE_CPU_FEATURES будет исключать SIMD-функции во время выполнения.
См. Динамическая диспетчеризация во время выполнения.
Опции, связанные с отладкой#
Предупреждать, если нет политики выделения памяти при освобождении данных#
Некоторые пользователи могут передать владение указателем данных в ndarray путем установки OWNDATA флаг. Если они делают это без установки (вручную) политики выделения памяти, по умолчанию будет вызываться free. Если
NUMPY_WARN_IF_NO_MEM_POLICY установлено в "1", a RuntimeWarning будет выдано. Лучшей альтернативой является использование PyCapsule с деструктором
и установите ndarray.base.
Изменено в версии 1.25.2: Эта переменная проверяется только при первом импорте.