Originally Posted by whaler1
EISA Memory BIOS Interface is present
Address Map BIOS Interface is present
Lower memory: 602K, Upper memory (to first chipset hole): 3136064K
I've never seen the displaymem program, so I don't know what it ought to be telling you. That phrase to first chipset hole
is significant and seems to mean the info you are getting from displaymem isn't what you might expect if you ignored that phrase.
You have lots of ram, lots of swap space, and a 64 bit kernel. I don't think there is any memory problem in the hardware or the Linux kernel.
IIUC, you're trying to work with matrices of 6.4G items, but you say those work in Windows XP with 2GB of ram. Even if that is 64 bit Windows XP and you have lots of swap space, an operation on 6.4G items would run too slowly to be useful.
So either you mean sparse matrices or I entirely misunderstood what you mean. Assuming sparse matrices, we have no way of guessing what the size really is. Since we don't know how sparse they are, 80000^2 tells us nothing.
It's hard to guess from so little info, but I'll guess anyway. Please try
That tells you the current limit (in KB) on the size of a stack. Maybe your program allocates the main data structures on the stack and the default stack limit is too low.
You might try something like
then try to run your program (from the same shell).
IIUC, that command sets the stack limit (only for programs run from the current shell) to ~2GB. I've never tried anything with a stack that large. It is poor programming practice to put the very big objects on the stack rather than the heap. But with a 64 bit system, I think this is OK and if your problem is stack limit, this ought to cover it.
Originally Posted by clsgis
BTW, those were very good suggestions. The answers to those eliminated almost all the likely issues one might have guessed from the first post, and thus made it much easier to look for the real problem.