newbie requests advice.

David Vos dvos12 at calvin.edu
Tue Jun 19 10:17:22 PDT 2001


On Tue, 19 Jun 2001, Adam Shand wrote: 
> > Well if your software is available in binary-only form and was
> > compiled for the i386, the application itself is limited to 3GB.
> 
> okay i'm confused, apologies for my ignorance i'm not much of a programmer
> (more of a perl/python hack).
> why would the application itself be limited?

Because the program has to access memory locations.  A memory location is
a number.  You can save a value at location 1, 15, 9532, etc.  Variable
names essentially mask over this.  On a 32-bit machine, the memory
location must be a 32-bit number.  That means it's value can be from zero
to 2^32 - 1.  That comes out to roughly 4 billion possible memory
locations a program can use.  If each memory location stores one byte of
information, then a program has access to about 4 billion bytes, or 4
Gigabytes.  

00000000000000000000000000000000 == 0
11111111111111111111111111111111 == 2^32 - 1

But, an operating system can stand between a program's memory request and
the actual memory.  So if a program requests data from memory location 45,
the operating system can add an offset to this number.  Instead of getting
data from location 45, it might really get data from location
1,000,045.  The program doesn't know the difference.  The operating system
can set program A to be offset by 1,000, program B by 2,000,
etc.  Therefore, the programs cannot interfere with each other, and they
are oblivious to where the actual data is being stored.  So, program A can
use the first 4 Gigabytes, program B can use the second 4 Gigabytes, etc.

Whether or not the programs can access the full 4 Gigabytes or if they are
limited to 3 Gigs for other reasons, I don't know.

I'm sorry if this email just confused you more.  I might be totally
missing something obvious and got it all wrong.  I just wrote a compiler
for an under-grad course, so I have a decent understanding of how a lot of
the memory management works, but I really don't know all of the OS
internals.

> 
> and is the limit with linux 2.4 3gb or 4gb of memory per process.  i've
> had different people say directly conflicting stuff to me in personal
> email from posts to this list (which was my general experience trying to
> figure this out on the web as well).
> 
> > However, if your applications can use IPC or can do MPI, you could get
> > several copies of the app running on one host (if you decide to pack
> > more than 3GB into one host).  And communication within the 127.x.x.x
> > net will be much faster than any other addresses. :)
> 
> unfortunately i don't think they do, so that's not an option.  i only
> started working here a week ago so there's a lot i don't know about the
> appliations we run, i'm just trying to get an overview of what's possible
> so i can begin architecting sensible tests and set my boss' expectations
> correctly.

It looks like you might have to stick with Sun for at least another year
or so.

David

> adam.
> 
> 
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
> 





More information about the Beowulf mailing list