- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just installed another Gb of RAM, use the /3GB boot option for XP, and even used /LARGEADDRESSAWARE and my array size limits haven't increased. For example, the COMMON/static array size is still 225E06 for real*8 arrays. Then when I use the dynamically allocated arrays, the size there is the same too, but only 190E06 for real*8. In system tools I have 3Gb of virtual memory available, and using Windows Task Manager I have 1 Gb more memory than before. The errors are slightly different. If I increase COMMON I get a compile error "variable may not exceed 2.147Gb". If I use dynamic allocation, I get a "severe(41) insufficient virtual memory". So unless you advise otherwise, it looks like the second Gb of RAM was wasted.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We just had a fairly long discussion here on this subject. I hope I can summarize without doing damage:
With /3GB and /largeaddressaware, you gain a non-contiguous address space which may be used for new ALLOCATABLE arrays. As you found out, it does not allow for a larger individual array.
The availability of ALLOCATABLE arrays of more than 2GB applies only to the 64-bit Windows.
With /3GB and /largeaddressaware, you gain a non-contiguous address space which may be used for new ALLOCATABLE arrays. As you found out, it does not allow for a larger individual array.
The availability of ALLOCATABLE arrays of more than 2GB applies only to the 64-bit Windows.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Now we know what the IA-32 platform can do, and when we need a 64-bit system. For my finite element analyses I need one large array for an in-core solver, or I can use a wavefront solver. The in-core solver takes seconds, the wavefront solver a few minutes. I'm very content with the array capacity of IFC. I just wanted to be surewhat the "official" array sizelimits are in order to understanddifferences between IA-32 & 64-bit platforms. Thanks for confirming.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you have the source code to your in core solver? If so then, if you are lucky, it may be a trivial task to break up the one large array into components.
For example, your current one large array may contain position vectors, velocity vectors, acceleration vectors, etc...
If so, then it may be a trivial task to separate these vector arrays into seperate allocatable arrays. And then in which case your application might grow from ~2GB to ~3GB.
Jim Dempsey
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