Desidero riempire un array 2D-numpy all'interno di un ciclo for e collegare il calcolo utilizzando il multiprocessing.Come utilizzare Python multiprocessing Pool.map per riempire l'array numpy in un ciclo for
import numpy
from multiprocessing import Pool
array_2D = numpy.zeros((20,10))
pool = Pool(processes = 4)
def fill_array(start_val):
return range(start_val,start_val+10)
list_start_vals = range(40,60)
for line in xrange(20):
array_2D[line,:] = pool.map(fill_array,list_start_vals)
pool.close()
print array_2D
L'effetto di esecuzione esso è che Python effettua 4 sottoprocessi e occupa 4 core CPU, ma la finitura Indifferente esecuzione e la matrice non viene stampato. Se provo a scrivere la matrice sul disco, non succede nulla.
Qualcuno può dirmi perché?
Ti ricordi come hai eseguito questo codice? In linea di comando, jupyter o una sceneggiatura? – pylang