【发布时间】:2013-10-31 11:23:52
【问题描述】:
我遇到了一个问题,即 Python 在使用 numpy 运行多处理时意外退出。我已经隔离了问题,因此我现在可以确认在运行以下代码时多处理工作正常:
import numpy as np
from multiprocessing import Pool, Process
import time
import cPickle as p
def test(args):
x,i = args
if i == 2:
time.sleep(4)
arr = np.dot(x.T,x)
print i
if __name__ == '__main__':
x = np.random.random(size=((2000,500)))
evaluations = [(x,i) for i in range(5)]
p = Pool()
p.map_async(test,evaluations)
p.close()
p.join()
当我尝试评估下面的代码时会出现问题。这使得 Python 意外退出:
import numpy as np
from multiprocessing import Pool, Process
import time
import cPickle as p
def test(args):
x,i = args
if i == 2:
time.sleep(4)
arr = np.dot(x.T,x)
print i
if __name__ == '__main__':
x = np.random.random(size=((2000,500)))
test((x,4)) # Added code
evaluations = [(x,i) for i in range(5)]
p = Pool()
p.map_async(test,evaluations)
p.close()
p.join()
请帮助某人。我愿意接受所有建议。谢谢。注意:我试过两台不同的机器,都出现同样的问题。
【问题讨论】:
-
我使用 WinPython 在 Windows7/64bit 上运行了您的代码。两种情况都执行并没有错误地退出。
-
对不起。有趣的是它可以在 Windows 上运行。任何苹果用户可以向我解释为什么会发生这种情况?
-
我可能误导了你,在我对 Apple 的愤怒评论时到处都使用“意想不到的”术语。我非常怀疑您的问题是特定于操作系统的。您能否尝试使用 numpy install 针对干净的 Python 运行您发布的脚本以查看问题是否仍然存在?
-
+1 用于提供一些干净且可运行的代码!
-
我刚刚在安装了干净的 Python 和 Numpy 的第三个苹果工作站上进行了尝试。不幸的是,这是同样的行为。
标签: python macos numpy multiprocessing