I seem to be hitting a 2GB memory limit (I am getting an **Address Error** message until I reduce the problem size) on an ASL Xeon machine with 6GB of ram and a big-memory kernel provided by ASL. I am using l_fc_pc_7.1.028. My release notes in ifc_issues.txt mention the following;
When the -4Ya option is used to compile programs with large arrays or other data structures, the stack size may need to be increased. For example, the command
ifc -MT -4Ya test.f -link -stack:0x15000000
will increase the amount of stack size reserved for by the
program to 0x15000000 bytes.
However, ifc does not reconize the -MT -4Ya or -link -stack options for me.
This machine has 6207012K of ram, and after typing "ulimit -s 6000000", ulimit -a gives
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 7168
virtual memory (kbytes, -v) unlimited
I have also tried compiling with -static, -stack_temps, -xW, -O2, -O3, -i_dynamic and combinations of these options but I still see the 2GB limit.
I also found this on the intel site;
which suggests that there is still a 2GB limit. Is this true? Is there any way to get around this other than parallelizing my code?