Re: help with "no more memory" at mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg91051] Re: help with "no more memory" at mathematica
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Mon, 4 Aug 2008 03:26:43 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <g73u1c$nhd$1@smc.vnet.net>
lopmart wrote: > we have the next code in mathematica 6, when we use n = 200 we get > the next error > > > h = Import["h.dat"]; v = Import["v.dat"]; > n = 200 > > > MSE2 = > Sum[(a[i - 1, j] - v[[i, j]] a[i, j])^2 + (a[i, j - 1] - > h[[i, j]] a[i, j])^2, {i, 2, n}, {j, 2, n}] + > Sum[(a[1, j - 1] - h[[1, j]] a[1, j])^2, {j, 2, n}] + > Sum[(a[i - 1, 1] - v[[i, 1]] a[i, 1])^2, {i, 2, n}]; > > s1 = Table[Simplify[D[MSE2, a[Floor[i/n] + 1, Mod[i, n] + 1]]], {i, > 1, (n*n) - 1}]; > > s3 = SparseArray[ > Table[Simplify[D[s1, a[Floor[i/n] + 1, Mod[i, n] + 1]]], {i, > 1, (n*n) - 1}]]; > ar = ArrayRules[s3]; > Export["matrix1.txt", ar]; > > b = SparseArray[Table[Simplify[-1*D[s1, a[1, 1]]]]]; *Erroneous Code Above*: Either you do not want a table or Table is missing a counter. So you must choose between, b = SparseArray[Table[Simplify[-1*D[s1, a[1, 1]]], {Some_Counter} ]] or b = SparseArray[Simplify[-1*D[s1, a[1, 1]]]] > b2 = ArrayRules[b];["B.txt", b2]; ??? What ["B.txt", b2] is supposed to do? As written it is a nonsense. Perhaps you had in mind Export["B.txt", b2]? > No more memory available. > Mathematica kernel has shut down. > Try quitting other applications and then retry. > > How to solve? So, what do you try to compute? Could you post an example (or give a description) of h.dat and v.dat? The tests I have done (with own interpretation -- assumptions about -- the code you posted) shows that the matrices matrix1.txt and B.txt are dense (the files contain rules, but since there is a rule for each matrix entry, we can hardly claim that the matrices are sparse). Does this matches your own results? Module[{h, v, MSE2, s1, s3, sr, b2, a}, For[n = 10, n <= 400, n *= 2, Print["n: ", n, ", CPU: ", Timing[ h = RandomReal[{0, n}, {n, n}]; v = RandomReal[{0, n}, {n, n}]; MSE2 = Sum[(a[i - 1, j] - v[[i, j]] a[i, j])^2 + (a[i, j - 1] - h[[i, j]] a[i, j])^2, {i, 2, n}, {j, 2, n}] + Sum[(a[1, j - 1] - h[[1, j]] a[1, j])^2, {j, 2, n}] + Sum[(a[i - 1, 1] - v[[i, 1]] a[i, 1])^2, {i, 2, n}]; s1 = Table[Simplify[D[MSE2, a[Floor[i/n] + 1, Mod[i, n] + 1]]], {i, 1, (n*n) - 1}]; s3 = SparseArray[ Table[Simplify[D[s1, a[Floor[i/n] + 1, Mod[i, n] + 1]]], {i, 1, (n*n) - 1}]]; ar = ArrayRules[s3]; Export["matrix1_n" <> ToString[n] <> ".txt", ar]; b = SparseArray[Simplify[-1*D[s1, a[1, 1]]]]; b2 = ArrayRules[b]; Export["B_n" <> ToString[n] <> ".txt", b2];][[1]], " s, Max mem used: ", MaxMemoryUsed[]/2^20 // Round, " MB, Mem in use: ", MemoryInUse[]/2^20 // Round, " MB"]]] n: 10, CPU: 0.309607 s, Max mem used: 18 MB, Mem in use: 18 MB n: 20, CPU: 3.2838 s, Max mem used: 21 MB, Mem in use: 20 MB n: 40, CPU: 45.3366 s, Max mem used: 42 MB, Mem in use: 23 MB n: 80, CPU: 574.157 s, Max mem used: 345 MB, Mem in use: 37 MB [... I stopped the evaluation here ...] Regards, -- Jean-Marc