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

Memory Management Problem With Fortran 95

williamrrichmond
Beginner
1,053 Views
Hello:
Currently, we are using Compaq Visual Fortran 6.1a. We're currently in the process of getting the purchase order prepared for the purchase of Intel Visual Fortran 8.0. However, this question related to Compaq Visual Fortran 6.1a.
My question relates to the understanding of what NT is doing with memory management. In particular, I have made some modifications to a large program written in Fortran 95 and running under NT in which changes were made to make use of dynamically-allocated arrays to replace fixed-dimension arrays. The intent was to reduce the overall memory requirements of the program so that it could be coupled with other large, and memory-intensive programs. The original version dimensioned arrays to the maximum number of segments (20), but depending upon the scenario, frequently used only a single segment. Many arrays require the number of segments as one of their indices, so the potential nominal memory saving is substantial. Our intent was to dynamically size all arrays that had segment number as one of their dimensions and thus, reduce the memory.
We found that indeed the total amount of virtual memory was reduced in proportion to the number of segments needed. However, 2 unexpected things happened as well. First of all, the memory usage, as reported by the NT task manager, which I believe is the working set size, increased. Secondly, and more importantly, it seems that in spite of reduced virtual memory for the single segment case, the number of page faults increased dramatically. I would have expected that since the virtual memory was reduced, there would be less need for page faults, as fewer addresses would have been in memory swapped to disk. Here's a table showing the relationship between the number of segments and the memory use reported by NT.
(Please see attached text file for table.)
I must be missing something and wondered if you might be able to help me understand why in spite of my efforts to reduce memory, I'm seeing higher page fault rates, larger working set sizes and slower execution. Any light you can shed would be most appreciated. Thanks.
Bill
0 Kudos
0 Replies
Reply