From: fairfield@slacvx.slac.stanford.edu
Subject: Re: MEMFUL on large arrays
Organization: Stanford Linear Accelerator Center
Distribution: usa
Date: Wed, 27 Jan 1993 07:50:37 GMT

In article <1993Jan26.155520@mccall.com>, tp@mccall.com (Terry Poot) writes:
> In article <4582@winnie.fit.edu>, karin@zach.fit.edu (Karin Nicholson) writes:
>>I have a friend who wants to run a program that has large arrays. He hasn't
>>been able to get beyond linking the darn thing.  His declaration section
>>reads as follows:
>>
>>     COMMON X(2400,2400),A1(2400,2400),A2(2400,2400),WT(5,2400),
>>     & XT(2400,2400),D(2400),XMEAN(2400),SUM(2400),SD(2400),DT(2400)
>>      CHARACTER*15 IN(12),OUT1,OUT2
>>
>>When he tries to link, he gets the following messages:
>>
>>%LINK-E-MEMFUL, insufficient virtual address space to complete this link
>>-LINK-E-NOIMGFIL, image file not created
>
> I assume you know how big this is!  Anyway, this happened to me a long long
> time ago, and the answer was to raise the sysgen parameter VIRTUALPAGECNT.
> Apparently, you need to be able to virtually address the whole image to
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> link it.  You also had better check the size of your page file.  This
> program uses over 100 megabytes of virtual memory, which means you are
> going to need a page file well over 200,000 blocks, and your virtualpagecnt
> parameter is going to have to be upwards of 200,000 also.  Read the manuals
> to learn all the ramifications of this, do _not_ simply take my word for
> it.  This was about 10 years ago, on VMS 3.2 or something like that!

    You don't have to be able  to  virtually address the whole image.  I
    know  because  I  recently had a user come to me  with  the  related
    problem that he could link an image, he  but  couldn't  activate  it
    because of insufficient VIRTUALPAGECNT...and see below.

    However, something the Terry neglected to mention is that the user's
    PGFLQUO (set via AUTHORIZE) must also be large enough to contain the
    virtual address space of the image.  Thus to run your large, >200000
    page image, you'll need VIRTUALPAGECNT  and PGFLQUO larger than, but
    on  the  order of, 200000 pages, and you'll need  your  PAGEFILE.SYS
    about the same size (in blocks :-).

>>I'd like to know where in the grey wall I can find out more information about
>>demand-zero compression.  I have looked in a couple of places, but came up
>>empty-handed.
>
> The linker manual.  VIRTUALPAGECNT is in the sysgen manual, and you'll also
> want to look at the various system management guides about sysgen
> parameters and managing page files and virtual memory.

    There was an interesting thread in this group at the end of December
    under the subject "ballooning  EXE  size"  that  explored use of the
    ISD_MAX  linker option to increase the allowed number of demand-zero
    image sections.  You may  want  to  retrieve  these  items  from  an
    INFO-VAX archive near you.  But I found Steve Lionel's suggestion to
    use  the  COLLECT  linker option the most interesting.  I've saved a
    copy that I can forward  if  you  like  to  see it (won't solve your
    problem).

    	-Ken
--
 Dr. Kenneth H. Fairfield    |  Internet: Fairfield@Slac.Stanford.Edu
 SLAC, P.O.Box 4349, MS 98   |  DECnet:   45537::FAIRFIELD (45537=SLACVX)
 Stanford, CA   94309        |  BITNET    Fairfield@Slacvx
 ----------------------------------------------------------------------------
 These opinions are mine, not SLAC's, Stanford's, nor the DOE's...