Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!uxc.cso.uiuc.edu!uxc.cso.uiuc.edu!ux1.cso.uiuc.edu!uxe.cso.uiuc.edu!mcdonald From: mcdonald@uxe.cso.uiuc.edu Newsgroups: comp.arch Subject: Re: Memory utilization & inter-process Message-ID: <46500075@uxe.cso.uiuc.edu> Date: 26 Aug 89 14:47:00 GMT References: <27927@<619868166> Lines: 15 Nf-ID: #R:<619868166:27927:uxe.cso.uiuc.edu:46500075:000:773 Nf-From: uxe.cso.uiuc.edu!mcdonald Aug 26 09:47:00 1989 One solution to the thrashing problem (in the particular case in point, one or a few processes which are much too big for memory) is to break down and recode the program so that it does explicit IO to get the necessary pages. This can be particularly helpful if just ONE process is too big for memory. There are people in our department who diagonalize 1,000,000x1,000,000 sparse matrices (with maybe 50,000,000 non-zero elements) on machines with 16 megabytes of memory, and nary a page fault ever occurs. Sometimes they can get full CPU utrilization with just one process. What this DOES require, of course, is the ability to do disk reads and writes concurrently with program execution. Some operating systems don't allow this, at least not efficiently. Doug McDonald