[Beowulf] Feedback on large pages in Linux

duncan.thomas at quadrics.com duncan.thomas at quadrics.com
Thu Jul 20 02:58:29 PDT 2006


Joe Landman on 17 July 2006 22:05 wrote:

> Toon Moene wrote:
> 
> > Fascinating.
> > 
> > How would you envision this done ?
> > 
> > Most of our "large memory usage" is of the form:
> > 
> > main program:
> > 
> >       READ * L, M, N
> >       CALL MAIN(L, M, N)
> >       ...
> >       END
> > ....
> > separate file:
> >       SUBROUTINE MAIN(L, M, N)
> >       REAL U(L, M, N), V(L, M, N), T(L, M, N), Q(L, M, N)
> >       ....
> > etc.
> > 
> > I.e., the memory used (automatic arrays) is based on the stack (at 
> > least, that's how most Fortran compilers would implement it.
> 
> Yes, that is how it was implemented in IRIX as I remember.  
> You simply 
> ran the code with a helper environment/application that let you use 
> large pages.

Tru64 (and therefore the old Alphaserver SC clusters) worked in a similar way - flip a kernel config entry, reboot and /any/ allocation above a tunable size would get as large a page as possible. Stack, mmap, malloc, it didn't matter. Fragmentation can be a problem, it is trivial to syntesise a workload that breaks up all the large pages, but I've found that generally even after months of uptime there are still a high percentage of large pages available.

-- 
Duncan Thomas
Quadrics, One Bridewell Street, Bristol, BS1 2AA, UK
Telephone: +44 117 9155525  Fax: +44 117 9075395
Email: duncan.thomas at quadrics.com http://www.quadrics.com 




More information about the Beowulf mailing list