При попытке создать массив для использования совместно используемой памяти в нескольких процессах я получаю сообщение об ошибке:
shared_array = RawArray('d', xsize)
File "C:\Python27\lib\multiprocessing\sharedctypes.py", line 88, in RawArray
obj = _new_value(type_)
File "C:\Python27\lib\multiprocessing\sharedctypes.py", line 68, in _new_value
wrapper = heap.BufferWrapper(size)
File "C:\Python27\lib\multiprocessing\heap.py", line 242, in __init__
assert 0 <= size < sys.maxint
AssertionError
Похоже, что он выше некоторого максимального значения, однако, даже когда я запускаю простой пример, подобный приведенному ниже:
from multiprocessing.sharedctypes import RawArray
import sys
xsize = 999999999
#create an empty array
print('MaxInt:',sys.maxint)
print('My Size:',xsize)
shared_array = RawArray('d', xsize)
В печатных отчетах показывается:
('MaxInt:', 2147483647)
('My Size:', 999999999)
Почему это происходит, и как я могу создать общий массив для многопроцессорной обработки при наличии очень больших массивов? Мой компьютер имеет 128 ГБ оперативной памяти, так что это не должно быть проблемой.