Q: pgf77 on x86 w/ > 1GB RAM?

Brian brian at heptane.eng.yale.edu
Tue Jul 24 13:07:37 PDT 2001


Hi Toon,

  To me it's been more frustrating than fascinating.. I took your
suggestion, though, and glanced around the linux development newsgroup,
and stumbled across a post from someone with exactly that same code you
wrote... someone else replied to him as follows:

>From: Wolfram Gloger (wmglo at dent.med.uni-muenchen.de)
>Subject: Re: limitation of use RAM memory
>Newsgroups: comp.os.linux.development.system
>Date: 2001-07-03 06:05:26 PST

>"Simone Ceccherini" <ceccherini at iroe.fi.cnr.it> writes:

>> My kernel is compiled with large memory support set to 64 G . ...
>> It seems that there is a limitation in the compiler gcc.
>> Do you know if there is a way to bypass this limitation?

>Your original code had global arrays like

>static float a[134217728];
>static float b[134217728];

>The Linux kernel places shared libraries at 0x40000000 by default, so
>on ix86 you have only about 1GB _total_ for your program code and this
>kind of data.  It has nothing to do with gcc.

>Possible solutions: (a) link statically, such that there aren't any
>shared libraries.  Or (b) use malloc() to allocate the arrays.  That
>should give you about 3GB total (but note that malloc() can't allocate
>a single chunk larger than 2GB).

>Regards,
>Wolfram.

  In looking at the code I'm trying to compile, all the variables are
globally defined, too (argh!), and so perhaps that is the problem.  This
could be why my test C++ program, dynamically allocating all the memory it
needed, worked fine.

> I've never heard from them since.

  I'm glad to know I'm not the only one this has bugged.  :)

  Also, for the record, I was using pgf77, not g77, so it certainly looks
like it's a universal thing.  I imagine if I tried the absoft compiler,
the same would happen.

  - Brian


(And thanks to Wolfram Gloger, too!)





More information about the Beowulf mailing list