[GAP Forum] Memory problem

Kasper Andersen kksa at math.ku.dk
Fri Feb 29 10:51:12 GMT 2008


As part of a joint project with Bob Oliver and Joana Ventura, I'm using 
GAP to do a number of computations. I'm running a loop over several 
2-groups for which I want to perform a certain test. For the first group 
(SmallGroup(128,313)) the program returns false fairly quickly. Then after 
a longer wait, it runs out of memory for the next group 
(SmallGroup(128,314)), see the log file attached below. When I try to do 
the computation in the reverse order (SmallGroup(128,314) first and then 
SmallGroup(128,313)) the same thing happens: The first answer appears 
quickly and then after a waiting for some time, GAP runs out of memory 
during the computation for the next group.

So here are my questions:

1) How do I increase the permitted memory (the log file suggest the -o 
flag, but there also seems to be others -m, -K, -c and -a). Which one(s) 
should I use? Should I recompile GAP with some parameters changed?

2) As stated, starting with either of the two groups first produces an 
answer quickly. So neither of the two computations in themselves crash 
GAP. So in both cases, the computation for group number 2 should also be 
doable if a proper garbage collection is done or if there is sufficient 
memory, right? Is there a way to force GAP to do a garbage collection? 
Naively one should think that doubling the permitted memory should work. I 
also tried running the program with the flag -m 1g, but unfortunately the 
result is the same: The first answer appears fairly quickly and then after 
a long wait GAP crashes. Is there anything else I could do?

best wishes and thanks in advance,

Kasper Andersen

PS If it helps I can send the GAP program used for the computation.

gap> Read("cor33-gap");
313 1 false
exceeded the permitted memory (`-o' command line option) at
img := One( Range( hom ) );
  called from
ImagesRepresentative( map, gen ) called from
func( elm ) called from
List( GeneratorsOfMagmaWithInverses( elms ), function ( gen )
       return ImagesRepresentative( map, gen );
   end ) called from
ImagesSet( map, elm ) called from
Image( f, Kold ) called from
Entering break read-eval-print loop ...
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue

More information about the Forum mailing list