У меня возникла проблема, когда 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()
Пожалуйста, помогите кому-нибудь. Я открыт для всех предложений. Благодарю. Примечание. Я попробовал две разные машины и возникла одна и та же проблема.