跳转到主要内容

设置OpenBLAS、MKL、OMP、NumExpr和Accelerate的线程数。

项目描述

numthreads

设置OpenBLAS、MKL、OMP、NumExpr和Accelerate使用的线程数

PyPI Build Status CodeCov GitHub Repo stars Documentation

numthreads是一个非常小巧且简单的Python包,旨在设置包括OpenBLAS、Intel的数学内核库(MKL)、OpenMP、NumExpr和Accelerate在内的各种计算库的线程数。线程数可以通过命令行或Python代码设置。许多数值算法的性能会因使用的线程数而显著变化。虽然增加线程数通常可以加速这些算法,但这并不总是如此。在某些情况下,使用更多的线程可能会实际上阻碍计算效率。因此,能够轻松设置这些库使用的线程数非常重要。

  • 简单的直接命令行界面。
  • 设置OpenBLAS、MKL、OpenMP、NumExpr和Accelerate的线程数。
  • 支持Python代码中的临时线程设置上下文管理器。
  • 跨平台兼容性(Linux、macOS、Windows)。
  • 无依赖项。

:books: 目录

:package: 安装

要安装numthreads,请运行以下命令

pip install numthreads

:rocket: 快速入门

几秒钟内开始使用numthreads

作为Python模块使用

您还可以将numthreads作为Python模块使用

from numthreads import set_num_threads

set_num_threads(4)

这将使用以下环境变量设置线程数

  • OpenBLAS(通过OPENBLAS_NUM_THREADS
  • MKL(通过MKL_NUM_THREADS
  • OpenMP(通过OMP_NUM_THREADS
  • NumExpr(通过NUMEXPR_NUM_THREADS
  • Accelerate(通过VECLIB_MAXIMUM_THREADS

或者将其作为上下文管理器使用

from numthreads import num_threads

with num_threads(4):
    # Your code here will run with the specified number of threads
    pass

![警告] 由于环境变量是全局的,通常需要在导入任何库之前设置,建议在您的Python脚本开头设置线程数。

要随时设置OMP(OpenMP)线程,您可以使用omp_set_num_threadsomp_num_threads上下文管理器。

from numthreads import omp_set_num_threads

omp_set_num_threads(4)

或者

from numthreads import omp_num_threads

with omp_num_threads(4):
    # Your code here will run with the specified number of threads
    pass

命令行界面

安装numthreads后,您可以通过命令行轻松设置由支持库使用的线程数。例如,要打印设置线程数为4的命令,请运行

numthreads 4
export OPENBLAS_NUM_THREADS=4 ; export MKL_NUM_THREADS=4 ; export OMP_NUM_THREADS=4 ; export NUMEXPR_NUM_THREADS=4 ; export VECLIB_MAXIMUM_THREADS=4

类Unix系统(Linux、macOS、WSL)

在您的shell中应用设置

eval $(numthreads <number_of_threads>)

Windows(PowerShell)

在PowerShell中,使用

Invoke-Expression $(numthreads <number_of_threads>)

:question: 获取帮助

有关更多信息或报告问题,请访问numthreads GitHub仓库

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

numthreads-0.4.0.tar.gz (6.9 kB 查看哈希值)

上传时间

构建分布

numthreads-0.4.0-py3-none-any.whl (6.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持