- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everybody, I'm using ubuntu 10.04 32 bits and I work in Intel Fortran Composer XE 2011.I work with mkl and I using mkl_dss.f90. I created a problem that uses enough memory, but I have a cuestion. I have enough virtual memory (and RAM) and it seems that the system does not use anything. Monitor the system and shows that non-use or 1.5 Gb of RAM and 50 MB of Virtual, but I get the following message:
forrtl: severe (41): insufficient virtual memory
Image PC Routine Line Source
PROGRAMA30102010 088F9153 Unknown Unknown Unknown
PROGRAMA30102010 088F7E70 Unknown Unknown Unknown
PROGRAMA30102010 088C10AE Unknown Unknown Unknown
PROGRAMA30102010 088A230C Unknown Unknown Unknown
PROGRAMA30102010 088B1CC9 Unknown Unknown Unknown
PROGRAMA30102010 08053EA5 Unknown Unknown Unknown
PROGRAMA30102010 08053594 Unknown Unknown Unknown
libc.so.6 40133BD6 Unknown Unknown Unknown
PROGRAMA30102010 080534A1 Unknown Unknown Unknown
Any way to fix it?
Thanks,
Felipe Rodriguez
Note: VIRTUAL MEMORY 2.8 Gb, RAM 3.2 Gb
forrtl: severe (41): insufficient virtual memory
Image PC Routine Line Source
PROGRAMA30102010 088F9153 Unknown Unknown Unknown
PROGRAMA30102010 088F7E70 Unknown Unknown Unknown
PROGRAMA30102010 088C10AE Unknown Unknown Unknown
PROGRAMA30102010 088A230C Unknown Unknown Unknown
PROGRAMA30102010 088B1CC9 Unknown Unknown Unknown
PROGRAMA30102010 08053EA5 Unknown Unknown Unknown
PROGRAMA30102010 08053594 Unknown Unknown Unknown
libc.so.6 40133BD6 Unknown Unknown Unknown
PROGRAMA30102010 080534A1 Unknown Unknown Unknown
Any way to fix it?
Thanks,
Felipe Rodriguez
Note: VIRTUAL MEMORY 2.8 Gb, RAM 3.2 Gb
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You should not expect to use more than 2 GB of memory, real or virtual,for your application on a 32 bit OS.More memory may allow more processes to run, but it won'thelp a single process to use more.If you need more, you should go to a 64 bit OS and compiler.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Firts, thanks for your response. But, I don't understand why does not use any virtual memory and never uses little of the ram. The program is a program for solver plates, and when I study a plate 12x12 meters don't problem,for example:
PLATES 12 X 12:
RAM USE: 1.4 Gb (free 3.2-1.4= 1.8)
SWAP USE: 0%
PLATES 13X13:
The program breaks before you start calculating.
PLATES 12 X 12:
RAM USE: 1.4 Gb (free 3.2-1.4= 1.8)
SWAP USE: 0%
PLATES 13X13:
The program breaks before you start calculating.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I ran your program, with the necessary chenges to paths. It failed with "insufficient virtual memory" at line 55, ALLOCATE (VALORES(total*total)). It was trying to allocate an array of about 300,000,000 elements, or 2.4 GB. You can't do that on IA-32, however much physical memory and virtual memory you may have. The virtual address space is limited the 2**32 by the 32 bit OS, and your program's share is normally limited to 2**31. That includes the whole of your program, code plus data, not just this one data array. If you need arrays this large, you need to go to a 64 bit OS and compiler, if your processor supports these.
I haven't tried to understand your program in detail, and I don't have all the files that it asks for. Maybe some other combinations of input data would ask for smaller arrays. What I saw was a=b=13.0, pasox=0.1, which led to an array size of ((13/0.1)+1)**4. But an error message about insufficient virtual memory simply means that you have exceeded the available address space, whether the limit comes from the OS or from your actual physical memory + swap space.
Incidentally, if you build with -traceback, you should get a traceback for the parts of your program that you yourself compiled, that shows where the failure occurred.
I haven't tried to understand your program in detail, and I don't have all the files that it asks for. Maybe some other combinations of input data would ask for smaller arrays. What I saw was a=b=13.0, pasox=0.1, which led to an array size of ((13/0.1)+1)**4. But an error message about insufficient virtual memory simply means that you have exceeded the available address space, whether the limit comes from the OS or from your actual physical memory + swap space.
Incidentally, if you build with -traceback, you should get a traceback for the parts of your program that you yourself compiled, that shows where the failure occurred.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page