[ltp] help --size of my program too large

George Jiang linux-thinkpad@linux-thinkpad.org
Wed, 02 Jul 2003 15:40:28 -0600


hello :

     thanks to everyone who replied my question.

     here is the output of the command "size ac3dp_L.exe"( I used a small 
model here) :
   text         data     bss                 dec                hex          
    filename
  10869     952 902234992       902246813       35c7319d        ac3dp_L.exe

     for a small model, the exe file runs well; but it fails when I set a 
larger model( then the "size" command reports the size is 1.2G,1.5G,2.0G 
...).

    Reason for a large exe file: My Fortran program is to simulate the 
earthquake and record the seismograms, so it requires a lot of resource.

     Hardware on my computer: AMD Athlon 1800+, 1.5G memory.
     OS on my computer:  redhat Linux 8.0 (kernel 2.4.18-14) .
     Fortran compiler: f77 .

     My research requires me to set a larger model, but now it seems I have 
to deal with a smaller model.

    thanks.
   George Jiang

>From: Tod Harter <tharter@rhombus.net>
>Reply-To: linux-thinkpad@linux-thinkpad.org
>To: linux-thinkpad@linux-thinkpad.org
>Subject: Re: [ltp] help --size of my   program too large
>Date: Tue, 1 Jul 2003 21:44:24 -0400
>
>Well, its not quite as straightforward as a 'hard limit' on the total size 
>of
>the process. x86 has essentially 4 pointers to memory segments, 1 code, 1
>data, 1 stack, and an 'extra'. Those in turn point to descriptor tables.
>Linux basically simplifies things by only giving you one descriptor table
>entry for each of these 4 areas. So thats one set of limitations, which
>varies from 386 to 686 as to the size of the limit, but the memory 
>management
>code is I suspect basically assuming you have a 586 at best.
>
>Then as I say there are I/O limitations. DMA channels and ATA on most 
>mother
>boards cannot directly access above 1 gig physical memory, so the act of
>trying to load a code (text) segment of >1 gig in size might well segfault.
>
>I would not be at all surprised to see processes with more than 1 gig of
>mapped address space total, but like with your java process its going to be
>split up between stack, code, and data segments. No one of them is likely
>going to go over 1 gig, and ESPECIALLY nobody ever built the run time 
>loader
>with 1 gig executeable image in mind!!!!!
>
>On Tuesday 01 July 2003 06:58 pm, Alexander Gran wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > I'm sure linux can handle more than 1GB for one process, I've got java
> > runnig with up to 1.6GB here, more isn't possible, though(I've got no 
>idea
> > why, but increasing the maximum heap to more than 1.6GB isn't possible,
> > even on system with 2GB ram. SGIs Irix has(had? haven't tried recent
> > versions) the same problem, so it may be a java issue). However, I do 
>not
> > see a reason for having such large exceutables, Why don't you just load 
>the
> > data via normal IO?
> >
> > Alex
> >
> > Am Mittwoch, 2. Juli 2003 00:24 schrieb Tod Harter:
> > > Ouch!
> > >
> > > I'd have to go back and stare at my x86 assembler manuals and whatnot 
>for
> > > a while to be sure, but I believe you are simply running into a
> > > fundamental limitation of memory mapping here. That is to say that x86
> > > simply cannot map a single segment that is larger than 1G... At least 
>not
> > > the way Linux's memory management is designed. Maybe there are 
>compiler
> > > options that let Linux load a larger than 1gig ELF into a code 
>segment,
> > > but just as a guess, probably not...
> > >
> > > In my wildest dreams I have never heard of a 1 GIG executeable before!
> > > How could you have such a huge text segment? I can only suggest a
> > > redesign of the program so it loads WHATEVER is in that memory AFTER 
>it
> > > begins to run, in which case it will be in a different segment. Even 
>then
> > > I'm highly skeptical that Linux on x86 can deal with a single process
> > > requiring in excess of a gig of address space to be mapped, period.
> > >
> > > There are also a host of other potential pitfalls, like I/O to 
>addresses
> > > over 1 gig requires special workarounds, and it may be that the kernel
> > > simply can't load across to the 1 gig physical memory barrier.
> > >
> > > Even assuming you CAN find the reason for this, I suspect it will be 
>no
> > > end of problems. I think you will just have to segment up the problem
> > > into smaller chunks and process it in stages.
> > >
> > > On Tuesday 01 July 2003 02:56 pm, George Jiang wrote:
> > > > Hi ,  sorry to put this message here. But I know there are a lot of
> > > > experts on Linux here, and I don't know other pertinent linux
> > > > newsletters. Thanks.
> > > >
> > > > --- Steps ---
> > > > During my research I have to use a Fortran program for scientific
> > > > computation.
> > > > It deals with a large model.
> > > > first, I use "f77 aa.f -o aa.exe" to compile it;
> > > > second, I use "size aa.exe" to view the size of the exe file;
> > > > third, I use "./aa.exe" to run the program.
> > > >
> > > > --- Problem ---
> > > > When the size is larger than 1.0 G, I got the message "Segmentation
> > > > fault (cor
> > > > e dumped)"  when I run "./aa.exe";
> > > > Then I adjusted the model size, and redo step1,2,3. This time the
> > > > program runs
> > > > well.
> > > >
> > > > --- Question ---
> > > > My computer has 1.5G memory; does anyone know how to fix this 
>problem
> > > > so that I can run the program with a larger model (my research 
>requires
> > > > me to run a large model)?  such a
> > > > s modify the configuration or settings of the Linux system... ( red 
>hat
> > > > linux 8.0
> > > > )?
> > > > ( I've thought about MPI; But it's not easy to modify the program 
>for
> > > > parralel
> > > > computing, so I want to find another solution)
> > > >
> > > > Thanks a lot!!
> > > >    George Jiang
> > > >
> > > > _________________________________________________________________
> > > > STOP MORE SPAM with the new MSN 8 and get 2 months FREE*
> > > > http://join.msn.com/?page=features/junkmail
> > >
> > > --
> > > Tod Harter
> > > Giant Electronic Brain
> > > http://www.giantelectronicbrain.com
> >
> > - --
> > Some operating systems are called `user friendly',
> > 	Linux however is `expert friendly'.
> > Encrypted Mails welcome. Send spam to toZodiac@gmx.net, please.
> > PGP-Key at http://zodiac.dnsalias.org/misc/pgpkey.asc | Key-ID: 
>0x6D7DD291
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.2.1 (GNU/Linux)
> >
> > iD8DBQE/AhIz/aHb+2190pERAjFnAJ9bT7kG5HDyhHdadmV8RgtlOR3K2QCeIZ3S
> > v9NnYJd8kP7jz8NA+/xXoUs=
> > =X/s6
> > -----END PGP SIGNATURE-----
>
>--
>Tod Harter
>Giant Electronic Brain
>http://www.giantelectronicbrain.com
>--
>The linux-thinkpad mailing list home page is at:
>http://mailman.linux-thinkpad.org/mailman/listinfo/linux-thinkpad

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*  
http://join.msn.com/?page=features/virus