我正在安装大量的conda软件包,它恰好是在jupyter环境中。
从本质上说,Conda需要很长时间才能找到所有软件包的最佳版本组合。它在我的工作站上比我的CI构建系统快得多.我真的,,需要加快这个过程。
我不想切换到pip,因为这会给我留下不兼容的库版本。
问题是什么计算资源将产生最大的影响: CPU时钟速度;计算核数;还是RAM?
注释后面的编辑,下面是一个示例
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+分钟才能完成
发布于 2020-08-08 20:15:16
提高conda install命令速度的最简单方法是调整命令或尝试另一个求解器(参见下面)。但是,由于您的问题措辞狭窄,有关CPU硬件,我将首先回答。
硬件考虑
Anaconda发布了一个关于conda性能瓶颈的相关博客文章,并列出了可以并行化的以下步骤:
但是,要从这种并行性中获益,您应该将.condarc文件配置为在这些步骤中实际使用多个线程,如在conda的文档里所描述的那样。
例如:
conda config --set default_threads 4但你特别问了解决问题的时间。因为上面没有列出它,所以它不是并行化的。为此,只有更快的CPU才能提高性能,除非您改进正在运行的命令,如下所述。
更好硬件的替代方案
这些选项比升级硬件更有可能提高安装时间。
1.更加具体
Anaconda有一个博客文章解释如何帮助解决者更快地工作。。它们提供了一些建议,但在您的例子中,最相关的是更具体地说明您需要的包版本。例如,如果你知道。您需要dask>=2,然后将"dask>=2"添加到命令中。如果您知道需要pandas 1.x,那么在命令中指定pandas=1。每次在包规范中添加需求时,都会减少解决程序需要查看的一组可能的包,以便为您的环境找到一致的包集。
2.试试曼巴
如果对您来说真正的瓶颈是解决步骤(而不是验证或执行步骤),您可以尝试另一种解决方法。曼巴可以与conda一起安装,它可以为大环境提供更快的解决方案。
conda install mamba -c conda-forge
mamba install --quiet --yes \
'beautifulsoup4' \
# etc...注意:如果您列出的包要求有一个以上的“解决方案”,那么求解者必须选择哪一个是“最好的”,考虑到具体的要求。在这些情况下,conda和mamba并不总是做出相同的选择。想必,差异并不重要--否则你会指定更精确的要求。但是你应该意识到这两者在行为上可能会有区别。从技术上讲,在所有情况下,mamba并不是conda的替代物。
https://stackoverflow.com/questions/63291936
复制相似问题