Spec-Zone.ru › NumPy 1.19

Глобальное состояние

NumPy имеет несколько параметров, которые действуют во время импорта, компиляции или выполнения, изменяя глобальное поведение. Большинство из них связаны с производительностью или отладкой и не будут интересны большинству пользователей.

Параметры, связанные с производительностью

Количество потоков, используемых для линейной алгебры

Сам NumPy обычно преднамеренно ограничен одним потоком во время вызовов функций, однако он поддерживает одновременное выполнение нескольких потоков Python. Обратите внимание, что для эффективной линейной алгебры NumPy использует бэкэнд BLAS, такой как OpenBLAS или MKL, которые могут использовать несколько потоков, которые могут управляться переменными среды, такими как OMP_NUM_THREADS, в зависимости от используемого бэкэнда. Один из способов управления количеством потоков — это пакет threadpoolctl.

Использование Madvise Hugepage в Linux

При работе с очень большими массивами в современных ядрах Linux вы можете значительно ускорить процесс, если используется прозрачная технология Hugepage. Текущую политику системы для прозрачных Hugepage можно увидеть следующим образом:

cat /sys/kernel/mm/transparent_hugepage/enabled

Если значение установлено в madvise, NumPy обычно будет использовать Hugepage для повышения производительности. Это поведение можно изменить, установив переменную среды:

NUMPY_MADVISE_HUGEPAGE=0

или установив её в значение 1, чтобы всегда её включить. Если переменная не установлена, по умолчанию используется madvise для ядер 4.6 и новее. Предполагается, что эти ядра получают значительный прирост производительности с поддержкой Hugepage. Этот флаг проверяется во время импорта.

Параметры, связанные с межплатформенной совместимостью

Протокол функции массива, который позволяет объектам, похожим на массивы, подключаться к 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/global_state.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API