## Extract terms from matrix using markers...

I have written a Maple code which extracts terms in a matrix into two new matrices dependent on certain markers. I am running into problems with this particular code as it requires enormous amounts of RAM when going to large matrix sizes (32GB+); and will take 4-5 days to complete for larger matrix sizes, or simply crashes.

Each matrix element is an algebraic expression containing A and B and the markers hh and ss. The example in the attached Maple file (3 x 3 matrix) is a minimal working example and the actual expressions are much longer and the matrices much larger (5000 x 5000 or larger). I utilise the symmetry of the matrix to ease the process, and use the tril command of MTM to extract only the lower triangular matrix; as this is all that is needed for the next stage (I have yet to test how efficient this command is, but use it for now).

The two markers hh and ss are targeted and if found in an expression that term will be extracted accordingly. The matrix elements are expanded and a procedure run over the matrix and will extract terms with hh into one matrix and terms with ss into another matrix. I think the map(expand,...) part is what causes the memory issue; but I believe this needs to be done to correctly extract terms.

Any help or tips are greatly appreciated on how to increase efficiency and improve this method.

Sub_matrix_extraction.mw

-Yeti

## Want for execution...

Can somebody execute this code on a powerful comp and report the result in MaplePrimes? That would be kind of her/him.

 RealDomain:-solve(a^2+b^2+c^2+a*b+a*c+b*c-  (a+b-c)*sqrt(2*a*b+a*c+b*c)-(a+c-b)*sqrt(a*b+2*a*c+b*c)-(b+c-a)*sqrt(a*b+a*c+2*b*c));

## loss of animation when moving worksheet from windo...

When transfering a particular worksheet from my home Windows 7 computer to an office Linux computer I lose some of the end of the worksheet, namely I lose a rather memory intensive animation at the end. And the office compute crashes when I attempt to run the animation. This seems strange since apparently the office computer (see below) is more powerful than my home computer.  When this happens there are apparently few if any other users of the office computer. I  would be grateful for suggestions for remedies for this problem or any ideas of what the problem could be.

Home computer: Windows 7 Intel(R) Core(TM) i7-2600 CPU@3.40GHz, 12 GB RAM 64-bit OS

Office computer: CentOS, Kernel Linux 2.6.32-573.12.1.l6.x86.64, Gnome 2.28.2, Memory 94.4GiB, 6 processors each an Intel(R) Xeon(R) CPU E5-2643 v2@3.5BHz, Available Disk Space 1061.0 BiB

## Want for execution...

Can somebody of Maple users execute the following command

restart; pdsolve({diff(w(x, y, z), x)+diff(w(x, y, z), y, y)+2*(diff(v(x, y, z), x)-(diff(u(x, y, z), y))-2*w(x, y, z)) = diff(w(x, y, z), z, z), 3*(diff(u(x, y, z), x, x))+2*(diff(u(x, y, z), y, y))+2*(diff(v(x, y, z), x, y))+2*(diff(w(x, y, z), y)) = diff(u(x, y, z), z, z), 3*(diff(v(x, y, z), y, y))+2*(diff(v(x, y, z), x, x))+2*(diff(u(x, y, z), x, y))-2*(diff(w(x, y, z), x)) = diff(v(x, y, z), z, z)}, {u(x, y, z), v(x, y, z), w(x, y, z)})

in Maple 2016.1.1 on a powerful comp and report the obtained result as an answer to the question?
That would be very kind of her/him. Thanks in advance.

## how to release memory for available 4GB memory in ...

i have already release memory with gc() in the most inner for loop ]

,but it still use up my memory

once it printed two lines each time, actually it can release memory

but why it still use up memory

with(combinat):
appendto("D:\\gogogo.txt");
for ii from 1 to 2040 do
for jj from 1 to 2040 do
for kk from 1 to 2040 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii],mm[jj],mm[kk]],[a(t),b(t),c(t)]);
print([mm[ii],mm[jj],mm[kk]]);
print(sol);
print("***");
end if:
end if:
od:
gc();
od:
od:

i can only think

use c# to generate code with file write, nested for loop every 1000 records

is it the only way to do?

int counter = 0;
for (int i=1; i<=2040; ++i)
{
for (int j = 1;j <= 2040; ++j)
{
for (int k = 1; k <= 2040; ++k)
{
if(counter % 1000 == 0)
{
Console.Write(i.ToString() + ","+j.ToString() + ","+k.ToString());
Console.Write("\r\n");
}
counter = counter + 1;
}
}
}

## Weird behaviour while running cycle (memory proble...

I run into a problem that really suprised me. I have a program that solves a system of differential equations with different initial conditions. I wrote a cycle that goes through initial conditions, solves differential equations and saves the picture (displaying dynamic behaviour of the system) in the given directory. All seemed fine and working until I once checked one of the pictures by running the program on the only one initial condition. It turned out that the picture program gave me this time is not the one that program gave me earlier (while running through cycle). So I panicked and started checking other pictures and it turned out that some of them are right and some of them are not, remarkably, with no particular pattern.

I reckon that I somehow need to manage the memory, clear it after every iteration. (I'm not absolutely sure that problem is here but I just don't have another explanation why this thing could happen.)

## javaw.exe memory hog...

While debugging something unrelated to Maple, I noticed in Windows task manager that the process

C:\Program Files\Maple 2016\jre\bin

had a Memory(Private Working Set) of 2,251,088K - roughly 10x the memory footprint of any other running process.

Is this normal?

Not a real issue for me (machine has 16G ram) - but it just *looks* wrong

In case it matters I'm running Maple 2016.1 on Win7, 64bit

## will license be consumed after activate in linux i...

if i install maple 2015 in amazon cloud, activate with my license

and i do not use amazon after several trial,

will the license be used and can not activate in future if i use amazon cloud again in future?

any command or configure needed when using large amount memory such as 100GB memory?

## Grid computation and memory again...

This is somehow an old problem which came back and I decided to post it. So, I have some code which runs in Grid framework locally. Each node saves data directly to hard disk and there is no need to return anything at the end to the node of ID 0. Nevertheless, I noticed that memory usage on one instance of the mserver is very huge.  Moreover, this instance is all the time in S state, namely sleeping. Below you can see dump from top. I deny this is caused by some particular procedures called in my code since in this case I should rather observe more uniform memory usage. I am not sure if for this moment I could share some code with you which demonstrate this behavior. I will try to write some toy example because my productive code cannot be posted here.

%MEM     TIME+ COMMAND

49.1 17:00.19 mserver
0.1 12:43.70 mserver
0.1 12:32.15 mserver
0.1 13:54.02 mserver
0.1 14:45.45 mserver
0.1 12:35.22 mserver
0.1 13:50.77 mserver
0.1 14:14.85 mserver
0.1 8:58.82 mserver
0.1 12:58.48 mserver
0.1 8:51.00 mserver
0.1 10:35.92 mserver
0.1 12:58.13 mserver
0.1 9:34.39 mserver
0.1 10:10.13 mserver
0.1 12:07.77 mserver
0.0 8:21.17 mserver
0.0 11:41.42 mserver
0.0 5:07.27 mserver
0.0 8:31.88 mserver
0.0 6:30.12 mserver

## Logarithmic equation...

Hej Mapleprimes,

I am making Maple sweat over a simple problem

11.00=11.244522435+log(x)

right click and solve for variable x.

So far Maple has been working for 10 minutes at allocatet 2 GB

Is there a short way to solve this faster?

Kind regards

Per Kirkegaard

## Huge memory usage...

I am faced by the problem where I used Grid:-Seq()---locally---to do some long time computation and I am faced by the exhaustion of memory problem. I think the problem itself is related to the memory management in maple.

So the problematic function is

# Procedure: ComputeEventsCTypeGrid
#   Compute events such that three quadrics intersects in a point.
#
# Parameters:
#   Q          - a set of quadrics
#
# Output:
#   Indexes of quadrics which intersect in a point.
# TODO:
#  - Memory
#  - Cleanups
ComputeEventsCTypeGrid := proc( Q )
local s, cType, i, j, k, rootNb, univ, sys;
s := proc (i, j, k)
sys := [ Q[i], Q[j], Q[k] ];
univ := PolynomialIdeals[UnivariatePolynomial]( indets( sys )[1], sys );
if not type( univ, constant ) then
rootNb := nops(select(proc(x)op(x)[2]>0;end proc,RootFinding:-Isolate( univ, [ op( indets(univ ) ) ] )) ):
if rootNb > 0 then
return [ univ, rootNb, sys ];
end if:
end if:
end proc;
cType := [Grid:-Seq(seq(seq(s(i,j,k),k=j+1..nops(Q)),j=i+1..nops(Q)),i=1..nops(Q))];
return cType;
end proc:

A dump from top after calling ComputeEventsCTypeGrid for some data(total amount of memory on this machine is 251G + 48G swap)

VIRT    RES    SHR S  %CPU %MEM     TIME+

33.007g 0.031t   3676 S   0.0 12.5   2606:20
31.137g 0.029t   3436 S   0.0 11.7   2274:34
8645756 4.984g   2840 S   0.0  2.0  32:06.40
28.798g 0.026t   1968 S   0.0 10.7   1821:16
26.650g 0.024t   1968 S   0.0  9.8   1520:54
25.346g 0.023t   1968 S   0.0  9.2   1236:44
23.296g 0.021t   1968 S   0.0  8.4   1004:52
20.498g 0.018t   1968 S   0.0  7.4 790:30.81
16.799g 0.014t   1968 S   0.0  5.9 625:28.12
15.011g 0.013t   1968 S   0.0  5.2 469:36.27
7678444 4.149g   1968 S   0.0  1.6 104:34.22
6734804 623904   1968 S   0.0  0.2  73:13.13
4327420 132516   1968 S   0.0  0.1  24:11.51
3420712 111336   1968 S   0.0  0.0  11:26.16
13.671g 0.011t   1964 S   0.0  4.6 380:15.13
11.771g 9.831g   1964 S   0.0  3.9 274:25.59
9936056 7.769g   1964 S   0.0  3.1 201:13.94
8805512 3.394g   1964 S   0.0  1.3 148:09.53
5077056 1.500g   1964 S   0.0  0.6  42:19.29
2384784  82040   1832 S   0.0  0.0   3:56.57

Size of output data calculated with

> length(sprintf("%m", eval(cType)));

> 326260610

Also, I called gc() at the end of the computations but memory allocated by instances of mserver were not released. Does it mean gc() should be called from each instance separately? My final point is that I have to run some other calculations for different and bigger dataset (It will probably take 2 days to finish -- Q has around 700 polynomials of degree 2) and for this moment I cannot do this because I've gotten an error about not enough amount of memory.

## Memory usage with repeated calls ...

Here is a simple program that displays the issue.

yint:=proc(i,a,b) local y,yi; y:=x^i; yi:=int(y,x=a..b); return yi; end:

n:=10^4;

for i from 1 to n do inty:=yint(i,a,b); od:

Running the program gives the following memory usage.

n            memory
10^4      70M
10^5      138M
10^6      562M

Why is the memory increasing so much? Are internal variables to yint stored between calls?

How can I avoid the memory increase with such a loop?

Thanks.

## Problem with for loop...

Dear all,

I am using Maple to perform numerical integrations. When the final index in the loop is set to 5, the computation is fast and the results are quickly delivered. When I set a number higher than that, even 6, the program gets really slow and often crashes.

I herewith attach the script I use to generate the results. I guess that there should be a problem of memory management and I tried to use gc() as suggested in some forms but without success. I would appreciate it if someone here could explain the reason behind the problem.

Thank you,
question.mw

## Command line option --init-reserve-mem...

Can anyone confirm what units of memory are used for this option?

Will Maple 2015 automatically use virtual memory if the size of this option exceeds the RAM memory and how can this be confirmed?

Thank you.