首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速复杂的conda安装最需要什么资源?

加速复杂的conda安装最需要什么资源?
EN

Stack Overflow用户
提问于 2020-08-06 21:22:32
回答 1查看 909关注 0票数 1

我正在安装大量的conda软件包,它恰好是在jupyter环境中。

从本质上说,Conda需要很长时间才能找到所有软件包的最佳版本组合。它在我的工作站上比我的CI构建系统快得多.我真的,需要加快这个过程。

我不想切换到pip,因为这会给我留下不兼容的库版本。

问题是什么计算资源将产生最大的影响: CPU时钟速度;计算核数;还是RAM?

注释后面的编辑,下面是一个示例

代码语言:javascript
复制
FROM jupyter/tensorflow-notebook:dd2087c75645
# dc9744740e12
LABEL MAINTAINER="NaaS Project <edina@ed.ac.uk>"

USER root

# We need libsodium23
RUN apt-get update \
  && apt-get install -yq --no-install-recommends \
    less \
    libgl1 \
    libgl1-mesa-glx \
    sharutils \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

USER $NB_USER

# python3 updates and additional files
RUN conda install --quiet --yes \
    'beautifulsoup4' \
    'bokeh==2.0.1' \
    'cloudpickle' \
    'conda-build' \
    'cython' \
    'dask' \
    'graphviz' \
    'ffmpeg' \
    'imagemagick' \
    'ipympl==0.5.6' \
    'ipywidgets' \
    'jupyterhub' \
    'libxml2' \
    'lxml'  \
    'matplotlib==3.2.2' \
    'matplotlib-base==3.2.2' \
    'mpld3' \
    'nltk' \
    'notebook' \
    'numba' \
    'numexpr' \
    'numpy' \
    'opencv' \
    'pandas' \
    'patsy' \
    'plotly' \
    'protobuf' \
    'psutil' \
    'pytables' \
    'python-graphviz' \
    'rise' \
    'scikit-image' \
    'scikit-learn' \
    'scipy' \
    'seaborn' \
    'spacy' \
    'spectral' \
    'sqlalchemy' \
    'statsmodels' \
    'sympy' \
    'textblob' \
    'unixodbc' \
    'vega' \
    'vincent' \
    'widgetsnbextension' \
    'wordcloud' \
    'xlrd' \
    'xmlschema' \
  && conda build purge-all

这需要15+分钟才能完成

EN

回答 1

Stack Overflow用户

发布于 2020-08-08 20:15:16

提高conda install命令速度的最简单方法是调整命令或尝试另一个求解器(参见下面)。但是,由于您的问题措辞狭窄,有关CPU硬件,我将首先回答。

硬件考虑

Anaconda发布了一个关于conda性能瓶颈的相关博客文章,并列出了可以并行化的以下步骤:

  • 从多个通道下载和读取数据
  • 核实事务
  • 执行事务

但是,要从这种并行性中获益,您应该将.condarc文件配置为在这些步骤中实际使用多个线程,如在conda的文档里所描述的那样。

例如:

代码语言:javascript
复制
conda config --set default_threads 4

但你特别问了解决问题的时间。因为上面没有列出它,所以它不是并行化的。为此,只有更快的CPU才能提高性能,除非您改进正在运行的命令,如下所述。

更好硬件的替代方案

这些选项比升级硬件更有可能提高安装时间。

1.更加具体

Anaconda有一个博客文章解释如何帮助解决者更快地工作。。它们提供了一些建议,但在您的例子中,最相关的是更具体地说明您需要的包版本。例如,如果你知道。您需要dask>=2,然后将"dask>=2"添加到命令中。如果您知道需要pandas 1.x,那么在命令中指定pandas=1。每次在包规范中添加需求时,都会减少解决程序需要查看的一组可能的包,以便为您的环境找到一致的包集。

2.试试曼巴

如果对您来说真正的瓶颈是解决步骤(而不是验证或执行步骤),您可以尝试另一种解决方法。曼巴可以与conda一起安装,它可以为大环境提供更快的解决方案。

代码语言:javascript
复制
conda install mamba -c conda-forge
mamba install --quiet --yes \
    'beautifulsoup4' \
    # etc...

注意:如果您列出的包要求有一个以上的“解决方案”,那么求解者必须选择哪一个是“最好的”,考虑到具体的要求。在这些情况下,condamamba并不总是做出相同的选择。想必,差异并不重要--否则你会指定更精确的要求。但是你应该意识到这两者在行为上可能会有区别。从技术上讲,在所有情况下,mamba并不是conda的替代物。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63291936

复制
相关文章

相似问题

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