Fothering heltonbiker, , . "". , memmapped... memmapped , .
.
fp = np.memmap('your_new_memmap_filename.dat', dtype='float32', mode='w+', shape=(nrows, ncols))
data = open('yourdatafile.txt', 'r')
i = 0
for line in data:
arr = map(float, line.strip().split(','))
fp[i, :] = arr
i += 1
del fp
.. script
convolve_matrix = somenumpyarray
fp_result = np.memmap('your_results_memmap_filename.dat', dtype='float32', mode='w+', shape=(nrows, ncols))
fp = np.memmap('your_new_memmap_filename.dat', dtype='float32', mode='r', shape=(nrows, ncols))
chunksize = 10000
for i in range(int(nrows/chunksize) - 1):
chunk = fp[i * chunksize: (i + 1) * chunksize, :]
res = fftconvolve(chunk, convolve_matrix)
fp_result[i * chunksize: (i + 1) * chunksize, :] = res
del fp_result
del fp
, , . , , , Joblib . https://pythonhosted.org/joblib/parallel.html
, , 2- tiler/reassembler, gis, . , tiler , , , , ( ), ( ) ( , ) ... , . .
for source_slice, result_slice, mini_slice in zip(source_slice, result_slice, mini_slice):
matrix2convolve = big_fp[source_slice[0]:source_slice[1], :]
convolve_result = fftconvolve(matrix2convolve, convolve_matrix)
big_result_fp[result_slice[0]:result_slice[1], :] = convolve_result[mini_slice[0]:mini_slice[1], :]