如何让 cython 和 gensim 与 pyspark 一起工作
How to get cython and gensim to work with pyspark
我是 运行 一台安装了 gcc
的 Lubuntu 16.04 机器。我没有让 gensim
与 cython
一起工作,因为当我训练 doc2vec model
时,它只接受过一个非常慢的工人的训练。
正如我所说,gcc
是从一开始就安装的。然后我可能犯了错误并在 cython
之前安装了 gensim
。我通过 pip
强制重新安装 gensim
来纠正这个问题。没有效果仍然只有一名工人。
机器设置为 spark
主机,我通过 pyspark
与 spark
交互。它的工作原理是这样的,pyspark
使用 jupyter
而 jupyter
使用 python 3.5。这样我就得到了一个 jupyter
接口到我的集群。现在我不知道这是否是我无法让 gensim
与 cython
一起工作的原因。我不在集群上执行任何 gensim 代码,启动 jupyter
也更方便 gensim
。
在深入挖掘并尝试将整个语料库加载到内存中后,在不同的环境中执行 gensim 等等,但都没有效果。代码仅部分并行化似乎是 gensim 的问题。这导致工人无法充分利用 CPU。查看 github link.
上的问题
你可能这样做了,但是你能检查一下你使用的是 assert gensim.models.doc2vec.FAST_VERSION > -1
的并行 Cythonised 版本吗?
gensim doc2vec 代码是并行化的,但不幸的是,Gensim 之外的 I/O 代码不是。例如,在 github issue 你链接的并行化确实是在 doclist = [doc for doc in documents]
将语料库加载到 RAM 之后实现的
我是 运行 一台安装了 gcc
的 Lubuntu 16.04 机器。我没有让 gensim
与 cython
一起工作,因为当我训练 doc2vec model
时,它只接受过一个非常慢的工人的训练。
正如我所说,gcc
是从一开始就安装的。然后我可能犯了错误并在 cython
之前安装了 gensim
。我通过 pip
强制重新安装 gensim
来纠正这个问题。没有效果仍然只有一名工人。
机器设置为 spark
主机,我通过 pyspark
与 spark
交互。它的工作原理是这样的,pyspark
使用 jupyter
而 jupyter
使用 python 3.5。这样我就得到了一个 jupyter
接口到我的集群。现在我不知道这是否是我无法让 gensim
与 cython
一起工作的原因。我不在集群上执行任何 gensim 代码,启动 jupyter
也更方便 gensim
。
在深入挖掘并尝试将整个语料库加载到内存中后,在不同的环境中执行 gensim 等等,但都没有效果。代码仅部分并行化似乎是 gensim 的问题。这导致工人无法充分利用 CPU。查看 github link.
上的问题你可能这样做了,但是你能检查一下你使用的是 assert gensim.models.doc2vec.FAST_VERSION > -1
的并行 Cythonised 版本吗?
gensim doc2vec 代码是并行化的,但不幸的是,Gensim 之外的 I/O 代码不是。例如,在 github issue 你链接的并行化确实是在 doclist = [doc for doc in documents]