Thank you for your response! I don't believe that the timeout quota is the 
problem unfortunately, I checked and I have 49 hours and I've been doing 
stuff at least every couple of hours on the project. 

I want to try saving the output to a file using Pickle, that sounds very 
cool. I'm reading this tutorial for help so far:
http://www.diveintopython3.net/serializing.html
 
And I read somewhere that Sage has integrated save/load functions(using 
pickle as the backend?). Should I just use the save/load functions in sage 
or import pickle and use it directly? 

Another problem with doing this is that my computation is running in 
macaulay2, using the Sage/M2 interface. Here's how it looks:

macaulay2.eval("""
K = toField(QQ[zet]/(zet^8 - zet^6 + zet^4 - zet^2 + 1))
needsPackage "InvariantRing"
A = []
B = []
C1 = []
C2 = []
C3 = []
C4 = []
C5 = []
C6 = []
C7 = []
C8 = []
C9 = []
C10 = []
for a1 from 1 to 20 do (for a2 from 1 to 20 do (for a3 from 1 to 20 do A = 
A|[matrix{{zet^(a1),0,0},{0,zet^(a2),0},{0,0,zet^(a3)}}] ) )
for i from 0 to (#A-1) do B = B|[generateGroup({A#i},K)]
""")

last time, my problem was that I was trying to output too large an amount 
of data from M2 at once, so i split it up into smaller parts this time. 
That's why I defined the arrays C1 through C10. All the for loop does is 
give me a long list, B, with every possible diagonalized cyclic group 
generated when you're dealing with the 20th root of unity in 3x3 matrices. 
I don't think that part matters much, it works fine, and the array has 8000 
matrix groups in in (20^20^20). 

Once I have all that stuff defined, I run the following code:
macaulay2.eval("for j from 0 to (799) do C1 = C1|[toString molienSeries 
B#j]")

This converts the molien series of a group from the array B, converts it 
into a string, and then stores it in C1. 
I have 10 different versions of that line in different cells, the different 
between them being the start and stop points of the for loop, and which 
list I have it write to. For example, I have the line for list C2 running 
from 800 to 1599. What's strange is, the first one(from 0 to 799) works 
fine, it takes several hours but it does finish computing. Once it's 
finished, i try running the second one and leave it for a few hours. That 
one hasn't worked out, whenever I get back on sage to check on it after a 
few hours, it's crashed and all the previous computations and variables 
have been reset.  I've written some code to convert the M2 object into a 
string that I can assign to a variable in Sage, but that only works when 
the computation has finished in macaulay (it basically just using to_sage() 
function on C1, C2, etc as they finish computing). Is it possible for me to 
use pickle to save the M2 computation up until the point it crashes, and 
then have it pick up where it left off? Or is my only option to make the 
for loops even shorter? 

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"sage-cloud" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-cloud/63460fd3-91be-4e7f-9387-fdcef5cd3279%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to