首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么“NumExpr默认为8个线程”。在python中显示的警告消息?

为什么“NumExpr默认为8个线程”。在python中显示的警告消息?
EN

Stack Overflow用户
提问于 2022-02-24 07:34:17
回答 1查看 2.7K关注 0票数 4

我正在尝试使用python中的lux库来获得可视化建议。它显示了类似NumExpr的警告,默认为8个线程.

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np
import opendatasets as od
pip install lux-api
import lux
import matplotlib

然后:

代码语言:javascript
运行
复制
link = "https://www.kaggle.com/noordeen/insurance-premium-prediction"
od.download(link) 
df = pd.read_csv("./insurance-premium-prediction/insurance.csv")

但是,一切都很好。有什么问题吗?还是我应该忽略它?警告显示如下:

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 13:01:06

在大多数情况下,这并不是真正值得担心的事情。警告来自这一功能,这里最重要的部分是:

代码语言:javascript
运行
复制
...
    env_configured = False
    n_cores = detect_number_of_cores()
    if 'NUMEXPR_MAX_THREADS' in os.environ:
        # The user has configured NumExpr in the expected way, so suppress logs.
        env_configured = True
        n_cores = MAX_THREADS
...
    if 'NUMEXPR_NUM_THREADS' in os.environ:
        requested_threads = int(os.environ['NUMEXPR_NUM_THREADS'])
    elif 'OMP_NUM_THREADS' in os.environ:
        requested_threads = int(os.environ['OMP_NUM_THREADS'])
    else:
        requested_threads = n_cores
        if not env_configured:
            log.info('NumExpr defaulting to %d threads.'%n_cores)

因此,如果没有设置NUMEXPR_MAX_THREADSNUMEXPR_NUM_THREADSOMP_NUM_THREADS,那么NumExpr使用的线程就像内核一样多(即使文件上说“最多8",但我看到的不是在代码中)。

您可能需要使用其他数量的线程,例如,当计算出非常大的矩阵时,您可以从中获益,或者使用更少的线程,因为没有任何改进。在shell中或导入numexpr之前设置环境变量。

代码语言:javascript
运行
复制
import os
os.environ['NUMEXPR_MAX_THREADS'] = '4'
os.environ['NUMEXPR_NUM_THREADS'] = '2'
import numexpr as ne 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71248521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档