Мне нужно производить большие и большие (очень) матрицы (цепи Маркова) для научных целей. Я выполняю исчисление, которое я помещаю в список из 20301 элемента (= одна строка моей матрицы). Мне нужны все эти данные в памяти, чтобы перейти к следующему шагу Маркова, но я могу хранить их в другом месте (например, в файле), если это необходимо, даже если это замедлит мой обход цепи Маркова. Мой компьютер (научная лаборатория): Биксенон 6 ядер / 12 нитей каждый, 12 ГБ памяти, ОС: win64
Traceback (most recent call last):
File "my_file.py", line 247, in <module>
ListTemp.append(calculus)
MemoryError
Пример результатов исчисления: 9.233747520008198e-102 (да, больше 1/9000)
Ошибка возникает при сохранении 19766-го элемента:
ListTemp[19766]
1.4509421012263216e-103
Если я пойду дальше
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
ListTemp[19767]
IndexError: list index out of range
Таким образом, в этом списке произошла ошибка памяти в цикле 19767 года.
Вопросы:
Есть ли предел памяти для списка?
Это «ограничение по списку» или
«глобальный лимит на скрипт»?
Как обойти эти ограничения?
Есть какие-нибудь возможности?
Поможет ли использовать numpy, python64? Какие
ограничения памяти у них? Какие
о других языках?