MATRIX - END MATRIX memory limitations

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

MATRIX - END MATRIX memory limitations

Kirill Orlov
I can remember that in older versions of SPSS (13 or or such) MATRIX - END MATRIX memory allocation could be expanded, if turns necessary, by SET MXMEMORY or, maybe, SET WORKSPACE commands (can't recall exactly which). In latest versions MXMEMORY is no longer supported, and enlarging WORKSPACE didn't help me.

I wanted to create a 40000x40000 matrix in MATRIX and the program refused to allocate such number of bytes, whatever WORKSPACE setting. Is it possible at all to expand MATRIX memory by request or not, in contemporary SPSS?

Thank you.

Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

David Marso
Administrator
You realize to are attempting to create 1,600,000,000 entries in the matrix.
SET WORKSPACE does work to expand memory available to MATRIX.
What are you doing which requires such a massive matrix?
How much RAM on machine 32G ? 32 bit OS (Fuggit bout it). 64 bit OS?  Maybe?
You seriously need to rethink your algorithm or break it up in some reasonable fashion.


Kirill Orlov wrote
I can remember that in older versions of SPSS (13 or or such) MATRIX -
END MATRIX memory allocation could be expanded, if turns necessary, by
SET MXMEMORY or, maybe, SET WORKSPACE commands (can't recall exactly
which). In latest versions MXMEMORY is no longer supported, and
enlarging WORKSPACE didn't help me.

I wanted to create a 40000x40000 matrix in MATRIX and the program
refused to allocate such number of bytes, whatever WORKSPACE setting. Is
it possible at all to expand MATRIX memory by request or not, in
contemporary SPSS?

Thank you.
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

Art Kendall
further each of those entries is probably 8 bytes ==> 12.8GB
Art Kendall
Social Research Consultants
On 7/25/2012 7:18 AM, David Marso wrote:
You realize to are attempting to create 1,600,000,000 entries in the matrix.
SET WORKSPACE *does *work to expand memory available to MATRIX.
What are you doing which requires such a massive matrix?
How much RAM on machine 32G ? 32 bit OS (Fuggit bout it). 64 bit OS?  Maybe?
You seriously need to rethink your algorithm or break it up in some
reasonable fashion.



Kirill Orlov wrote
I can remember that in older versions of SPSS (13 or or such) MATRIX -
END MATRIX memory allocation could be expanded, if turns necessary, by
SET MXMEMORY or, maybe, SET WORKSPACE commands (can't recall exactly
which). In latest versions MXMEMORY is no longer supported, and
enlarging WORKSPACE didn't help me.

I wanted to create a 40000x40000 matrix in MATRIX and the program
refused to allocate such number of bytes, whatever WORKSPACE setting. Is
it possible at all to expand MATRIX memory by request or not, in
contemporary SPSS?

Thank you.




--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/MATRIX-END-MATRIX-memory-limitations-tp5714440p5714441.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD


===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Art Kendall
Social Research Consultants
Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

David Marso
Administrator
**FWIW running on 32 bit Vista SPSS 11.5 **.
It would be interesting if someone could run this on a 64 bit system with 64 bit SPSS and report back.
----
DEFINE MAYHEM ().
PRESERVE.
SET MPRINT ON PRINTBACK ON.
!DO !WKSP=45 !TO 55 .
SET WORKSPACE=!CONCAT(!WKSP,'00000').
SHOW WORKSPACE.
MATRIX.
*10500x10500 max on my system.
LOOP #=8000 TO 12000 BY 500.
COMPUTE TEST=MAKE(#,#,1).
DISPLAY STATUS.
RELEASE TEST.
END LOOP.
END MATRIX.
!DOEND
RESTORE.
!ENDDEFINE.
MAYHEM.


*** Maximum my system seems to be able to allocate ***.
SET WORKSPACE= 5100000.
SHOW WORKSPACE.
**WORKSPACE (special workspace memory limit) = 905,696K bytes.


Run MATRIX procedure:

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace 64000000     115929088           55
Secondary storage        0         12800            0

...........

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace100000000     115929088           86
Secondary storage        0         12800            0

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace110250000     115929088           95
Secondary storage        0         12800            0

Number of locations requested = 121000000
Number of locations available = 115929088
>Error encountered in source line #  1195

>Error # 12477
>MATRIX work space has been exhausted.  Allocate additional memory and run
>again, or release unused matrices using RELEASE statement.  Use DISPLAY
>statement to list all allocated objects.  An alternative is to increase
>workspace with the SET WORKSPACE command .
>This command not executed.


------ END MATRIX -----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

Kirill Orlov
Checked on Win 7 / SPSS 64 bit, 6 GB RAM.
Have it (and thanks for your reply).

********************
WORKSPACE    Special workspace memory limit in kilobytes    5500000
********************

Run MATRIX procedure:

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  512000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  578000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  648000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  722000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  800000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  882000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes  968000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes 1058000000

Internal status --- entries    total-entries    %full
Symbol table            83           140         ****
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Workspace bytes 1152000000

------ END MATRIX -----





25.07.2012 17:40, David Marso пишет:
**FWIW running on 32 bit Vista SPSS 11.5 **.
It would be interesting if someone could run this on a 64 bit system with 64
bit SPSS and report back.
----
DEFINE MAYHEM ().
PRESERVE.
SET MPRINT ON PRINTBACK ON.
!DO !WKSP=45 !TO 55 .
SET WORKSPACE=!CONCAT(!WKSP,'00000').
SHOW WORKSPACE.
MATRIX.
*10500x10500 max on my system.
LOOP #=8000 TO 12000 BY 500.
COMPUTE TEST=MAKE(#,#,1).
DISPLAY STATUS.
RELEASE TEST.
END LOOP.
END MATRIX.
!DOEND
RESTORE.
!ENDDEFINE.
MAYHEM.


*** Maximum my system seems to be able to allocate ***.
SET WORKSPACE= 5100000.
SHOW WORKSPACE.
**WORKSPACE (special workspace memory limit) = 905,696K bytes.


Run MATRIX procedure:

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace 64000000     115929088           55
Secondary storage        0         12800            0

...........

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace100000000     115929088           86
Secondary storage        0         12800            0

Internal status --- entries    total-entries    %full
Symbol table            83           140            3
Semantic stack           1            80            1
Operand stack            2            80            2
Instruction stack       19           560            3
Control register         1            20            5
Allocation table         5           160            3
Primary workspace110250000     115929088           95
Secondary storage        0         12800            0

Number of locations requested = 121000000
Number of locations available = 115929088
Error encountered in source line #  1195

      
Error # 12477
MATRIX work space has been exhausted.  Allocate additional memory and run
again, or release unused matrices using RELEASE statement.  Use DISPLAY
statement to list all allocated objects.  An alternative is to increase
workspace with the SET WORKSPACE command .
This command not executed.
------ END MATRIX -----




--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/MATRIX-END-MATRIX-memory-limitations-tp5714440p5714446.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD



Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

David Marso
Administrator
Amp up the LOOP bounds to see what happens on 64 bit.  Also, do not
truncate the tables from MATRIX.  It is really the second to last row
that is interesting.
> Primary workspace100000000     115929088           86

 The remainder doesn't tell us much.
change !DO !WKSP=45 !TO 55 .
to
!DO !WKSP=55 !TO 200.

change  LOOP #=8000 TO 12000 BY 500.
to
LOOP #=12000  TO 25000 BY 1000.
See where she dies.
With 'only' 6G, 40K x 40K might be a stretch.  What are you attempting
to do?  There might be a better way?


On Wed, Jul 25, 2012 at 10:03 AM, Kirill Orlov <[hidden email]> wrote:

> Checked on Win 7 / SPSS 64 bit, 6 GB RAM.
> Have it (and thanks for your reply).
>
> ********************
> WORKSPACE    Special workspace memory limit in kilobytes    5500000
> ********************
>
>
> Run MATRIX procedure:
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  512000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  578000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  648000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  722000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  800000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  882000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  968000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes 1058000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes 1152000000
>
> ------ END MATRIX -----
>
>
>
>
>
> 25.07.2012 17:40, David Marso пишет:
>
> **FWIW running on 32 bit Vista SPSS 11.5 **.
> It would be interesting if someone could run this on a 64 bit system with 64
> bit SPSS and report back.
> ----
> DEFINE MAYHEM ().
> PRESERVE.
> SET MPRINT ON PRINTBACK ON.
> !DO !WKSP=45 !TO 55 .
> SET WORKSPACE=!CONCAT(!WKSP,'00000').
> SHOW WORKSPACE.
> MATRIX.
> *10500x10500 max on my system.
> LOOP #=8000 TO 12000 BY 500.
> COMPUTE TEST=MAKE(#,#,1).
> DISPLAY STATUS.
> RELEASE TEST.
> END LOOP.
> END MATRIX.
> !DOEND
> RESTORE.
> !ENDDEFINE.
> MAYHEM.
>
>
> *** Maximum my system seems to be able to allocate ***.
> SET WORKSPACE= 5100000.
> SHOW WORKSPACE.
> **WORKSPACE (special workspace memory limit) = 905,696K bytes.
>
>
> Run MATRIX procedure:
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace 64000000     115929088           55
> Secondary storage        0         12800            0
>
> ...........
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace100000000     115929088           86
> Secondary storage        0         12800            0
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace110250000     115929088           95
> Secondary storage        0         12800            0
>
> Number of locations requested = 121000000
> Number of locations available = 115929088
>
> Error encountered in source line #  1195
>
> Error # 12477
> MATRIX work space has been exhausted.  Allocate additional memory and run
> again, or release unused matrices using RELEASE statement.  Use DISPLAY
> statement to list all allocated objects.  An alternative is to increase
> workspace with the SET WORKSPACE command .
> This command not executed.
>
> ------ END MATRIX -----
>
>
>
>
> --
> View this message in context:
> http://spssx-discussion.1045642.n5.nabble.com/MATRIX-END-MATRIX-memory-limitations-tp5714440p5714446.html
> Sent from the SPSSX Discussion mailing list archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD
>
>
>

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

David Marso
Administrator
Never  mind the truncate comment.  
It looks like SPSS changed the format of the output.
*SHAME* since that %full column would be *USEFUL* for that row (in fact that is the ONLY row where it is actually of any use -oh the irony-).
David Marso wrote
Amp up the LOOP bounds to see what happens on 64 bit.  Also, do not
truncate the tables from MATRIX.  It is really the second to last row
that is interesting.
> Primary workspace100000000     115929088           86

 The remainder doesn't tell us much.
change !DO !WKSP=45 !TO 55 .
to
!DO !WKSP=55 !TO 200.

change  LOOP #=8000 TO 12000 BY 500.
to
LOOP #=12000  TO 25000 BY 1000.
See where she dies.
With 'only' 6G, 40K x 40K might be a stretch.  What are you attempting
to do?  There might be a better way?


On Wed, Jul 25, 2012 at 10:03 AM, Kirill Orlov <[hidden email]> wrote:
> Checked on Win 7 / SPSS 64 bit, 6 GB RAM.
> Have it (and thanks for your reply).
>
> ********************
> WORKSPACE    Special workspace memory limit in kilobytes    5500000
> ********************
>
>
> Run MATRIX procedure:
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  512000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  578000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  648000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  722000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  800000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  882000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes  968000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes 1058000000
>
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140         ****
>
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Workspace bytes 1152000000
>
> ------ END MATRIX -----
>
>
>
>
>
> 25.07.2012 17:40, David Marso пишет:
>
> **FWIW running on 32 bit Vista SPSS 11.5 **.
> It would be interesting if someone could run this on a 64 bit system with 64
> bit SPSS and report back.
> ----
> DEFINE MAYHEM ().
> PRESERVE.
> SET MPRINT ON PRINTBACK ON.
> !DO !WKSP=45 !TO 55 .
> SET WORKSPACE=!CONCAT(!WKSP,'00000').
> SHOW WORKSPACE.
> MATRIX.
> *10500x10500 max on my system.
> LOOP #=8000 TO 12000 BY 500.
> COMPUTE TEST=MAKE(#,#,1).
> DISPLAY STATUS.
> RELEASE TEST.
> END LOOP.
> END MATRIX.
> !DOEND
> RESTORE.
> !ENDDEFINE.
> MAYHEM.
>
>
> *** Maximum my system seems to be able to allocate ***.
> SET WORKSPACE= 5100000.
> SHOW WORKSPACE.
> **WORKSPACE (special workspace memory limit) = 905,696K bytes.
>
>
> Run MATRIX procedure:
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace 64000000     115929088           55
> Secondary storage        0         12800            0
>
> ...........
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace100000000     115929088           86
> Secondary storage        0         12800            0
>
> Internal status --- entries    total-entries    %full
> Symbol table            83           140            3
> Semantic stack           1            80            1
> Operand stack            2            80            2
> Instruction stack       19           560            3
> Control register         1            20            5
> Allocation table         5           160            3
> Primary workspace110250000     115929088           95
> Secondary storage        0         12800            0
>
> Number of locations requested = 121000000
> Number of locations available = 115929088
>
> Error encountered in source line #  1195
>
> Error # 12477
> MATRIX work space has been exhausted.  Allocate additional memory and run
> again, or release unused matrices using RELEASE statement.  Use DISPLAY
> statement to list all allocated objects.  An alternative is to increase
> workspace with the SET WORKSPACE command .
> This command not executed.
>
> ------ END MATRIX -----
>
>
>
>
> --
> View this message in context:
> http://spssx-discussion.1045642.n5.nabble.com/MATRIX-END-MATRIX-memory-limitations-tp5714440p5714446.html
> Sent from the SPSSX Discussion mailing list archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD
>
>
>

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: MATRIX - END MATRIX memory limitations

Kirill Orlov
I raised the bound as you said:

DEFINE MAYHEM ().
PRESERVE.
SET MPRINT ON PRINTBACK ON.
!DO !WKSP=55 !TO 200
SET WORKSPACE=!CONCAT(!WKSP,'00000').
SHOW WORKSPACE.
MATRIX.
LOOP #=12000� TO 25000 BY 1000.
COMPUTE TEST=MAKE(#,#,1).
DISPLAY STATUS.
RELEASE TEST.
END LOOP.
END MATRIX.
!DOEND
RESTORE.
!ENDDEFINE.
MAYHEM.

She ate it and didn't choke. Here is last iteration output again:

WORKSPACE� � � Special workspace memory limit in kilobytes� � � 20000000

Run MATRIX procedure:

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 1152000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 1352000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 1568000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 1800000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 2048000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 2312000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 2592000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 2888000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 3200000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 3528000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 3872000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 4232000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 4608000000

Internal status --- entries� � � total-entries� � � %full
Symbol table� � � � � � � � � � � 83� � � � � � � � � � 140� � � � � � � � ****
Semantic stack� � � � � � � � � � 1� � � � � � � � � � � 80� � � � � � � � � � � 1
Operand stack� � � � � � � � � � � 2� � � � � � � � � � � 80� � � � � � � � � � � 2
Instruction stack� � � � � � 19� � � � � � � � � � 560� � � � � � � � � � � 3
Control register� � � � � � � � 1� � � � � � � � � � � 20� � � � � � � � � � � 5
Allocation table� � � � � � � � 5� � � � � � � � � � 160� � � � � � � � � � � 3
Workspace bytes 5000000000

------ END MATRIX -----

I really suspect that in later versions MATRIX isn't sensitive to WORKSPACE anymore.
When I requested construction of 30000x30000 matrix within my algo the program embarked on doing it without saying, even that WORKSPACE was default low (6144). But when I requested 40000x40000 it refused at once (saying back that too many bytes were demanded), despite that I raised WORKSPACE more and more.

Well, OK, thank you. I ought to reconsider my algo to try to make it less memory voracious.