- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Once upon a time, before the advent of virtual memory,when one allocated memory, it was PHYSICAL memory. If he had to, say, sort a big file, he could optimize the operation for the amount of PHYSICAL memory available.
Nowadays, of course, if one allocates memory, the OS will quite happily provide it, but will reserve the right to swap it out of core whenever it has the urge to do so. If one makes a large allocation and tries to optimize a process assuming that the allocation produced PHYSICAL memory, he might well be beaten to death by page faults.
Though this problem originated a few decades ago, I've never found a simple way to defeat it. Windows appears to have a method of guaranteeing that a specific block of memory remains in core, so I suspect that Intel has devised a way to do it from FORTRAN, since this problem is universal. Am I right? Any advice? Warnings? Hints? Incantations? Prayers?
Bruce
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yeah, that's what I was referring to when I said "Windows appears to..." I thought VF might have a way to avoid the direct API call: something that might work on other operating systems as well.
Is there any header or trailer info in front or in back of a FORTRAN allocated array that have to be locked with it? That is, if I allocate an array with FORTRAN, then call VirtualLock with the address of the first byte in that array and its total length, is that all I need, or is there a little more to it?
Bruce
Bruce
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page