Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!mordor!sri-spam!ames!pasteur!agate!aurora!amelia!orville.nas.nasa.gov!fouts From: fouts@orville.nas.nasa.gov (Marty Fouts) Newsgroups: comp.arch Subject: Re: Cray 2 has 2GW address Message-ID: <307@amelia.nas.nasa.gov> Date: 29 Feb 88 21:22:14 GMT References: <416@micropen> <3534@killer.UUCP> Sender: news@amelia.nas.nasa.gov Reply-To: fouts@orville.nas.nasa.gov (Marty Fouts) Organization: NASA Ames Research Center, Moffett Field, CA Lines: 29 In article <3534@killer.UUCP> elg@killer.UUCP (Eric Green) writes: >in article <416@micropen>, dave@micropen (David F. Carlson) says: >[NASA dude discusses running GNU Emacs on his Cray:] > >Hmm. An architectural issue here, maybe. Does the lack of MMU refills etc. >REALLY speed up process switching time? Are Unix processes "lightweight" as >far as a Cray 2 is concerned? A reply for the NASA dude: Unix processes on the 2 are variable weight. The vector registers are only a small part of context. The 2 has a 32 KWord (256Kbyte) "local memory" per processor which is part of context. This memory is protected by high water marks, so that the cpu can tell if all, 1/2, 1/4, etc of it were used and only memory up to the dirty highwater mark is stored and flushed. I don't have statistics on the typical case, although I suspect that it is small, because our machines don't spent very much time context switching (On the order of .01% of all cycles appear to go to contex switching) Worst case is pretty bad however. The best local to common memory transfer rate is one word / clock cycle, so a 32K word transfer takes 64K clock cycles (32K out - 32K in) which at 4.2 ns is 275 microseconds. This puts a limit on the machine of about 3600 context switches per second. Since there are four processors, but only one can be executing the context switch code, this come down to about 900 switch per second on each processor. I have verified this number by running a program which forces context switches, I get about 800 per second, with the difference as a result of the "work" the program is doing between context switches.