Memory addressable limit for process

Hello folks at PGI:
I am planning to run a large problem, with a single process (better, a single matrix)being larger than 2GB. I have two questions:
On kernel 2.6 series is there no memory limitation address for 64bits machines, right? Is there a limit on the userland process?
And what limits does the pgcc/pgCC/pgf90 have on single process allocation? I understand that the -Mlarge_arrays flag will abilitate the 64bits addressing scheme, so my process can grow larger than 2GB. But this not happened on a Opteron with 8GB of memory, so i think that maybe the kernel is limitating factor.
How can I overcome this? On 2.6 kernels on 32 bits and 64 bits?

Thank you very much!

Hello,

You may need to use “-mcmodel=medium” instead depending upon how you are allocating your matrix and how big your executable is. “-Mlarge_arrays” only allows for dynamically allocated objects to be larger than 2Gb, while “-mcmodel=medium” (which implies “-Mlarge_arrays”) also allows the total size of all static objects to be larger than 1Gb. Also, remember to use INTEGER*8 or long as your index variables’ data type.

“-mcmodel=medium” and “-Mlarge_arrays” are only valid for 64-bits. In 32-bits, your stuck with the small memory model where a user object and exe must be less than 1Gb and no single dynamically allocated object can be larger than 2Gb.

  • Mat