[Info-vax] problems allocating "large" arrays in OpenVMS-Fortran
Joukj
joukj at hrem.nano.tudelft.nl
Mon Oct 28 06:36:39 EDT 2013
Hi all,
I'm trying to use large arrays in a Fortran program, but it fails
giving: %FOR-F-INSVIRMEM, insufficient virtual memory!
PLAESE, can someone point me in the right direction to tune my system in
order to avoid the above error.
I'm using : HP Fortran V8.2-104954-50N8G on OpenVMS IA64 V8.4
The code I tried:
program test
!
integer ( kind = 1 ) , allocatable :: size_array( : , : , : )
integer ( kind = 4 ) , parameter :: dimens = 1000
integer ( kind = 4 ) :: gbs
!
write( * , * ) 'number of GB :'
read ( * , * ) gbs
allocate( size_array( gbs * dimens , dimens , dimens ) )
size_array=4
read( *, *)
!
end
Compiling running it like:
valeta-jj) f90 test
valeta-jj) link test
valeta-jj) run test
number of GB :
1
valeta-jj) run test
number of GB :
2
%FOR-F-INSVIRMEM, insufficient virtual memory!/ unit !SL file !AS!/
user PC !
XL
%TRACE-F-TRACEBACK, symbolic stack dump follows
image module routine line rel PC abs PC
DEC$FORRTL 0 00000000000CFA40
FFFFFFFF84DDFA40
test TEST TEST 9 00000000000002C2
00000000000102C2
0 FFFFFFFF80A190D2
FFFFFFFF80A190D2
DCL 0 000000000007D072
000000007AE45072
%TRACE-I-END, end of TRACE stack dump
So if gbs=1 everything is OK, but with gbs=2 it already crashes.
The machine has 64GB RAM and enough paging space which is hardly ever used:
valeta-jj) sh mem
System Memory Resources on 28-OCT-2013 10:25:14.11
Physical Memory Usage (pages): Total Free In Use Modified
Main Memory (63.99GB) 8388560 8195291 192775
494
Extended File Cache (Time of last reset: 28-OCT-2013 08:30:33.56)
Allocated (MBytes) 144.65 Maximum size (MBytes)
32767.81
Free (MBytes) 0.00 Minimum size (MBytes)
3.12
In use (MBytes) 144.64 Percentage Read I/Os
96%
Read hit rate 81% Write hit rate
0%
Read I/O count 55125 Write I/O count
1942
Read hit count 44669 Write hit count
0
Reads bypassing cache 51 Writes bypassing cache
1
Files cached open 682 Files cached closed
611
Vols in Full XFC mode 0 Vols in VIOC Compatible mode
27
Vols in No Caching mode 0 Vols in Perm. No Caching mode
0
Granularity Hint Regions (pages): Total Free In Use
Released
Execlet code region 4096 597 3499
0
Execlet data region 2048 1143 905
0
S0S1 Executive data region 6845 0 6845
0
S0S1 Resident image code region 8192 5055 3137
0
S0S1 Resident image data region 512 347 165
0
Slot Usage (slots): Total Free Resident Swapped
Process Entry Slots 826 783 43
0
Balance Set Slots 824 783 41
0
Dynamic Memory Usage: Total Free In Use Largest
Nonpaged Dynamic Memory (MB) 53.17 42.88 10.29
42.60
Bus Addressable Memory (KB) 128.00 110.87 17.12
104.00
Paged Dynamic Memory (MB) 11.68 5.60 6.07
5.60
Lock Manager Dyn Memory (MB) 5.88 2.43 3.44
Buffer Object Usage (pages): In Use Peak
32-bit System Space Windows (S0/S1) 1 1
64-bit System Space Windows (S2) 0 0
Physical pages locked by buffer objects 1 1
Memory Reservations (pages): Group Reserved In Use Type
Total (0 bytes reserved) 0 0
Swap File Usage (8KB pages): Index Free Size
DISK$VALETA_29757:[SYSEXE]SWAPFILE.SYS;2
1 6600
6600
Paging File Usage (8KB pages): Index Free Size
DISK$VALETA108:[sysexe]PAGEFILE.SYS;3
253 4999992
4999992
DISK$VALETA_29757:[SYSEXE]PAGEFILE.SYS;1
254 3143423
3143424
Total size of all paging files:
8143416
Total committed paging file usage:
17873
Of the physical pages in use, 157170 pages are permanently allocated to
OpenVMS.
I already tried to increase my process quota:
UAF> sh joukj
Username: JOUKJ Owner: JOUK JANSEN
Account: JOUKJ UIC: [300,300] ([JOUKJ])
CLI: DCL Tables:
BOLERO$DKA0:[JOUKJ.COM]JJJ.EX
E
Default: SYS$SYSDEVICE:[JOUKJ.COM]
LGICMD:
Flags:
Primary days: Mon Tue Wed Thu Fri
Secondary days: Sat Sun
No access restrictions
Expiration: (none) Pwdminimum: 6 Login Fails: 0
Pwdlifetime: (none) Pwdchange: 19-SEP-2011 16:47
Last Login: 28-OCT-2013 10:08 (interactive), 28-OCT-2013 08:52
(non-interactive)
Maxjobs: 0 Fillm: 5000 Bytlm: 2100000
Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0
Maxdetach: 0 BIOlm: 10000 JTquota: 60000
Prclm: 40 DIOlm: 1024 WSdef: 48000
Prio: 4 ASTlm: 1200 WSquo: 200000
Queprio: 0 TQElm: 400 WSextent: 1000000
CPU: (none) Enqlm: 4000 Pgflquo: 72000000
I tried to play with some sysgen-parameters but I did not see any change
SYSGEN> SHOW WS*
Parameter Name Current Default Min. Max. Unit
Dynamic
-------------- ------- ------- ------- ------- ----
-------
WSMAX 4669536 131072 16384 134217728 Pagelets
internal value 291846 8192 1024 8388608 Pages
WSINC 187780 2400 0 -1
Pagelets D
internal value 11737 150 0 -1 Pages
D
WSDEC 93890 4000 0 -1
Pagelets D
internal value 5869 250 0 -1 Pages
D
SYSGEN> SHOW PQL_M*
Parameter Name Current Default Min. Max. Unit
Dynamic
-------------- ------- ------- ------- ------- ----
-------
PQL_MASTLM 100 4 4 -1 Ast
D
PQL_MBIOLM 100 4 4 -1 I/O
D
PQL_MBYTLM 128000 128000 128000 -1 Bytes
D
PQL_MCPULM 0 0 0 -1 10Ms
D
PQL_MDIOLM 100 4 4 -1 I/O
D
PQL_MFILLM 100 2 2 -1 Files
D
PQL_MPGFLQUOTA 72000000 512000 512000 -1
Pagelets D
internal value 4500000 32000 32000 -1 Pages
D
PQL_MPRCLM 10 0 0 -1
Processes D
PQL_MTQELM 0 0 0 -1 Timers
D
PQL_MWSDEFAULT 291937 16384 16384 -1 Pagelets
internal value 18247 1024 1024 -1 Pages
PQL_MWSQUOTA 583874 32768 32768 -1
Pagelets D
internal value 36493 2048 2048 -1 Pages
D
PQL_MWSEXTENT 4669536 65536 65536 -1
Pagelets D
internal value 291846 4096 4096 -1 Pages
D
PQL_MENQLM 300 64 64 -1 Locks
D
PQL_MJTQUOTA 0 0 0 -1 Bytes
D
I'm lost, so any help is welcome
Regards
Jouk
More information about the Info-vax
mailing list