如何让 cython 和 gensim 与 pyspark 一起工作

How to get cython and gensim to work with pyspark

我是 运行 一台安装了 gcc 的 Lubuntu 16.04 机器。我没有让 gensimcython 一起工作,因为当我训练 doc2vec model 时,它只接受过一个非常慢的工人的训练。

正如我所说,gcc 是从一开始就安装的。然后我可能犯了错误并在 cython 之前安装了 gensim。我通过 pip 强制重新安装 gensim 来纠正这个问题。没有效果仍然只有一名工人。

机器设置为 spark 主机,我通过 pysparkspark 交互。它的工作原理是这样的,pyspark 使用 jupyterjupyter 使用 python 3.5。这样我就得到了一个 jupyter 接口到我的集群。现在我不知道这是否是我无法让 gensimcython 一起工作的原因。我不在集群上执行任何 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 之后实现的