[Beowulf] Feedback on large pages in Linux

hahn at physics.mcmaster.ca hahn at physics.mcmaster.ca
Fri Jul 21 20:39:23 PDT 2006


>>> 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.

yeesh.  for what it's worth, I sat in on an OLS BOF today which 
discussed this issue (using big pages in linux).  from what I gather,
kernel authorities don't want to complicate the VM by mixing normal
and big pages (4K and 2M on ia32/x86_64).  so big pages are allocated
via hugetlbfs today, and this mechanism will be converted to mmaping 
a block device in the future.  but in either case, this is not a 
mechanism which readily integrates into malloc or fortran stack allocation.
it may be possible to implement a certain amount of transparency
(falling back from large to small pages and replacing contiguous ranges
of small pages with larger ones), perhaps purely at user-level.

it would be incredibly useful if the HPC community could come up with 
some actual numbers on how important bigpages are.  I'm ashamed to say
that I haven't made any effort to measure this on any of my clusters.
oprofile appears to make it pretty easy to capture real data on how 
often TLB's are a problem.

have any of you tried to get a handle on this stuff?

thanks, mark hahn.



More information about the Beowulf mailing list