Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

question about allocate

litn
Beginner
617 Views
Hello,

My machine has 2GB mem and 8GB virtual mem. When I run a program using <2GB mem ( with 4 4000*4000*complex(kind=8) matrices), the run time error(ifl 7.1) is allocate 494 allocating xxxx bytes failed. The compaq 6.6b error is insuffiecient virtual memory. My OS is Windows 2003 enterprise server. The memory limits are 32GB physical/32GB virtual.

What is the problem? Is there a limit in compiler?

Thanks.
0 Kudos
8 Replies
Steven_L_Intel1
Employee
617 Views
Is this an Itanium system? That's the only way you could have 8GB virtual memory. Otherwise the limit is 2GB.

I do think there is a restriction in ifl 7.1 regarding more than 2GB allocation on Itanium, but I don't know the details offhand.

Steve
0 Kudos
litn
Beginner
617 Views
It is on 32bit P4 system. From microsoft specification of windows 2003. the 32bits enterprise server surport 32GB mem/32GB virtual mem. The application address space is up to 3GB. My program never used to that much. So I am sure it is not a restriction from Windows. The same thing is also on linux. I have redhat 9.0. the swap space is 4GB.
The ifc on linux also gives the same runtime error.
Is there a restrict in ifc/ifl?

One more thing is that the compaq 6.6b can handle a little bit more mem than intel's 7.1. But 6.6b still can't get to too big.

In all ceases, I calculated the mem space I allocated, they are less than two gb.

Any idea?
0 Kudos
Steven_L_Intel1
Employee
617 Views
32GB address space is simply impossible on 32-bit Windows - at least as directly addressable by a single process. Do you have a pointer to a document that says otherwise?

I have seen a complaint that CVF can't allocate more than 2GB, even with the /3GB option, and it would not astonish me if ifl had a similar issue. Feel free to submit a support request for it through http://premier.intel.com/

Steve
0 Kudos
litn
Beginner
617 Views
Hello, Steve

I did not mean one process can access 32GB address space.
Under 32bits windows server, the application can access 3GB address space. But the windows can manage a total virtual memory for 32gb for windows 2003 enterprise server. You can refer to http://www.microsoft.com/windowsserver2003/evaluation/features/compareeditions.mspx to see it.

My question is that my total memory requirement is less than 3GB and definitely my system has 2GB+8GB "mem" so that my program should be fine from the view of operating system. That 's why I doubt there is a limit in ifl.

From your reply, I would say it is true that ifl can't manage 3GB address space properly. Neither can VF 6.6B.

I can carefully arrange memory to avoid the problem. But it is a little pitty for such a great compiler ( from compaq vf to intel ifl).

Thank you very much,

Litn
0 Kudos
Steven_L_Intel1
Employee
617 Views
Please do file a problem report with Intel so this gets looked at.

Steve
0 Kudos
litn
Beginner
617 Views
I tried to attach file, it doesn't work.

Could you explain /3GB option? I can't find it neither ifl nor visual fortran 6.6b

Thanks
0 Kudos
Steven_L_Intel1
Employee
617 Views
/3GB is a Windows option - goes in boot.ini. See here.

Steve
0 Kudos
TimP
Honored Contributor III
617 Views
I believe this refers to the Windows boot switch, available on XP (and 2K Advanced Server?) It increases the virtual address space available to an application from 2GB to 3GB.
0 Kudos
Reply