Пытаюсь вычислить большие числа в Python с помощью gmpy. Python продолжает сбоить?

Мне порекомендовали использовать gmpy для эффективного вычисления больших чисел. До этого я использовал только python, и мой скрипт работал день или два, а затем закончилась память (не уверен, как это произошло, потому что использование памяти моей программой должно быть постоянным... может быть, утечка памяти?)

В любом случае, я продолжаю получать эту странную ошибку после запуска моей программы в течение нескольких секунд:

mp_allocate< 545275904->545275904 >
Fatal Python error: mp_allocate failure

This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information.

Кроме того, python падает, и Windows 7 выдает мне общий python.exe перестал работать диалог.

Этого не происходило при использовании стандартных целых чисел python. Теперь, когда я перешел на gmpy, я получаю эту ошибку уже через несколько секунд после запуска моего скрипта. Я думал, что gmpy специализируется на работе с арифметикой больших чисел.

Для справки, вот пример программы, которая выдает ошибку:

import gmpy2

p = gmpy2.xmpz(3000000000)
s = gmpy2.xmpz(2)
M = s**p

for x in range(p):
    s = (s * s) % M

У меня 10 гигов оперативной памяти, и без gmpy этот скрипт работал несколько дней, не исчерпав памяти (все еще не уверен, как это произошло, учитывая, что s никогда не становится больше...).

У кого-нибудь есть идеи?

EDIT: Забыл упомянуть, что я использую Python 3.2

5
задан Ryan Peschel 3 October 2011 в 22:48
поделиться