Memory for large arrays in cygwin/g77

Mark Hadfield m.hadfield@niwa.co.nz
Thu Jan 6 01:04:00 GMT 2005


Dante Chialvo wrote:
> I have similar problem than the one posted a while ago in
> 
> http://www.cygwin.com/ml/cygwin/2003-02/msg00842.html
> 
> Using cygwin/g77, in a PC with 1024 Mb of physical memory. 
> After compiling and running the following test program 
> the limit of 160 Mb cannot be surpassed. 
> 
> implicit double precision (a-h,o-z)
> c ny=200 works (160 Mb), > 200 doesnt (message error see beloww)
> parameter(nx=100000,ny=300)
> dimension a(nx,ny)
> c dimension a1(nx,ny)
> write(6,*) 'megabytes= ',nx*ny*8/1d6
> a(1,1)=1d0
> a(nx,ny)=1d0
> write(6,*) 'extremes initialized'
> end
> 
> error message after running
> C:\cygwin\home\dchialvo\test.exe (1972): *** MapViewOfFileEx(0x71C, in_h 
> 0x71C) failed, Win32 error 6
> 
> I follow each one of the recomendation described here:
> 
> http://sources.redhat.com/ml/cygwin/2003-02/msg00234.html
> 
> setting the limit at 1024 Mb,etc, the registry shows that there
> 1024 allocated however the problem persist, 
> no more than  160 mb can be allocated.
> 

Just to provide another data point, I have the same problem. I have g77, 
g95 and grfortran (gfc) installed (see below). With heap_chunk_in_mb set 
to 1024, on a machine with 1024 MiB RAM< I can run a simple Fortran 
program with an array of up to ~ 1023 MiB. With g77 & gfc the limit is 
156 MiB and beyond that it fails with something like

   gfctest.exe (844): *** MapViewOfFileEx(0x224, in_h 0x224)
   failed, Win32 error 6

Here is an example test program

       program main
       integer n
       parameter (n=40876200)
       real a(n)
       integer i
       do i=1,n
         a(i) = i
       end do
       write (unit=*, fmt=*) a(1), a(n)
       end

And here is the -v output for each compiler:


hadfield $ g77 -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr 
--exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib 
--libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info 
--enable-languages=c,ada,c++,d,f77,java,objc,pascal --enable-nls 
--without-included-gettext --enable-libgcj --with-system-zlib 
--enable-interpreter --enable-threads=posix --enable-java-gc=boehm 
--enable-sjlj-exceptions --disable-version-specific-runtime-libs 
--disable-win32-registry
Thread model: posix
gcc version 3.3.3 (cygwin special)
hadfield $ gfc -v
Reading specs from 
/usr/local/share/irun/bin/../lib/gcc/i686-pc-cygwin/4.0.0/specs
Configured with: ../gcc-4.0-20041114/configure --prefix=/irun 
--enable-languages=f95 --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/gmp
Thread model: single
gcc version 4.0.0 20041114 (experimental)
hadfield $ g95 -v
Using built-in specs.
Configured with: ./configure --enable-languages=c --disable-nls
Thread model: single
gcc version 3.5.0 20040824 (experimental) (g95!) Dec 15 2004


 > Any suggestions will be appreciatted

Use g95

-- 
Mark Hadfield            "Ka puwaha te tai nei, Hoea tatou"
m.hadfield@niwa.co.nz
National Institute for Water and Atmospheric Research (NIWA)


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list