[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Huge contiguous memory allocation in userspace



A research group I am part of is having difficulty running in Linux a 
simulation that uses huge amounts of memory accessed via a single array.  We 
use the Portland Group's (www.pgroup.com) FORTRAN compiler (pghpf) to take 
advantage of our dual-processor system.  However, it has 4GB of real memory, 
and while kernels 2.4 and 2.2 w/bigmem can see all of the memory, our model 
can only allocate up to about 2GB of memory before it will segfault.  I see 
this also when I use C/GCC for a single huge malloc'ed or valloc'ed array, 
but in smaller chunks, I can allocate up to 3GB.

I have tried many kernels and a few methods in userspace.  The Portland Group 
assures me that their compiler does not have a limit in memory 
accessing/addressing.  http://his.luky.org/ML/linux-kernel.2000/msg02108.html 
mentions using mmap(), but I don't know how this would be used, especially in 
FORTRAN.

How do I go about accessing the remaining 2GB of real memory for use in this 
simulation?  Is there anyway to have virtually non-contiguous memory spaces 
remapped to be addressed contigously?  Or am I totally confused here?

I apologize if this is not the list I should be posting this to or if this 
has been covered before.  Any input would be appreceated. 

Thank you for your time.

-- 
Joseph P. Garcia
Programmer - UW Lidar Group
http://lidar.ssec.wisc.edu/
-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.surriel.com/kernelnewbies.shtml