home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / arch / 11626 < prev    next >
Encoding:
Internet Message Format  |  1992-12-14  |  5.1 KB

  1. Path: sparky!uunet!charon.amdahl.com!amdahl!nsc!decwrl!adobe!usenet
  2. From: zstern@adobe.com (Zalman Stern)
  3. Newsgroups: comp.arch
  4. Subject: Re: IBM's FIRST RISC System/6000(tm) based Shared Memory Parallel Processor
  5. Message-ID: <1992Dec14.104305.17593@adobe.com>
  6. Date: 14 Dec 92 10:43:05 GMT
  7. References: <id.I6TV.241@ferranti.com>
  8. Sender: usenet@adobe.com (USENET NEWS)
  9. Organization: Adobe Systems Incorporated
  10. Lines: 79
  11.  
  12. In article <id.I6TV.241@ferranti.com> peter@ferranti.com (Peter da Silva)  
  13. writes:
  14. > chased@rbbb.Eng.Sun.COM (David Chase) writes:
  15. > > I've had this nagging suspicion for about a year that people building
  16. > > MP's were working awfully hard to maintain coherency where it just
  17. > > didn't matter.  Given that most of the programming languages tell you
  18. > > to lock your data if it is shared, the "we're guarding against this"
  19. > > examples always looked like buggy programs to me.
  20. > I guess that depends on what the consequences of running these buggy
  21. > programs are. Are they guarding against bringing the whole system down
  22. > (unacceptable) or simply crashing a single application (acceptable)?
  23.  
  24. Actually, buggy programs aren't really the issue.
  25.  
  26. You put locking into serialize access to data. In the "simple"  
  27. circumstances, this breaks your program into critical sections, each of  
  28. which gets exclusive access to a collection of data. One can write perfectly  
  29. good algorithms which do not work this way if you have consistent memory,  
  30. but lets ignore that for the moment.
  31.  
  32. The problem arises in that the data a critical section accesses is hard to  
  33. enumerate. In some cases it may be relatively straight forward. (The finer  
  34. grained your locks, the easier it should be to associate specific data with  
  35. each one.) However, in a situation like running a good bit of the TCP/IP  
  36. protocol stack under a single lock, identifying all the modified data is  
  37. going to be tough. (And as was pointed out here by Vernon Schryver there a  
  38. good reasons to do this.) Dealing with shared data is an area of active  
  39. language and compiler research.
  40.  
  41. Even when you have identified the shared data, you need some way of making  
  42. it consistent. Explicit flushing is one possibility. Then there is a  
  43. performance hit for the flush instructions, and the writes to main memory.  
  44. In a cache coherent system, the flushing will happen when the data is  
  45. accessed by another processor (or as a result of normal write back  
  46. operations). Its easy see how snoopy caches might win here. (Of course it  
  47. depends on how much slower your caches are than non-coherent ones.) Even in  
  48. the snoopy cache world, there are many choices in the algorithms controlling   
  49. cache line allocation and ownership.
  50.  
  51. There is much ongoing research into scalable cache coherency hardware.  
  52. Directory mechanisms and such are one particular method. This pushes up the  
  53. number of processors for which cache coherency works. There are plenty of  
  54. people predicting limits to this, but I tend to regard them in the same  
  55. light as the people telling HP they can't make their chips any faster :-)  
  56. You will still want to do things in software to try and keep data close to  
  57. where it is being used though.
  58.  
  59. In short, this is pretty complex stuff. For small numbers of processors  
  60. (i.e. less than 8, 16 or 32 :-)) cache coherency is a win. Especially  
  61. considering that the most important application for many of these systems is  
  62. the UNIX kernel. After that, multi-processor UNIX vendors are interested in  
  63. making standard database software run fast (i.e Oracle, Informix, etc.).  
  64. This certainly biases their design decisions. (Both the kernel and databases  
  65. are large bodies of software that aren't going to rewrite themselves just  
  66. because you came up with a whole new way to do the hardware.)
  67.  
  68. IBM research has been in the thick of the above mentioned research for quite  
  69. a while. Notable projects include RP3, the ACE research multiprocessor, and  
  70. their Scientific Visualization System SVS machine. The ACE machine was a non  
  71. uniform memory access (NUMA) machine based on the ROMP (IBM RT)  
  72. architecture. It supported up to five processors with a practical limit of  
  73. four if I recall. Since the RT didn't have caches, coherency problems wasn't  
  74. as much of a problem. Bob Fitzgerald and a few others at IBM Yorktown ported  
  75. Mach to this beastie. A lot of work went into algorithms to "page" data from  
  76. one processor to another to get reasonable performance. The SVS machine is  
  77. similar in principle but based on a larger number of Intel i860's. The  
  78. coherency mechanism there was to not cache shared data.
  79.  
  80. The Power/4 sounds like the next step in this line of development being  
  81. based on the RIOS processor. Qualitatively, these machines work fine, but  
  82. have extremely large performance deviations between codes with good locality  
  83. properties and those with bad ones. I got the impression that they don't  
  84. make good general purpose timeshared multi-processors. Of course, evolution  
  85. has a way of making better products...
  86. --
  87. Zalman Stern           zalman@adobe.com            (415) 962 3824
  88. Adobe Systems, 1585 Charleston Rd., POB 7900, Mountain View, CA 94039-7900
  89.   "Yeah. Ask 'em if they'll upgrade my shifters too." Bill Watterson
  90.