Trying to calculate large numbers in Python with gmpy. Python keeps crashing?
- by Ryan Peschel
I was recommended to use gmpy to assist with calculating large numbers efficiently. Before I was just using python and my script ran for a day or two and then ran out of memory (not sure how that happened because my program's memory usage should basically be constant throughout.. maybe a memory leak?)
Anyways, I keep getting this weird error after running my program for a couple seconds:
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.
Also, python crashes and Windows 7 gives me the generic python.exe has stopped working dialog.
This wasn't happening with using standard python integers. Now that I switch to gmpy I am getting this error just seconds in to running my script. I thought gmpy was specialized in dealing with large number arithmetic?
For reference, here is a sample program that produces the error:
import gmpy2
p = gmpy2.xmpz(3000000000)
s = gmpy2.xmpz(2)
M = s**p
for x in range(p):
s = (s * s) % M
I have 10 gigs of RAM and without gmpy this script ran for days without running out of memory (still not sure how that happened considering s never really gets larger..
Anyone have any ideas?
EDIT: Forgot to mention I am using Python 3.2