Operating System - OpenVMS
1827757 Members
3002 Online
109969 Solutions
New Discussion

Re: INSVIRMEM Linking fortran

 
Antonio Gonzalez_4
Regular Advisor

INSVIRMEM Linking fortran

Alpha OpenVMS v7.3-2
780MB RAM

I get the error:
LINK-E-INSVIRMEM insuficient virtual memory for 3625454. pages for cluster DEFAULT_CLUSTER

We've increased the WSEXTENT.
Also the PGFLEQUOTA & pagefile size.
No way.

Is something we can do without reviewing all the code and reducing variables and so on.

Could be possible to use shared images instead a single one ?? Will this save virtual pages ??

Would a memory upgrade be of any help ??

thanks a lot
antonio
3 REPLIES 3
John Gillings
Honored Contributor

Re: INSVIRMEM Linking fortran

Antonio,

Most likely you have an extremely large statically allocated array.

3625454 pages is more than 27GB. Since it's in the DEFAULT_CLUSTER, the linker will try to put it into P0 space. Remember that P0 space is only 1GB and it has a lot of other stuff in it besides your data. Obviously it just won't fit!

This is a hard, physical limit, so changing quotas or upgrading memory won't help, nor will using shareable images.

Being OpenVMS Alpha, you have plenty of address space, but to use objects that large they must be placed in P2 space. There are a variety of ways to tell Fortran to do this. It may be as simple as finding the the object and giving it the ADDRESS64 attribute. Other options include using LIB$GET_VM_64 to dynamically allocate storage. See the Fortran manuals for more details.

That said, first thing you should check is that the code really needs objects that large. It could be a simple typo adding an extra digit or two to an outer dimension.

If you really are manipulating objects that large, make sure you have sufficient page file space - I'd say at least 36GB, and you'll need a PGFLQUOTA to match.
A crucible of informative mistakes
Antonio Gonzalez_4
Regular Advisor

Re: INSVIRMEM Linking fortran

Thanks John.
I've seen an entry in the www.openvms.org forum regarding the pages number shown in the error message. These seem to be pagelets (512bytes) instead of pages (8KB). ??.
Can read that here:
http://www.openvms.org/phorum/read.php?f=5&i=170&t=170

Following this idea, I only need less than 2GB of virtual address. Not too much !!

This may be a problem for the P1 limit you mention.

Any way, I've tryed to put in place a BIG pagefile (like 30GB) & the corresponding PGFLQUOTA without success. The error message text didn't changed, so I think that the message complains about something else, not the pagefile size or quota.

We can't review all the code, but have identified 6 .OBJ modules that trigger the error. I'll look at the ADDRESS64 attribute.
If this can be used without much coding changes, then it can solve my problem.

thanks for your time
antonio
John Gillings
Honored Contributor

Re: INSVIRMEM Linking fortran

antonio,

P0 is only 1GB in total, so even "only" 2GB simply won't fit! There's a lot of stuff that needs to live in that region that you have no control over. I'd be looking to migrate any data objects larger than (say) 0.1GB out of P0 and into P2 space.
A crucible of informative mistakes