Path: utzoo!utgpu!attcan!uunet!husc6!mailrus!cornell!uw-beaver!uw-june!pardo From: pardo@june.cs.washington.edu (David Keppel) Newsgroups: comp.arch Subject: Scientific Virtual Memory (WAS: Cray & Amdahl Virtual memory debate) Summary: prediction Keywords: virtual pyisical memory prediction Message-ID: <5382@june.cs.washington.edu> Date: 27 Jul 88 19:56:42 GMT References: <4232@cbmvax.UUCP> <76700035@p.cs.uiuc.edu> <34254@yale-celray.yale.UUCP> <851@l.cc.purdue.edu> <12407@ames.arc.nasa.gov> Reply-To: pardo@june.cs.washington.edu (David Keppel) Organization: U of Washington, Computer Science, Seattle Lines: 23 Disorganization: U of Washington, Computer Science, Seattle [ Debate: to VM or not VM on scientific computing ] The issues seem to be that when you have paging, etc., you spend a lot of your time waiting for page faults to complete. With async. I/O, you can "predict" the next region to "fault" and preload it. A crystal ball would be very useful here. Thought: One scheme that appears to help cache hit/miss ratios (according to a paper by A.J.Smith, in any event) is a predictive scheme as follows: + On a fault, fetch both the thing you need and the next one after. + Mark the next one after as "fetched on prediction". + First time you touch a thing marked "fetched on prediction", fetch the next one after that, and mark it as "fetched on prediction". Given that array access patterns are *sometimes* predictable, I can immagine this scheme working very well. Given that they are not *always* predictable, I can immagine this scheme oozing mildew. In general, tho' I think it would be a much larger win for scientific computing than for (say) text editing. Any insights? ;-D on ( Is this revile-lant? ) Pardo