numpy でマルチプロセッシングを実行すると、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)))
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()
誰か助けてください。私はすべての提案を受け入れます。ありがとう。注: 2 台の異なるマシンを試しましたが、同じ問題が発生します。