[Beowulf] hang-up of HPC Challenge

Perry E. Metzger perry at piermont.com
Wed Aug 20 09:13:44 PDT 2008


Mark Hahn <hahn at mcmaster.ca> writes:
>>> What I meant was: surely the stacksize is not really limited, even it it is
>>> configured without limits?
>
> unlimited just means that the kernel code responsible for letting the
> stack grow will not impose a specific limit until it "runs into"
> some other memory allocation...

Or until it hits an internal limit of some sort.

>> I'm wrong here, but I believe the stack is allocated 'upward' from the end
>> of where your data/program reside in memory, whereas variables on the heap
>> are (or tend to be, in fragmented memories) allocated 'downward' from the
>> maximum available free memory.  So, at some point, those two will meet if
>
> the opposite, actually.  stack is high and grows toward low addresses.

That is architecture dependent, though I will admit that most common
modern architectures, such as the x86 descended ones, work that way.

> yeah, pretty much - text and heap are the same, but the mmap arena
> starts at ~182 GB instead of 1 GB.

That also depends. You can request mmaps at specific locations, and
different operating system variants pick different defaults when you
don't request one.

> the memory manager just knows pages; it doesn't really care whether
> the app thinks of it as stack or heap.

Again, not precisely true. Most modern operating systems don't
allocate stack pages in advance of use -- they have logic that knows
that a region is stack and automatically allocates a new stack page if
there is a fault caused by accessing the page past the top of the
stack.

-- 
Perry E. Metzger		perry at piermont.com



More information about the Beowulf mailing list