[ltp] help --size of my program too large
James Mckenzie
linux-thinkpad@linux-thinkpad.org
Wed, 02 Jul 2003 22:19:19 -0700
All:
Is there a bigmem version of the kernel for the Athlon processor series?
Is there a parameter that limits the size of a program that can be
loaded onto a system like the memsiz parameter that exists under HP-UX?
Maybe this will help George with his problem.
James McKenzie
George Jiang wrote:
>
> 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
>