Q: pgf77 on x86 w/ > 1GB RAM?
brian at heptane.eng.yale.edu
Tue Jul 24 13:07:37 PDT 2001
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
>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;
>static float b;
>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).
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.
(And thanks to Wolfram Gloger, too!)
More information about the Beowulf