线程池控制

threadpoolctl的Python项目详细描述


线程池控件Build Statuscodecov

python helpers来限制 用于科学研究的公共本机库的线程池 计算和数据科学(如BLAS和OpenMP)。

对底层线程池大小的精细控制在 涉及嵌套并行以减轻 超额认购问题。

安装

  • 对于用户,请从pypi安装最新发布的版本:

    pip install threadpoolctl
    
  • 对于贡献者,从developer中的源存储库安装 模式:

    pip install -r dev-requirements.txt
    flit install --symlink
    

    然后使用pytest运行测试:

    pytest
    

用法

运行时内省

反思启用线程池的运行库的当前状态 导入python包时加载的:

>>>fromthreadpoolctlimportthreadpool_info>>>frompprintimportpprint>>>pprint(threadpool_info())[]>>>importnumpy>>>pprint(threadpool_info())[{'filepath':'/opt/venvs/py37/lib/python3.7/site-packages/numpy/.libs/libopenblasp-r0-382c8f3a.3.5.dev.so','internal_api':'openblas','num_threads':4,'prefix':'libopenblas','user_api':'blas','version':'0.3.5.dev'}]>>>importxgboost>>>pprint(threadpool_info())[{'filepath':'/opt/venvs/py37/lib/python3.7/site-packages/numpy/.libs/libopenblasp-r0-382c8f3a.3.5.dev.so','internal_api':'openblas','num_threads':4,'prefix':'libopenblas','user_api':'blas','version':'0.3.5.dev'},{'filepath':'/opt/venvs/py37/lib/python3.7/site-packages/scipy/.libs/libopenblasp-r0-8dca6697.3.0.dev.so','internal_api':'openblas','num_threads':4,'prefix':'libopenblas','user_api':'blas','version':None},{'filepath':'/usr/lib/x86_64-linux-gnu/libgomp.so.1','internal_api':'openmp','num_threads':4,'prefix':'libgomp','user_api':'openmp','version':None}]
< H3>设置线程池的最大大小< EH3>

控制底层运行库使用的线程数 在python程序的特定部分:

fromthreadpoolctlimportthreadpool_limitsimportnumpyasnpwiththreadpool_limits(limits=1,user_api='blas'):# In this block, calls to blas implementation (like openblas or MKL)# will be limited to use only one thread. They can thus be used jointly# with thread-parallelism.a=np.random.randn(1000,1000)a_squared=a@a

已知限制

threadpool_limits在嵌套的并行循环中不按预期工作 由不同的openmp运行时实现(例如libgomp)管理 来自gcc和clang/llvm的libomp或来自icc的libiomp)。

请参见tests/test_threadpoolctl.py中的test_openmp_nesting()函数。 举个例子。

维护人员

发布:

pip install flit
flit build

检查dist/的含量。

如果一切正常,请提交发布,标记它,并按 标记到github,然后:

flit publish

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中超类的构造函数中获取扩展泛型类的泛型类型?   java如何获取实体A的不同记录,该实体A与另一个实体B有一对多的关联,并按B记录的最新时间戳的最大值排序   JavaJSF导航参数依赖关系   具有短密文的java SecretKey匿名IBE   鼠标事件“找不到符号”错误的java解决方案   调用mediaplayer后使用java。停止我不能再发出声音了。为我解释开发参考?   java如何在序列化Avro消息时传递空值   java Sip Servlet未发送邀请请求   java根据规则访问节点,并删除链表中所有未访问的节点   Java 6上的jmockit测试用例必须使用Java代理吗?   JSF转换器f:convertDateTime是如何工作的?   java如何清除Firebase云数据库中的数组?   基于日期的列表java自定义排序   测量Java对象的内存消耗(完全“在应用程序中”)   故障终止/崩溃时的javafx Java(FX)故障保护警报?   java访问名称编码未知的文件   java如何在BlackBerry中绘制实心正方形?   java从JTextArea中删除边框   java可以使用另一个bean的属性来引用spring容器XML配置   数据透视表中具有相同列索引的java计数列