Мне нужно создавать большие и большие (очень) матрицы (цепи Маркова) для научных целей. Я выполняю исчисление, которое я ввел в список из 20301 элементов (= одна строка моей матрицы). Мне нужны все эти данные в памяти, чтобы продолжить следующий шаг Маркова, но я могу сохранить их в другом месте (например, файл), если это необходимо, даже если это замедлит мою прогулку по Маркову. Мой компьютер (научная лаборатория): Bi-xenon 6 ядер /12threads каждый, 12GB память, ОС: 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.
Вопросы:
-
Есть ли предел памяти для списка? Является ли это "лимитом по списку" или "global-per- script limit"?
-
Как обойти эти ограничения? Любые возможности в виду?
-
Помогло ли это использовать numpy, python64? Какие являются ли ограничения памяти с ними? Какие о других языках?