Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Out of memory.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg89251] Re: Out of memory.
  • From: David Bailey <dave at Remove_Thisdbailey.co.uk>
  • Date: Sun, 1 Jun 2008 16:33:09 -0400 (EDT)
  • References: <g1tjji$kh9$1@smc.vnet.net>

Richard Bowles wrote:
> I am rather new to mathematica so it is likely that I am doing some  
> rather naive things.
> 
> I have m1X20 matrix with matrix elements m1_ij=Cij P^lij S^nij.
> 
> nij and lij are real numbers. Cij =1 or 0.
> 
> I take the power matrix of m1^N
> m2 = MatrixPower[m1, N]
> 
> Then need o extract the exponents of P and S and the coefficients of  
> each of the terms in the resulting polynomial and write them to file.
> I do the following:
> 
> For[i = 0, i < 20, i++;
>    For[j = 0, j < 20, j++;
> 
>      eepol = Expand[m2[[i, j]]];
>      k = Length[eepol];
> 
> 
> 
>       For[i1 = 0, i1 < k, i1++;
> 
>         w0[l_, n_] = Part[eepol, i1];
>         x1 = Exponent[w0[l, n], l];
>           x2 = Exponent[w0[l, n], n];
>         x3 = Coefficient[ w0[l, n], l^x1*n^x2];
>         dn = x2*0.25*Pi/(1.95*x1);
> 
>          Write[s1, x3];
> 
>         Write[s, dn];
>          ]
> 
>      ]]
> 
> This works slowly, but fine when N=10 but I run out of memory on a  
> 128GB machine when N. I plotted the memory use as a function of  
> cycles through the inner loop and find that it grows linearly which  
> might account for the out of memory since there are a large number of  
> terms.
> 
> If anyone can suggest a faster and more memory efficient method it  
> would be much appreciated.
> 
> Cheers
> Richard
> 
It is not totally clear to me if your matrix contains terms which are 
algebraic expressions, or just numbers. I think you are talking about a 
matrix containing algebraic expressions, in which case the size of those 
expressions will rise rather fast as you do MatrixPower, so the memory 
limit may be genuine. Symbolic expressions soak up a lot of memory and 
CPU power as compared with numerical values, and they typically double 
in size each time they are combined in some way (added or multiplied, say).

My first suggestion would be to post a complete example (as simple as 
possible) so that we can play with it.

Secondly it is extremely important to ensure that Mathematica can 
actually use all your 128 GB (a very large figure - are you sure you are 
right?) Assuming you are using Windows, make sure you have the 64-bit 
version of the OS loaded. Also, if Mathematica were installed before the 
change of OS, I would remove it and re-install (I am not certain if this 
step is necessary, but my guess is that it would be).

David Bailey
http://www.dbaileyconsultancy.co.uk


  • Prev by Date: Re: Wolfram Mathematica 6.0 B-splines
  • Next by Date: Re: Mathematica Question
  • Previous by thread: Out of memory.
  • Next by thread: Re: Re: Out of memory.