dan@idis.UUCP (Dan Strick) (12/05/83)
This is yet another collection of benchmarks. The value of these numbers as criteria for selecting a machine is uncertain. There are more important things than speed. Most of the measurements are obsolete (machines and software change rapidly). The configuration (and sometimes the model) of each machine is not specified. The benchmarks are very simple and not comprehensive in any sense. They are intended to measure the speed at which a machine can do basic things like fetching instructions and pushing words around. None of these benchmarks measure disk throughput or the efficiency of the operating system in any precise way. The compile times were recorded, but be warned that they may be misleading because the compilers may differ and the compile times may be very configuration dependent. The cpu benchmarks measure something that depends on both the speeds of the processors and the quality of the code produced by the compilers for the particular C language statements that were used in the benchmarks. It is not clear what this has to do with the relative speeds with which a particular program would run on the various machines. Note in particular that these benchmarks do not reflect the benefits of independent i/o or graphics processors, dma terminal interfaces, or other hardware features that can make a big difference in real applications, especially on multiuser systems. Unlike others who have posted benchmarks, I intend to draw some conclusions and make some comments about the relative performance of certain machines. These conclusions and comments do not reflect opinions held by my employer (or even by me as I reserve the right to change my mind if seriously challenged). ------------------------------------------------------------------ These are the benchmarks (called "b1" and "b2"). B1 is essentially the same loop that has been making the rounds at computer conferences during the last year or so. B2 is a modification of B1 that uses 32 bit integers in an expression characteristic of certain programs that are important to me. b1: main () { register int i, j, k; k = 0; for (i = 1; i <= 1000; ++i) for (j = 1; j <= 1000; ++j) ++k; } b2: main () { register int i; register long *p; register long l; long v[1000]; for (i = 1; i <= 1000; ++i) { l = 0; for (p = v; p < v+1000;) l += *p++ >> 5; } } ------------------------------------------------------------------------------- All times are in seconds. All sizes are in bytes. Most of the machines were otherwise idle when the benchmarks were run. The bigger time sharing systems were exceptions. The machines are ordered according to the run time of the first benchmark. The first column identifies the conference at which the measurement was made. "B" is for Boston, "s" is for San Diego, "t" is for Toronto, "f" is for a small "computer faire" held recently at my university, and "p" is for measurements made on my department's machines. COMPILE EXECUTE SIZE.O user sys real user sys real text cpu -------------------- -------------------- ---- --- s SEL 32/87 b1 0.6 2.6 32 1.0 0.0 2 96 t SEL 32/67 b1 1.5 3.0 12 1.8 0.0 3 96 b2 1.7 3.0 11 4.4 0.0 4 96 p VAX 11/780 b1 1.9 2.7 8 2.1 0.3 3 36 compat mode b2 1.9 2.7 8 13.5 0.3 14 76 p VAX 11/780 b1 0.7 1.2 3 2.6 0.0 3 32 b2 0.8 1.1 3 5.7 0.1 6 44 s plexus p/25 b1 2.7 3.1 16 3.6 0.1 4 38 z8k model 1025 b2 16.5 0.2 20 66 t onyx c8002a b1 1.7 3.9 15 3.7 0.1 4 26 z8k (6 MHz) b2 2.0 4.0 15 11.9 0.1 12 54 t crds b1 1.9 2.8 24 3.9 0.1 5 54 68k universe 68 b2 2.0 2.9 24 7.0 0.1 8 66 t zilog sys 8k b1 2.2 4.8 26 3.9 0.0 4 30 z8k model 11 b2 2.4 4.7 27 16.0 0.1 16 54 f masscomp b1 1.2 2.1 11 4.2 0.1 5 48 68k workstation b2 1.3 2.2 10 6.5 0.1 7 56 t pixel 100/ap b1 3.1 3.5 43 4.4 0.1 8 68k b2 3.6 3.3 44 6.8 0.1 10 b onyx c8002 b1 2.5 4.6 18 4.6 0.0 6 z8k (4 MHz?) t hp 9000 b1 1.5 4.7 17 5.1 0.0 6 series 500 b2 1.9 4.7 18 9.3 0.0 11 s cci power5 b1 3.9 6.9 16 5.2 0.0 6 68k model 20 t callan b1 7.4 8.3 31 5.5 0.1 6 52 68k unistar 200 b2 8.0 8.2 30 8.5 0.1 9 60 s onyx c5002a b1 2.5 6.0 20 5.7 0.1 6 26 z8k t wicat sys 200 b1 1.6 5.3 18 6.0 0.1 6 48 68k b2 2.0 5.3 19 9.2 0.1 10 56 f ncr tower b1 3.8 6.1 30 6.1 0.2 7 52 68k b2 4.0 6.2 28 9.2 0.1 10 60 t spectrix b1 4.8 3.8 25 6.1 0.1 7 68k series 10 b2 4.8 3.9 25 7.7 0.1 10 s altos 586 b1 0.9 3.9 17 6.2 0.2 6 8086 b2 29.0 0.1 29 s pacific b1 3.6 5.9 22 6.6 0.2 7 68k pm400 b2 8.9 0.2 9 s Hawk 32 b1 3.6 12.8 26 6.9 0.2 8 52 68k b2 10.7 0.1 11 60 t intel ?286 b1 5.8 4.2 20 6.9 0.0 7 80286 b2 6.2 3.5 20 34.6 0.0 35 p pdp 11/40 b1 1.3 5.2 15 7.8 0.0 8 36 (unix v6.5) b2 1.7 5.2 15 38.0 0.0 39 76 s wicat sys 150 b1 2.4 5.3 23 8.2 0.1 8 68k b2 12.3 0.1 13 b intel 86/330x b1 3.2 4.6 13 8.5 0.1 9 8086 t fortune b1 3.4 5.0 13 8.0 0.1 8 64 68k 32:16 b2 3.8 5.0 14 10.6 0.1 11 68 t apple lisa b1 3.7 6.0 39 8.0 0.1 8 52 68k (uniplus) b2 3.9 6.1 40 12.9 0.1 13 60 s dual sys 83 b1 5.3 6.0 20 8.8 0.1 9 68k b2 5.4 7.2 22 13.1 0.1 13 s altos 6800 b1 4.7 8.9 40 9.1 0.2 10 68k b2 23.1 0.2 24 t dec pro 350 b1 1.1 5.9 25 9.2 0.0 10 11/23 (venix) b2 1.5 6.1 26 29.0 0.1 29 p crds mb-211 b1 1.2 8.5 23 10.1 0.1 11 36 11/23 (venix) b2 1.6 8.6 23 59.2 0.2 76 76 b altos 8600 b1 2.6 8.7 26 10.4 0.0 11 8086 (xenix) t ibm pc b1 2.1 7.8 19 18.7 0.2 19 8088 (coherent) b2 2.5 6.5 20 81.4 0.1 82 t ibm pc b1 8.4 6.5 37 20.3 0.2 22 48 8088 (venix) b2 8.9 6.5 38 118.2 0.2 119 102 ------------------------------------------------------------------------------ The conclusions: It is amazing that all the microcomputers seem to run at pretty much the same speed even though they are based on different chips with different architectures that have been developed from different proprietary flavors of chip technology. We can find certain machines that are absurdly slow (Are you listening, Big Blue?) but we can't find a (modern 16 bit) chip that is an order of magnitude faster than another. Either the research groups of the semiconductor companies are all plodding along making steady engineering improvements in their technology without making any sudden breakthroughs or they are all stealing each other's technology. The speed at which a microcomputer runs may be limited mainly by memory and I/O bus. Everyone seems to be using pretty much the same memory chips. There are notable differences in architecture. The Z8000 and 8086 chips support smaller featureless (i.e. single segment) address spaces than the 68000 chips. This is not reflected by any of the benchmarks. The details of the instruction sets are less important when one programs in a high level language, but some general characteristics of an architecture can be felt. For example, if we arrange the systems in the order of second benchmark run times, we see a pattern: SEL 32/67 4.4 VAX 11/780 5.7 masscomp workstation 6.5 68k pixel 100/ap 6.8 68k crds universe 68 7.0 68k spectrix series 10 7.7 68k callan unistar 200 8.5 68k pacific pm400 8.9 68k wicat sys 200 9.2 68k ncr tower 9.2 68k hp 9000 series 500 9.3 fortune 32:16 10.6 68k Hawk 32 10.7 68k onyx c8002a (6 MHz) 11.9 z8k wicat sys 150 12.3 68k apple lisa (uniplus) 12.9 68k dual sys 83 13.1 68k VAX 11/780 compat mode 13.5 zilog sys 8k model 11 16.0 z8k plexus p/25 model 1025 16.5 z8k altos 6800 23.1 68k dec pro 350 (venix) 29.0 11/23 altos 586 29.0 8086 intel ?286 34.6 80286 pdp 11/40 (unix v6.5) 38.0 crds mb-211 (venix) 59.2 11/23 ibm pc (coherent) 81.4 8088 ibm pc (venix) 118.2 8088 The 68000 machines seem to handle 32 bit stuff better than the others. The few Z8000 machines ended up in the middle of the pack while the 11/23 and 8086 family systems finished last. I tend to regard the first benchmark as more relevant to most applications than the second (an offhand opinion), but I award first prize on the basis of the second benchmark because it differentiates more strongly between the architectures. (These benchmarks use no 32 bit multiply or divide instructions and no floating point instructions and therefore are not appropriate for number crunching applications.) The 16032 chip may eventually be a winner, but it is too new to enter into the competition just yet. ----------------------------------------------------------------------- The comments: I refuse to nominate any machine for "best buy". Partly because different machines are better for different applications and partly because the answer for any particular application depends less on speed and more on features considered here. I chose my machine (a Sun Workstation) because it had nice graphics, a nice version of UNIX, and a few other features I liked. I will post benchmarks for my machine as soon as I get my SUN 2 processor board. I expect it to run about as fast as the Masscomp machine. I would like to express considerable irritation at the extent to which hype has replaced fact in recent advertising. The Z8000, 8086, and 68000 instruction sets and addressing modes have been described by their manufacturers as "orthogonal, just like the pdp11." This is garbage. The 68000 is probably the best of a bad lot. Fortunately we don't have to program in assembler language any more. A common violation of good taste and polite behavior is to compare not-yet-developed processor chips running at hypothetical clock rates to currently available chips. Other tricks are to use favorable high level benchmarks (your XXX compiler produces more efficient code than his) or benchmarks designed to fit a particular architecture (just happens to correspond exactly to a sophisticated microprogrammed instruction on your machine). It is difficult to single out individual companies or products for awards, perhaps because there are so many imaginative performances to choose from. There may be one that stands out a little beyond the rest. On page 67 of the February 1983 Mini-Micro Systems magazine: "The Intel, iAPX 286. It gives you three times the performance of what you thought was the fastest chip in the market". On page 252 of the June issue: "It offers three times the performance of any other microprocessor". This claim was repeated almost endlessly during the netnews microprocessor architecture wars waged earlier this year. I got my hands on one and ran benchmarks at the Toronto meeting (see above). The system was some sort of prototype and only ran at 5 MHz, but even at 7.7 MHz (available early in 1984 according to the June advertisement) the system would be merely competitive with the fastest Z8000 and 68000 systems. The fabled HP 9000 series 500 was another disappointment. This is the 32 bit machine with a proprietary stack architecture and a big price tag. It ran fairly well, but it didn't blow away the competition as expected. On the bright side, the LISA did much better than I expected as it is said to run at 5 MHz (most 68k machines seem to run at 10 MHz these days) and has an amazingly slow disk. The PIXEL and WICAT machines have improved a great deal since I first tried them out at earlier conferences. The DEC Professional 350 ran well for a machine with an old architecture and no dma devices. The new super micros are nice, but it is hard to beat the VAX 11/780 as a UNIX machine. Take a look at the real compile times. We run 4.0bsd with a 2k block size. Dan Strick University of Pittsburgh School of Library and Information Science decvax!idis!dan mcnc!idis!dan