python 多处理 pool.map 挂起
python multiprocessing pool.map hangs
我无法使用 python 2.7 中的多处理程序包 运行 制作最简单的并行处理示例(使用 spyder 作为 windows 中的 UI)和我需要帮助解决问题。我有 运行 conda 更新,所以所有的包都应该是最新的并且兼容。
即使是 multiprocessing 包文档(如下所示)中的第一个示例也无法运行,它会生成 4 个新进程,但控制台只是挂起。在过去的 3 天里,我已经尝试了所有我能找到的东西,但是 none 运行 没有挂起的代码会将我超过 25% 的计算能力分配给这个任务(我有一台 4 核计算机).
我已经放弃了 运行我设计的程序,此时需要并行处理,我只是想获得概念证明,以便我可以从那里开始构建。有人可以解释并指出我正确的方向吗?谢谢
示例 1 来自 https://docs.python.org/2/library/multiprocessing.html
#
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
p = Pool()
print(p.map(f, [1, 2, 3]))
来自http://chriskiehl.com/article/parallelism-in-one-line/
的示例2(根据原始修改)
from multiprocessing import Pool
def fn(i):
return [i,i*i,i*i*i]
test = range(10)
if __name__ == '__main__':
pool = Pool()
results = map(fn,test)
pool.close()
pool.join()
如果确实有这个问题的答案,我深表歉意,因为看起来我应该能够完成这样一项不起眼的任务,但我不是程序员,而且我发现的资源对我的帮助不大知识水平有限。请让我知道需要什么进一步的信息。
谢谢。
在我的虚拟机上安装 spyder 后,它似乎是一个 spyder 特定的错误。示例1在IDLE下工作,通过命令行执行,在spyder中执行(先保存然后执行),但在spyder中逐行执行时不是。
我建议简单地在 spyder 中创建一个新文件,添加代码行,保存,然后 运行 它..
相关报告见:
- https://groups.google.com/forum/#!topic/spyderlib/LP5d8QZTXd0
- QtConse in Spyder cannot use multiprocessing.Manager
- Multiprocessing working in Python but not in iPython
- https://github.com/spyder-ide/spyder/issues/1900
我无法使用 python 2.7 中的多处理程序包 运行 制作最简单的并行处理示例(使用 spyder 作为 windows 中的 UI)和我需要帮助解决问题。我有 运行 conda 更新,所以所有的包都应该是最新的并且兼容。
即使是 multiprocessing 包文档(如下所示)中的第一个示例也无法运行,它会生成 4 个新进程,但控制台只是挂起。在过去的 3 天里,我已经尝试了所有我能找到的东西,但是 none 运行 没有挂起的代码会将我超过 25% 的计算能力分配给这个任务(我有一台 4 核计算机).
我已经放弃了 运行我设计的程序,此时需要并行处理,我只是想获得概念证明,以便我可以从那里开始构建。有人可以解释并指出我正确的方向吗?谢谢
示例 1 来自 https://docs.python.org/2/library/multiprocessing.html
#
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
p = Pool()
print(p.map(f, [1, 2, 3]))
来自http://chriskiehl.com/article/parallelism-in-one-line/
的示例2(根据原始修改)from multiprocessing import Pool
def fn(i):
return [i,i*i,i*i*i]
test = range(10)
if __name__ == '__main__':
pool = Pool()
results = map(fn,test)
pool.close()
pool.join()
如果确实有这个问题的答案,我深表歉意,因为看起来我应该能够完成这样一项不起眼的任务,但我不是程序员,而且我发现的资源对我的帮助不大知识水平有限。请让我知道需要什么进一步的信息。
谢谢。
在我的虚拟机上安装 spyder 后,它似乎是一个 spyder 特定的错误。示例1在IDLE下工作,通过命令行执行,在spyder中执行(先保存然后执行),但在spyder中逐行执行时不是。
我建议简单地在 spyder 中创建一个新文件,添加代码行,保存,然后 运行 它..
相关报告见:
- https://groups.google.com/forum/#!topic/spyderlib/LP5d8QZTXd0
- QtConse in Spyder cannot use multiprocessing.Manager
- Multiprocessing working in Python but not in iPython
- https://github.com/spyder-ide/spyder/issues/1900