Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!lll-lcc!ptsfa!ihnp4!homxb!gemini From: gemini@homxb.UUCP (Rick Richardson) Newsgroups: comp.arch,comp.misc,comp.sys.misc Subject: 03/15/87 Dhrystone Benchmark Results (1 of 2) Message-ID: <153@homxb.UUCP> Date: Sun, 15-Mar-87 10:51:11 EST Article-I.D.: homxb.153 Posted: Sun Mar 15 10:51:11 1987 Date-Received: Mon, 16-Mar-87 04:02:35 EST Organization: PC Research, Inc. Lines: 1128 Keywords: Performance Xref: mnetor comp.arch:577 comp.misc:355 comp.sys.misc:446 #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # intro1.doc # report.doc # submit.doc # submit.frm # clarify.doc # dry.c # This archive created: Sun Mar 15 09:06:09 1987 export PATH; PATH=/bin:/usr/bin:$PATH if test -f 'intro1.doc' then echo shar: "will not over-write existing file 'intro1.doc'" else cat << \SHAR_EOF > 'intro1.doc' These files comprise the 03/15/87 distribution of the collected Dhrystone Benchmarks. This is the first of two "shar" files. Enjoy. Rick Richardson PC Research, Inc. ihnp4!castor!pcrat!rick <-- Correspondence attmail!rrichardson <-- Correspondence ihnp4!castor!pcrat!dry <-- Submission Forms attmail!pcrat!dry <-- Submission Forms (201) 834-1378 <-- SHORT phone calls, 9AM-5PM EST (201) 922-1134 <-- phone calls 7PM-10PM EST 93 Garrison Drive, Neptune, NJ 07753 <-- MS-DOS floppy disks SHAR_EOF fi if test -f 'report.doc' then echo shar: "will not over-write existing file 'report.doc'" else cat << \SHAR_EOF > 'report.doc' DHRYSTONE 1.1 BENCHMARK SUMMARY Sun Mar 15 09:05:48 EST 1987 SORTED BY MANUFACTURER MANUF MODEL PROC CLOCK NOREG REG OS,COMPILER,NOTES ----- ----- ---- ----- ----- --- ----------------- Gridcase 3 80C86 4.77 409 438 MS-DOS 2.11,Microsoft 3.01 , APOLLO DN330 68020/68 12.50 1934 1934 Domain/IX SR9.5.Bl12,CC 4.58 w/o 020,68881,(Beta OS and Compiler) APOLLO DN330 68020/68 12.50 2046 2046 Domain/IX SR9.5.Bl12,CC 4.58 w/020,68881,(Beta OS and Compiler) APOLLO DN3000 68020/68 12.50 2481 2481 Domain/IX SR9.5.Bl12,CC 4.58 w/o 020,68881,(Beta OS and Compiler) APOLLO DN3000 68020/68 12.50 2643 2643 Domain/IX SR9.5.Bl12,CC 4.58 w/020,68881,(Beta OS and Compiler) AT&T 3B2/300 32000 7.20 409 410 UNIX SVR2.0,cc , AT&T 3B5 WE32000 10.00 578 573 UNIX SVR2 5.2.0.1 V2,cc ? large, AT&T 3B2/300 32000 7.20 685 688 UNIX SVR2.0.4,cc , AT&T 3B2/300 32000 7.70 699 697 UNIX SVR3.0,cc , AT&T UNIX PC 68010 10.00 973 1034 UNIX 5.0.3,cc , AT&T 3B2/400 32100 10.00 1108 1120 UNIX SVR2.0.4,cc , AT&T 3B5 WE320xx 0.00 1212 1207 UNIX Sys V 2.0.1,cc 2.0.11.0 -O, AT&T 6300 PLUS 80286 6.00 1225 1225 UNIX SVR2 vC3,cc , AT&T 3B15 32100 14.00 1797 1798 UNIX 5.2.1,cc , ATI 2000 80286 8.00 1440 1440 UNIX Microport SVR2,cc large,0 wait state AT clone ATI 2000 80286 8.00 2145 2145 UNIX Microport SVR2,cc small,0 wait state AT clone Altos Comp ACS 68000 68000 8.00 440 450 UNIX System III, Altos Release 2.0,cc --, Amdahl 5860 0.00 28735 28846 UTS V,cc 1.22 , Amiga 1000 0.00 643 684 ,Manx C 2.30a ,32 bit int Amiga 1000 0.00 880 915 ,Manx 2.30a ,16 bit int Apollo DN330 68020 12.50 1504 1504 Domain/IX ,cc 4.08 w/o 020, Apollo DN330 68020 12.50 1677 1677 Domain/IX ,cc 4.08 w/ 020, Apple IIe 65C02 1.02 37 37 DOS 3.3,Aztec CII v1.05i , Apple Lisa 2/10 68000 5.00 505 533 XENIX 3.0 Priam,cc , Apple Macintosh 68000 8.00 510 549 Mac Finder 5.1, System 3.2,LightSpeed C 1.02 ,with new, 128K ROMs Apple Lisa 68000 0.00 517 550 UniPlus Sys V,cc , Apple Macintosh 68000 7.70 625 625 Mac ROM ,DeSmet , Apple Mac+ 68000 7.80 714 769 Mac 3.2,Manx 1.06H ,16 bit int Apricot portable 8086 5.00 375 400 MS-DOS 2.11,Microsoft 3.01 , Arete 1100/1200 68020 12.00 2741 2808 UNIX SVR2.2,Motorola pcc2 , Armstrong 68000 0.00 342 363 Root V,pcc , Atari 520/ST 68000 8.00 446 450 TOS ,Lattice 3.03.01 , Atari 520ST 68000 8.00 1063 1136 TOS ,Megamax 1.0 , CCI Power 5/32 68010 12.50 1135 1192 Unix BSD 4.2,cc ? , Celerity 1200 0.00 3921 3916 UNIX 4.2BSD r3.2, , Celerity 1260-D 1230 0.00 4010 4045 4.2 BSD 3.2.50,cc standard -O,A 1260-D is a dual-processor 1230 Celerity 1260-D 1230 0.00 4046 4061 4.2 BSD 3.2.50,cc beta test -O,A 1260-D is a dual-processor 1230 Celerity C-1230 NCR uP 10.00 4155 4360 UNIX 4.2BSD,cc , Celerity C1230 0.00 4702 4716 UNIX 4.2BSD r3.2, , Celerity 1260 0.00 8321 8384 UNIX 4.2BSD r3.2, , Commodore 64 6510 1.00 19 34 C64 ROM ,C Power 2.9 trim, Commodore 128 8502 2.00 43 68 C128 ROM ,C Power 128 trim, Compaq Compaq II 80286 8.00 1086 1140 MS-DOS 3.1,Microsoft 3.0 large, Compaq Compaq II 80286 8.00 1190 1282 MS-DOS 3.1,Microsoft 3.0 medium, Compaq Compaq II 80286 8.00 1351 1428 MS-DOS 3.1,Microsoft 3.0 small, Compaq 386 80386 16.00 1724 1724 PCDOS 3.1,Lattice 3.00H large, Compaq 386 80386 16.00 2000 2000 PCDOS 3.1,Lattice 3.00H large data, Compaq 386 80386 16.00 2631 2631 PCDOS 3.1,Lattice 3.00H large data, Compaq 386 80386 16.00 2941 2941 PCDOS 3.1,Lattice 3.00H small, Convergent MiniFrame 68010 10.00 919 965 CTIX 3.2,cc , Convergent MiniFrame 68010 10.00 933 985 UNIX SVR2,cc , Counterpoi 68020 12.00 1702 1850 UNIX SV,cc , Counterpoi System 19 68020 16.67 2270 2481 UNIX SVR2.2,Motorola pcc2 ,Single uP; 1-8 possible Cromemco Z2 Z80 4.00 127 127 Cromix 11.26,ccc , DEC PDP-11/34A w/FP-11C 0.00 406 449 UNIX V7m,cc , DEC PDP-11/45 ? 0.00 454 506 UNIX V7M,cc ? 256KB, DEC VAX 11/750 0.00 836 845 BRL Sys V on 4.2BSD ,5bin/cc , DEC VAX-11/750 w/FPA 0.00 831 852 UNIX 4.2BSD,cc , DEC VAX 11/750 0.00 835 859 Root 4.2,cc , DEC VAX-11/750 0.00 868 863 EUNICE 4.2 (4.1BSD) on VMS 4.3,cc , DEC PDP-11/73 J-ll,w/F 0.00 772 875 UNIX 2.9BSD,cc , DEC PDP 11/44 0.00 884 951 UNIX Sys III,cc , DEC VAX-11/750 0.00 961 957 VMS 4.3,VAX C 2.0 , DEC VAX 11/780 0.00 1243 1307 UNIX 4.2BSD,cc , DEC MicroVAX I 0.00 1361 1385 Mach 4.3,cc , DEC Micro VAX 0.00 1379 1394 Ultrix 1.1,cc , DEC MicroVAX I 0.00 1385 1399 Ultrix-32m 1.1,cc , DEC VAX 11/780 0.00 1417 1441 UNIX 4.2BSD,cc , DEC VAX 11/780 MA780 0.00 1428 1470 Mach 4.3,cc , DEC VAX-11/780 0.00 1526 1523 VMS 4.3,VAX C 2.0 , DEC VAX 11/780 0.00 1650 1640 UNIX 5.0.1,cc 4.1.1.31 , DEC 2060 0.00 1677 1736 TOPS 20 ,pcc , DEC VAX 11/785 0.00 1783 1813 UNIX 4.2BSD,cc , DEC VAX 11/785 0.00 2063 2069 UNITY/VMS 5.2.2,pcc 4.3 , DEC 8600 0.00 3866 3841 VAX/VMS 4.4,VAX C 2.2.15 , DEC 8600 0.00 3866 3841 VAX/VMS 4.4,VAX C 2.2.15 , DEC VAX 11/784 0.00 5263 5555 Mach 4.3,cc ,1D on 4P DEC VAX 8600 0.00 6329 6423 UNIX 4.3BSD,cc , DataMedia 932 68000 10.00 837 888 UNIX SYS V,cc , Encore Multimax 32032 10.00 1360 1360 Umax 4.2 R2.0 or V R1.0,Green Hills , Fortune 32:16 68000 6.00 346 360 UNIX V7,cc , GMX Micro-20 68020 12.50 1315 1250 OS-9 1.2,Microware 2.0 , Genisys AT 80286 10.00 0 2777 MSDOS ,MS 3.0 /Ot/AS/Gs/G2, Gould PN6005 0.00 1732 1884 UTX 1.1c+,cc , Gould PN9080 0.00 4745 4992 UTX-32 1.1C,cc , Gould PN 9080 0.00 6024 6340 UTX 2.0 beta,cc , HP 9000-500 1 CPU, R 18.00 1599 1599 HP-UX 5.05,cc , HP 9000-320 68020 16.67 2464 2671 HP/UX 5.02 B 9000/320, , HP 9000-500 2 CPUs, 18.00 3020 3020 HP-UX 5.05,cc ,Two copies run and added HP 9000-500 3 CPUs, 18.00 4140 4140 HP-UX 5.05,cc ,Three copies run and added Hazelwood Uniquad 1 68008 8.00 243 259 OS-9 1.2,Microware 2.0 , Home Brew Z80 4.00 53 53 CPM-80 ,Hisoft C++ , Home Brew Z80 2.50 91 91 CPM-80 2.2,Aztec CII 1.05g , Home Brew 8086 8.00 197 203 iRMX-86 V6,Intel C-86 2.0 large,?? Home Brew 8086 8.00 287 304 iRMX 86 V6,Intel C-86 2.0 small,?? Honeywell DPS8/49 0.00 980 980 GCOS8 SR2500,Waterloo SDG C 2.5 , IBM PC/XT 8088 4.77 259 275 COHERENT 2.3.43,Mark Williams , IBM PC/XT 8088 4.77 326 347 MS-DOS 2.0,Microsoft 3.01 , IBM PC/AT 80286 6.00 531 531 MS-DOS 3.1,Lattice 3.00h -ml (large model), IBM PC/AT 80286 9.05 696 692 XENIX SCO SVR2.1,cc large, IBM PC/AT 80286 6.00 943 925 MS-DOS 3.1,Lattice 3.00h , IBM PC/AT 80286 7.50 1162 1256 Venix/286 SVR2.1,cc Venturcom 2.2 small, IBM PC/AT 80286 9.05 1464 1484 XENIX SCO SVR2.1,cc small, IBM PC/RT 0.00 1333 1510 UNIX 4.2BSD,cc , IBM PC/RT (6150)w/ 0.00 1537 1660 AIX SVR1,cc , IBM PC/AT 80286 8.00 1729 1796 PC-DOS 3.20,Microsoft 4.0 , IBM PC/AT 80286 9.00 1976 1976 UNIX Microport SVR2,cc small, IBM PC/AT 80286 8.00 2176 2239 PC-DOS 3.20,Microsoft 4.0 small,w/Cheetah 0 ws memory IBM 4341-12 0.00 3690 3690 Amdahl UTS V,cc 1.11 , IBM 4341-12 0.00 3910 3910 Amdahl UTS V,cc 1.11 ,Mike Newtons "optimzer" IBM RT-PC ROMP-C 10.00 0 4587 AIX 2.1,pcc 2.1 w/oINLINER, IBM 4381-2 0.00 4504 4901 ,c/370 , IBM 4381-2 0.00 5681 5681 VM/SP 3.18,Waterloo 1.2 , IBM RT-PC ROMP-C 10.00 0 6097 AIX 2.1,pcc 2.1 w/INLINER, IBM RT-PC ROMP-C 10.00 0 6329 AIX 2.1,Advanced C 2.1 , IBM 4381-2 0.00 6440 6440 Amdahl UTS V,cc 1.11 , IBM 4381-2 0.00 6850 6850 Amdahl UTS V,cc 1.11 ,Mike Newtons "optimizer" IBM 3090/200 0.00 31250 31250 , , ICL 39/80 0.00 8350 8350 VME/VNS V1.5, , IMP Mentor 68020 16.00 2632 2747 Root V.2,pcc-2 , ISI Optimum V 68020 16.00 3245 3391 UNIX 4.2BSD r3.05,ISI , ISI Optimum 68020 16.67 3074 3452 UNIX ISI 3.0.1,cc , ISI Optimum V 68020 16.00 3778 3977 UNIX 4.2BSD r3.05,Green Hills 1.8.0 , ISI (Integ V16 68020 16.67 3241 3379 UNIX BSD 4.2 3.05e,cc -O -20, Intel 386/24 sys 80386 16.00 4725 5089 UNIX System V.3 beta,rcc 2.01 ,386 Multibus I w/64KB cache Intel 386/24 sys 80386 16.00 6250 6250 UNIX System V.3 beta,greenhills cc v1.8.2C ,386 Multibus I w/64KB cache Intel 386/24 sys 80386 20.00 5966 6394 UNIX System V.3 beta,rcc 2.01 ,386 Multibus I w/64KB cache Intel 386/20 80386 16.00 6995 6677 UNIX SVR3,Green Hills C-386 1.8.2E none,-O means loop optimize, qed faster NOREG Intel System 310 80386 16.00 7002 7132 UNIX V.3 (Beta),Green Hills C 386 1.8.2E None, Intel 386/24 sys 80386 20.00 7810 7810 UNIX System V.3 beta,greenhills cc v1.8.2C ,386 Multibus I w/64KB cache Intergraph InterPro 3 Clipper( 30.00 5275 5104 SYSVR3 3.0.0,Greenhills cc GH C-Clipper 1.6.11.3 none, Intergraph InterPro 3 Clipper( 30.00 4855 5156 SYSVR3 3.0.0,Greenhills cc GH C-Clipper 1.6.11.3 -O, MASSCOMP 5600; 1 CP 68020/68 16.67 4161 4155 RTU 3.0,cc 1.121 ,TOO LONG MASSCOMP MC-5700 68020 16.70 4398 4433 RTU 3.1,cc (MASSCOMP) 1.2 large, MASSCOMP MC-5700 (2)68020 16.70 8714 8773 RTU 3.1,cc (MASSCOMP) 1.2 large,2 copies/2 procs,results summed MASSCOMP MC-5700 (4)68020 16.70 14829 15178 RTU 3.1,cc (MASSCOMP) 1.2 large,4 copies/4 procs,results summed MIPS M/500 R2000 8.00 8855 10309 UNIX 4.3BSD,cc , Motorola MVME121 68010 10.00 820 865 Uniflex ,cc 1.3:0 ,MVME320,050 Motorola System 113 MC68020 16.67 3246 3257 System V R2V2.2,pcc2 High level Optim and peep Optim ATT -O, NCR Decision M 8088 4.77 166 166 MS-DOS 2.11,Lattice 2.14 small, NCR PC4 8088 0.00 212 212 MS-DOS 2.11,Lattice 2.14 small, NCR Decision M 8088 4.77 250 250 MS-DOS 2.11,Lattice 3.0g small, NCR PC4 8088 4.77 322 322 MS-DOS 2.11,Lattice 3.0g small, NCR PC6 8088 8.00 349 349 MS-DOS 2.11,Lattice 2.14 small, NCR PC6 8088 8.00 512 512 MS-DOS 2.11,Lattice 3.0g small, NCR PC-8 80286 8.00 653 649 XENIX SCO SVR2.0.4,cc large, NCR PC-8 80286 8.00 981 983 XENIX SCO SVR2.0.4,cc middle, NCR PC-8 80286 8.00 1283 1299 XENIX SCO SVR2.0.4,cc small, NCR V8645 ECL 26.00 1402 1424 VRX 12.01.13,vrxccomp 05 , NCR Tower 32 68020 16.00 3270 3537 UNIX SVR2,cc , National VR332 32332 15.00 2851 2851 UNIX SVR2.2,NSC GNX 2 -O, National S ICM-3216 32016 10.00 0 2688 UNIX SVR2,cc ,Wouldn't run noreg OPUS SYSTE Opus 32.16 32016 10.00 736 776 Opus5(UNIX) 2.0v2C2.1,cc SysV.2.0 Ver 1.5 ,hosted on IBM PC/AT Olivetti m24 8086 8.00 0 847 MSDOS ,MS 3.0 /Ot/AS/Gs, Olivetti m24 V30 8.00 0 1086 MSDOS ,MS 3.0 /Ot/AS/Gs/G0, Olivetti m24 V30 8.00 0 1111 MSDOS ,MS 3.0 /Ot/AS/Gs/G1, PCS GmbH Cadmus 923 68010 10.00 1052 1076 MUNIX V.2/04-v,cc , PRIME 9955 0.00 1633 1633 PRIMIX 1.2,CC 4.0-19.4 -OPTIMIZE -HIGH,Primix (Unix) on top of Primos 20.0.4 PRIME 9955 0.00 2859 2859 PRIMOS 20.0.4,CC 4.0-19.4 -OPTIMIZE -HIGH,V-mode compiler PRIME 9955 0.00 3348 3348 PRIMOS 20.0.4,CI 4.0-19.4 -32IX,I-mode compiler PRIME 9955 0.00 3492 3492 PRIMOS 20.0.4,CI 4.0-19.4 -32IX -INTRINSIC strcpy, Phillips 68000 8.00 313 333 Root V.2,pcc-2 , Plessey system68 68000 8.00 408 436 Root V,pcc , Plessey Mantra 68010 12.00 1089 1157 Root V.2,pcc2 , Plexus P35 68000 12.50 835 894 UNIX SYS III,cc , Pyramid 90x XBIF 8.00 1779 1779 OSx 3.1,CLE 3.2.0 , Pyramid 90x DCU 8.00 2898 2898 OSx 3.1,CLE 3.2.0 , Pyramid 98xe DCU 10.00 3627 3627 OSx 3.1,CLE 3.2.0 , Pyramid Workcenter DCU 10.00 3627 3627 OSx 3.1,CLE 3.2.0 , Pyramid 98X DCU 10.00 3671 3671 OSx 3.1,CLE 3.2.0 , Pyramid 98xe DCU,FPA 10.00 3773 3773 OSx 3.1,CLE 3.2.0 , Pyramid 98X DCU,FPA 10.00 3856 3856 OSx ,CLE 3.2.0 , Racal Redac 68010 10.00 490 525 Root V.2,pcc-2 , Ridge 32C V1 0.00 1628 1695 ROS 3.3,Ridge (older) , Ridge Comp Ridge 3200 Propriet 12.00 6119 6240 ROS 3.4,rc 2.0 none, SSB Chieftan 6809 2.00 210 249 OS/9 Level II 1.2,Microware , Sequent Balance 80 32032 10.00 1097 1137 Dynix ,cc , Sherry AT 80286 8.00 0 1724 MSDOS ,MS 3.0 /Ot/AS/Gs/G2, Siemens PC-MX2 32016 10.00 717 745 Root V.2,cc , Spectrix M Series 10 68000 10.00 571 592 Xenix ,Greenhills 1.7.14 -O, Stride 68010 10.00 1164 1252 UniStride SVR2,cc , Stride Mic Stride 68010 10.00 1212 1313 UniStride 2.1,cc , Sun 1/100U 0.00 957 1029 UNIX Sun 2.0,cc , Sun 2/120 68010 10.00 950 1051 UNIX 4.2BSD,cc no -O, Sun 1/100U 0.00 1039 1075 UNIX Sun 2.0,Greehills , Sun 2 0.00 1034 1110 UNIX 4.2BSD,cc , Sun 2/120 68010 10.00 1058 1142 UNIX Sun 2.2,cc , Sun 3/50 68020 15.00 2280 2540 UNIX Sun 3.0,cc , Sun 3/160 68020 16.67 2843 3134 UNIX Sun 3.0,cc , Sun 3/160 68020 16.67 2921 3229 UNIX Sun 3.0,cc -fsoft, Sun 3/160 68020 16.67 2949 3236 UNIX Sun 3.0,cc -f68881, Sun 3/160 68020 16.67 2946 3246 Sun 4.2 3.0A,cc , Sun 3/260 68020 0.00 5940 5484 Sun 3.2,cc (68010) ,Sun-2 68010 binaries Sun 3/260 68020 25.00 5366 5964 UNIX SunOS 3.2,cc 3.2 -O,cache Sun 3/260 68020 0.00 5836 6329 Sun 3.2,cc , Sun 3/200 68020 25.00 5914 6374 SunOS 3.2,Sun C Compiler 3.1 , Sun Micros Sun 3/260 Motorola 25.00 5905 6362 SunOS (UNIX) 3.2 (4.2BSD+SVR2),cc -O, Symmetric s/375 32016 10.00 752 709 UNIX 4.2BSD,cc ,Symmetrix=rel4, cpuboard=rel2 TANDY 3000HD 80286 10.00 1318 1346 XENIX System V/286,cc large, TANDY 3000HD 80286 10.00 2071 2164 XENIX System V/286 Xenix,cc small, Tadpole Titan 68010 10.00 823 882 Root V,pcc , Tandy 3000 80286 8.00 1455 1543 Xenix 2.00,cc , Tektronix 6130 32016 8.00 595 629 UTek 2.2 (modified),cc -O,"big-build" Tektronix 4132 32016 10.00 1060 1119 UTek 2.3,cc -O, Torch Triple X 68010 0.00 578 625 Root V,pcc , VT 68000 8.00 422 451 Root V.2,pcc2 , Victor Sirius 8088 0.00 284 295 MSDOS 2.11,Microsoft 3.0 large, Victor Sirius 8088 0.00 317 335 MSDOS 2.11,Microsoft 3.0 middle, Victor Sirius 8088 0.00 357 381 MSDOS 2.11,Microsoft 3.0 small, Whitechape MG1 32016 8.00 636 675 UNIX 4.2BSD,cc , Zilog 8000 model Z8001 6.00 727 758 Zeus 3.21,cc segmented, Zilog 8000 model Z8001 6.00 831 878 Zeus 3.21,cc non-segment, benchMark 32016 10.00 643 673 Root V.2,pcc2 , DHRYSTONE 1.1 BENCHMARK SUMMARY Sun Mar 15 09:05:48 EST 1987 SORTED BY PERFORMANCE MANUF MODEL PROC CLOCK NOREG REG OS,COMPILER,NOTES ----- ----- ---- ----- ----- --- ----------------- Commodore 64 6510 1.00 19 34 C64 ROM ,C Power 2.9 trim, Apple IIe 65C02 1.02 37 37 DOS 3.3,Aztec CII v1.05i , Home Brew Z80 4.00 53 53 CPM-80 ,Hisoft C++ , Commodore 128 8502 2.00 43 68 C128 ROM ,C Power 128 trim, Home Brew Z80 2.50 91 91 CPM-80 2.2,Aztec CII 1.05g , Cromemco Z2 Z80 4.00 127 127 Cromix 11.26,ccc , NCR Decision M 8088 4.77 166 166 MS-DOS 2.11,Lattice 2.14 small, Home Brew 8086 8.00 197 203 iRMX-86 V6,Intel C-86 2.0 large,?? NCR PC4 8088 0.00 212 212 MS-DOS 2.11,Lattice 2.14 small, SSB Chieftan 6809 2.00 210 249 OS/9 Level II 1.2,Microware , NCR Decision M 8088 4.77 250 250 MS-DOS 2.11,Lattice 3.0g small, Hazelwood Uniquad 1 68008 8.00 243 259 OS-9 1.2,Microware 2.0 , IBM PC/XT 8088 4.77 259 275 COHERENT 2.3.43,Mark Williams , Victor Sirius 8088 0.00 284 295 MSDOS 2.11,Microsoft 3.0 large, Home Brew 8086 8.00 287 304 iRMX 86 V6,Intel C-86 2.0 small,?? NCR PC4 8088 4.77 322 322 MS-DOS 2.11,Lattice 3.0g small, Phillips 68000 8.00 313 333 Root V.2,pcc-2 , Victor Sirius 8088 0.00 317 335 MSDOS 2.11,Microsoft 3.0 middle, IBM PC/XT 8088 4.77 326 347 MS-DOS 2.0,Microsoft 3.01 , NCR PC6 8088 8.00 349 349 MS-DOS 2.11,Lattice 2.14 small, Fortune 32:16 68000 6.00 346 360 UNIX V7,cc , Armstrong 68000 0.00 342 363 Root V,pcc , Victor Sirius 8088 0.00 357 381 MSDOS 2.11,Microsoft 3.0 small, Apricot portable 8086 5.00 375 400 MS-DOS 2.11,Microsoft 3.01 , AT&T 3B2/300 32000 7.20 409 410 UNIX SVR2.0,cc , Plessey system68 68000 8.00 408 436 Root V,pcc , Gridcase 3 80C86 4.77 409 438 MS-DOS 2.11,Microsoft 3.01 , DEC PDP-11/34A w/FP-11C 0.00 406 449 UNIX V7m,cc , Altos Comp ACS 68000 68000 8.00 440 450 UNIX System III, Altos Release 2.0,cc --, Atari 520/ST 68000 8.00 446 450 TOS ,Lattice 3.03.01 , VT 68000 8.00 422 451 Root V.2,pcc2 , DEC PDP-11/45 ? 0.00 454 506 UNIX V7M,cc ? 256KB, NCR PC6 8088 8.00 512 512 MS-DOS 2.11,Lattice 3.0g small, Racal Redac 68010 10.00 490 525 Root V.2,pcc-2 , IBM PC/AT 80286 6.00 531 531 MS-DOS 3.1,Lattice 3.00h -ml (large model), Apple Lisa 2/10 68000 5.00 505 533 XENIX 3.0 Priam,cc , Apple Macintosh 68000 8.00 510 549 Mac Finder 5.1, System 3.2,LightSpeed C 1.02 ,with new, 128K ROMs Apple Lisa 68000 0.00 517 550 UniPlus Sys V,cc , AT&T 3B5 WE32000 10.00 578 573 UNIX SVR2 5.2.0.1 V2,cc ? large, Spectrix M Series 10 68000 10.00 571 592 Xenix ,Greenhills 1.7.14 -O, Apple Macintosh 68000 7.70 625 625 Mac ROM ,DeSmet , Torch Triple X 68010 0.00 578 625 Root V,pcc , Tektronix 6130 32016 8.00 595 629 UTek 2.2 (modified),cc -O,"big-build" NCR PC-8 80286 8.00 653 649 XENIX SCO SVR2.0.4,cc large, benchMark 32016 10.00 643 673 Root V.2,pcc2 , Whitechape MG1 32016 8.00 636 675 UNIX 4.2BSD,cc , Amiga 1000 0.00 643 684 ,Manx C 2.30a ,32 bit int AT&T 3B2/300 32000 7.20 685 688 UNIX SVR2.0.4,cc , IBM PC/AT 80286 9.05 696 692 XENIX SCO SVR2.1,cc large, AT&T 3B2/300 32000 7.70 699 697 UNIX SVR3.0,cc , Symmetric s/375 32016 10.00 752 709 UNIX 4.2BSD,cc ,Symmetrix=rel4, cpuboard=rel2 Siemens PC-MX2 32016 10.00 717 745 Root V.2,cc , Zilog 8000 model Z8001 6.00 727 758 Zeus 3.21,cc segmented, Apple Mac+ 68000 7.80 714 769 Mac 3.2,Manx 1.06H ,16 bit int OPUS SYSTE Opus 32.16 32016 10.00 736 776 Opus5(UNIX) 2.0v2C2.1,cc SysV.2.0 Ver 1.5 ,hosted on IBM PC/AT DEC VAX 11/750 0.00 836 845 BRL Sys V on 4.2BSD ,5bin/cc , Olivetti m24 8086 8.00 0 847 MSDOS ,MS 3.0 /Ot/AS/Gs, DEC VAX-11/750 w/FPA 0.00 831 852 UNIX 4.2BSD,cc , DEC VAX 11/750 0.00 835 859 Root 4.2,cc , DEC VAX-11/750 0.00 868 863 EUNICE 4.2 (4.1BSD) on VMS 4.3,cc , Motorola MVME121 68010 10.00 820 865 Uniflex ,cc 1.3:0 ,MVME320,050 DEC PDP-11/73 J-ll,w/F 0.00 772 875 UNIX 2.9BSD,cc , Zilog 8000 model Z8001 6.00 831 878 Zeus 3.21,cc non-segment, Tadpole Titan 68010 10.00 823 882 Root V,pcc , DataMedia 932 68000 10.00 837 888 UNIX SYS V,cc , Plexus P35 68000 12.50 835 894 UNIX SYS III,cc , Amiga 1000 0.00 880 915 ,Manx 2.30a ,16 bit int IBM PC/AT 80286 6.00 943 925 MS-DOS 3.1,Lattice 3.00h , DEC PDP 11/44 0.00 884 951 UNIX Sys III,cc , DEC VAX-11/750 0.00 961 957 VMS 4.3,VAX C 2.0 , Convergent MiniFrame 68010 10.00 919 965 CTIX 3.2,cc , Honeywell DPS8/49 0.00 980 980 GCOS8 SR2500,Waterloo SDG C 2.5 , NCR PC-8 80286 8.00 981 983 XENIX SCO SVR2.0.4,cc middle, Convergent MiniFrame 68010 10.00 933 985 UNIX SVR2,cc , Sun 1/100U 0.00 957 1029 UNIX Sun 2.0,cc , AT&T UNIX PC 68010 10.00 973 1034 UNIX 5.0.3,cc , Sun 2/120 68010 10.00 950 1051 UNIX 4.2BSD,cc no -O, Sun 1/100U 0.00 1039 1075 UNIX Sun 2.0,Greehills , PCS GmbH Cadmus 923 68010 10.00 1052 1076 MUNIX V.2/04-v,cc , Olivetti m24 V30 8.00 0 1086 MSDOS ,MS 3.0 /Ot/AS/Gs/G0, Sun 2 0.00 1034 1110 UNIX 4.2BSD,cc , Olivetti m24 V30 8.00 0 1111 MSDOS ,MS 3.0 /Ot/AS/Gs/G1, Tektronix 4132 32016 10.00 1060 1119 UTek 2.3,cc -O, AT&T 3B2/400 32100 10.00 1108 1120 UNIX SVR2.0.4,cc , Atari 520ST 68000 8.00 1063 1136 TOS ,Megamax 1.0 , Sequent Balance 80 32032 10.00 1097 1137 Dynix ,cc , Compaq Compaq II 80286 8.00 1086 1140 MS-DOS 3.1,Microsoft 3.0 large, Sun 2/120 68010 10.00 1058 1142 UNIX Sun 2.2,cc , Plessey Mantra 68010 12.00 1089 1157 Root V.2,pcc2 , CCI Power 5/32 68010 12.50 1135 1192 Unix BSD 4.2,cc ? , AT&T 3B5 WE320xx 0.00 1212 1207 UNIX Sys V 2.0.1,cc 2.0.11.0 -O, AT&T 6300 PLUS 80286 6.00 1225 1225 UNIX SVR2 vC3,cc , GMX Micro-20 68020 12.50 1315 1250 OS-9 1.2,Microware 2.0 , Stride 68010 10.00 1164 1252 UniStride SVR2,cc , IBM PC/AT 80286 7.50 1162 1256 Venix/286 SVR2.1,cc Venturcom 2.2 small, Compaq Compaq II 80286 8.00 1190 1282 MS-DOS 3.1,Microsoft 3.0 medium, NCR PC-8 80286 8.00 1283 1299 XENIX SCO SVR2.0.4,cc small, DEC VAX 11/780 0.00 1243 1307 UNIX 4.2BSD,cc , Stride Mic Stride 68010 10.00 1212 1313 UniStride 2.1,cc , TANDY 3000HD 80286 10.00 1318 1346 XENIX System V/286,cc large, Encore Multimax 32032 10.00 1360 1360 Umax 4.2 R2.0 or V R1.0,Green Hills , DEC MicroVAX I 0.00 1361 1385 Mach 4.3,cc , DEC Micro VAX 0.00 1379 1394 Ultrix 1.1,cc , DEC MicroVAX I 0.00 1385 1399 Ultrix-32m 1.1,cc , NCR V8645 ECL 26.00 1402 1424 VRX 12.01.13,vrxccomp 05 , Compaq Compaq II 80286 8.00 1351 1428 MS-DOS 3.1,Microsoft 3.0 small, ATI 2000 80286 8.00 1440 1440 UNIX Microport SVR2,cc large,0 wait state AT clone DEC VAX 11/780 0.00 1417 1441 UNIX 4.2BSD,cc , DEC VAX 11/780 MA780 0.00 1428 1470 Mach 4.3,cc , IBM PC/AT 80286 9.05 1464 1484 XENIX SCO SVR2.1,cc small, Apollo DN330 68020 12.50 1504 1504 Domain/IX ,cc 4.08 w/o 020, IBM PC/RT 0.00 1333 1510 UNIX 4.2BSD,cc , DEC VAX-11/780 0.00 1526 1523 VMS 4.3,VAX C 2.0 , Tandy 3000 80286 8.00 1455 1543 Xenix 2.00,cc , HP 9000-500 1 CPU, R 18.00 1599 1599 HP-UX 5.05,cc , PRIME 9955 0.00 1633 1633 PRIMIX 1.2,CC 4.0-19.4 -OPTIMIZE -HIGH,Primix (Unix) on top of Primos 20.0.4 DEC VAX 11/780 0.00 1650 1640 UNIX 5.0.1,cc 4.1.1.31 , IBM PC/RT (6150)w/ 0.00 1537 1660 AIX SVR1,cc , Apollo DN330 68020 12.50 1677 1677 Domain/IX ,cc 4.08 w/ 020, Ridge 32C V1 0.00 1628 1695 ROS 3.3,Ridge (older) , Compaq 386 80386 16.00 1724 1724 PCDOS 3.1,Lattice 3.00H large, Sherry AT 80286 8.00 0 1724 MSDOS ,MS 3.0 /Ot/AS/Gs/G2, DEC 2060 0.00 1677 1736 TOPS 20 ,pcc , Pyramid 90x XBIF 8.00 1779 1779 OSx 3.1,CLE 3.2.0 , IBM PC/AT 80286 8.00 1729 1796 PC-DOS 3.20,Microsoft 4.0 , AT&T 3B15 32100 14.00 1797 1798 UNIX 5.2.1,cc , DEC VAX 11/785 0.00 1783 1813 UNIX 4.2BSD,cc , Counterpoi 68020 12.00 1702 1850 UNIX SV,cc , Gould PN6005 0.00 1732 1884 UTX 1.1c+,cc , APOLLO DN330 68020/68 12.50 1934 1934 Domain/IX SR9.5.Bl12,CC 4.58 w/o 020,68881,(Beta OS and Compiler) IBM PC/AT 80286 9.00 1976 1976 UNIX Microport SVR2,cc small, Compaq 386 80386 16.00 2000 2000 PCDOS 3.1,Lattice 3.00H large data, APOLLO DN330 68020/68 12.50 2046 2046 Domain/IX SR9.5.Bl12,CC 4.58 w/020,68881,(Beta OS and Compiler) DEC VAX 11/785 0.00 2063 2069 UNITY/VMS 5.2.2,pcc 4.3 , ATI 2000 80286 8.00 2145 2145 UNIX Microport SVR2,cc small,0 wait state AT clone TANDY 3000HD 80286 10.00 2071 2164 XENIX System V/286 Xenix,cc small, IBM PC/AT 80286 8.00 2176 2239 PC-DOS 3.20,Microsoft 4.0 small,w/Cheetah 0 ws memory APOLLO DN3000 68020/68 12.50 2481 2481 Domain/IX SR9.5.Bl12,CC 4.58 w/o 020,68881,(Beta OS and Compiler) Counterpoi System 19 68020 16.67 2270 2481 UNIX SVR2.2,Motorola pcc2 ,Single uP; 1-8 possible Sun 3/50 68020 15.00 2280 2540 UNIX Sun 3.0,cc , Compaq 386 80386 16.00 2631 2631 PCDOS 3.1,Lattice 3.00H large data, APOLLO DN3000 68020/68 12.50 2643 2643 Domain/IX SR9.5.Bl12,CC 4.58 w/020,68881,(Beta OS and Compiler) HP 9000-320 68020 16.67 2464 2671 HP/UX 5.02 B 9000/320, , National S ICM-3216 32016 10.00 0 2688 UNIX SVR2,cc ,Wouldn't run noreg IMP Mentor 68020 16.00 2632 2747 Root V.2,pcc-2 , Genisys AT 80286 10.00 0 2777 MSDOS ,MS 3.0 /Ot/AS/Gs/G2, Arete 1100/1200 68020 12.00 2741 2808 UNIX SVR2.2,Motorola pcc2 , National VR332 32332 15.00 2851 2851 UNIX SVR2.2,NSC GNX 2 -O, PRIME 9955 0.00 2859 2859 PRIMOS 20.0.4,CC 4.0-19.4 -OPTIMIZE -HIGH,V-mode compiler Pyramid 90x DCU 8.00 2898 2898 OSx 3.1,CLE 3.2.0 , Compaq 386 80386 16.00 2941 2941 PCDOS 3.1,Lattice 3.00H small, HP 9000-500 2 CPUs, 18.00 3020 3020 HP-UX 5.05,cc ,Two copies run and added Sun 3/160 68020 16.67 2843 3134 UNIX Sun 3.0,cc , Sun 3/160 68020 16.67 2921 3229 UNIX Sun 3.0,cc -fsoft, Sun 3/160 68020 16.67 2949 3236 UNIX Sun 3.0,cc -f68881, Sun 3/160 68020 16.67 2946 3246 Sun 4.2 3.0A,cc , Motorola System 113 MC68020 16.67 3246 3257 System V R2V2.2,pcc2 High level Optim and peep Optim ATT -O, PRIME 9955 0.00 3348 3348 PRIMOS 20.0.4,CI 4.0-19.4 -32IX,I-mode compiler ISI (Integ V16 68020 16.67 3241 3379 UNIX BSD 4.2 3.05e,cc -O -20, ISI Optimum V 68020 16.00 3245 3391 UNIX 4.2BSD r3.05,ISI , ISI Optimum 68020 16.67 3074 3452 UNIX ISI 3.0.1,cc , PRIME 9955 0.00 3492 3492 PRIMOS 20.0.4,CI 4.0-19.4 -32IX -INTRINSIC strcpy, NCR Tower 32 68020 16.00 3270 3537 UNIX SVR2,cc , Pyramid 98xe DCU 10.00 3627 3627 OSx 3.1,CLE 3.2.0 , Pyramid Workcenter DCU 10.00 3627 3627 OSx 3.1,CLE 3.2.0 , Pyramid 98X DCU 10.00 3671 3671 OSx 3.1,CLE 3.2.0 , IBM 4341-12 0.00 3690 3690 Amdahl UTS V,cc 1.11 , Pyramid 98xe DCU,FPA 10.00 3773 3773 OSx 3.1,CLE 3.2.0 , DEC 8600 0.00 3866 3841 VAX/VMS 4.4,VAX C 2.2.15 , DEC 8600 0.00 3866 3841 VAX/VMS 4.4,VAX C 2.2.15 , Pyramid 98X DCU,FPA 10.00 3856 3856 OSx ,CLE 3.2.0 , IBM 4341-12 0.00 3910 3910 Amdahl UTS V,cc 1.11 ,Mike Newtons "optimzer" Celerity 1200 0.00 3921 3916 UNIX 4.2BSD r3.2, , ISI Optimum V 68020 16.00 3778 3977 UNIX 4.2BSD r3.05,Green Hills 1.8.0 , Celerity 1260-D 1230 0.00 4010 4045 4.2 BSD 3.2.50,cc standard -O,A 1260-D is a dual-processor 1230 Celerity 1260-D 1230 0.00 4046 4061 4.2 BSD 3.2.50,cc beta test -O,A 1260-D is a dual-processor 1230 HP 9000-500 3 CPUs, 18.00 4140 4140 HP-UX 5.05,cc ,Three copies run and added MASSCOMP 5600; 1 CP 68020/68 16.67 4161 4155 RTU 3.0,cc 1.121 ,TOO LONG Celerity C-1230 NCR uP 10.00 4155 4360 UNIX 4.2BSD,cc , MASSCOMP MC-5700 68020 16.70 4398 4433 RTU 3.1,cc (MASSCOMP) 1.2 large, IBM RT-PC ROMP-C 10.00 0 4587 AIX 2.1,pcc 2.1 w/oINLINER, Celerity C1230 0.00 4702 4716 UNIX 4.2BSD r3.2, , IBM 4381-2 0.00 4504 4901 ,c/370 , Gould PN9080 0.00 4745 4992 UTX-32 1.1C,cc , Intel 386/24 sys 80386 16.00 4725 5089 UNIX System V.3 beta,rcc 2.01 ,386 Multibus I w/64KB cache Intergraph InterPro 3 Clipper( 30.00 5275 5104 SYSVR3 3.0.0,Greenhills cc GH C-Clipper 1.6.11.3 none, Intergraph InterPro 3 Clipper( 30.00 4855 5156 SYSVR3 3.0.0,Greenhills cc GH C-Clipper 1.6.11.3 -O, Sun 3/260 68020 0.00 5940 5484 Sun 3.2,cc (68010) ,Sun-2 68010 binaries DEC VAX 11/784 0.00 5263 5555 Mach 4.3,cc ,1D on 4P IBM 4381-2 0.00 5681 5681 VM/SP 3.18,Waterloo 1.2 , Sun 3/260 68020 25.00 5366 5964 UNIX SunOS 3.2,cc 3.2 -O,cache IBM RT-PC ROMP-C 10.00 0 6097 AIX 2.1,pcc 2.1 w/INLINER, Ridge Comp Ridge 3200 Propriet 12.00 6119 6240 ROS 3.4,rc 2.0 none, Intel 386/24 sys 80386 16.00 6250 6250 UNIX System V.3 beta,greenhills cc v1.8.2C ,386 Multibus I w/64KB cache IBM RT-PC ROMP-C 10.00 0 6329 AIX 2.1,Advanced C 2.1 , Sun 3/260 68020 0.00 5836 6329 Sun 3.2,cc , Gould PN 9080 0.00 6024 6340 UTX 2.0 beta,cc , Sun Micros Sun 3/260 Motorola 25.00 5905 6362 SunOS (UNIX) 3.2 (4.2BSD+SVR2),cc -O, Sun 3/200 68020 25.00 5914 6374 SunOS 3.2,Sun C Compiler 3.1 , Intel 386/24 sys 80386 20.00 5966 6394 UNIX System V.3 beta,rcc 2.01 ,386 Multibus I w/64KB cache DEC VAX 8600 0.00 6329 6423 UNIX 4.3BSD,cc , IBM 4381-2 0.00 6440 6440 Amdahl UTS V,cc 1.11 , Intel 386/20 80386 16.00 6995 6677 UNIX SVR3,Green Hills C-386 1.8.2E none,-O means loop optimize, qed faster NOREG IBM 4381-2 0.00 6850 6850 Amdahl UTS V,cc 1.11 ,Mike Newtons "optimizer" Intel System 310 80386 16.00 7002 7132 UNIX V.3 (Beta),Green Hills C 386 1.8.2E None, Intel 386/24 sys 80386 20.00 7810 7810 UNIX System V.3 beta,greenhills cc v1.8.2C ,386 Multibus I w/64KB cache ICL 39/80 0.00 8350 8350 VME/VNS V1.5, , Celerity 1260 0.00 8321 8384 UNIX 4.2BSD r3.2, , MASSCOMP MC-5700 (2)68020 16.70 8714 8773 RTU 3.1,cc (MASSCOMP) 1.2 large,2 copies/2 procs,results summed MIPS M/500 R2000 8.00 8855 10309 UNIX 4.3BSD,cc , MASSCOMP MC-5700 (4)68020 16.70 14829 15178 RTU 3.1,cc (MASSCOMP) 1.2 large,4 copies/4 procs,results summed Amdahl 5860 0.00 28735 28846 UTS V,cc 1.22 , IBM 3090/200 0.00 31250 31250 , , SHAR_EOF fi if test -f 'submit.doc' then echo shar: "will not over-write existing file 'submit.doc'" else cat << \SHAR_EOF > 'submit.doc' SUBMISSION PROCEDURE I'm no longer accepting or reporting results from the 1.0 version. Remember, the "goofed" version? I am now keeping a real database of all the reported results. To help me in automating this process, I am requesting that all results sent to me are on a copy of the form in "submit.frm", and mailed to: ihnp4!castor!pcrat!dry OR attmail!pcrat!dry A sample filled out form looks like this: DHRYSTONE 1.1 BENCHMARK REPORTING FORM MANUF: AT&T MODEL: 6300 PLUS PROC: 80286 CLOCK: 6 OS: UNIX OVERSION: SVR2 COMPILER: cc CVERSION: 2.0 OPTIONS: large NOREG: 99999 REG: 99999 NOTES: immersed unit in He DATE: 8/15/86 SUBMITTER: ihnp4!frostbite (Abby Normal) MAILTO: ihnp4!castor!pcrat!dry The entire form must be sent for each entry. Do not split long notes onto two or more lines. The mail scanner I use to pull this stuff directly into the database isn't that smart. You can place additional comments either before the "DHRYSTONE" line, or after the "MAILTO" line. Also, if you want to remain anonymous, don't send the results to Spencer F. Katt, instead fill in the SUBMITTER line thusly: SUBMITTER: requested anonymity The good news is that this new format allows reporting the information in several ways. I have attached reports sorted by manufacturer and by performance. I am also reporting all reasonable submissions, even for identical configurations. I gave up trying to figure out which one might be a better measure. These things aren't all that reliable a measure of performance, anyhow, and anybody who quibbles over say a 10% difference between machines is missing the point. SHAR_EOF fi if test -f 'submit.frm' then echo shar: "will not over-write existing file 'submit.frm'" else cat << \SHAR_EOF > 'submit.frm' DHRYSTONE 1.1 BENCHMARK REPORTING FORM MANUF: MODEL: PROC: CLOCK: OS: OVERSION: COMPILER: CVERSION: OPTIONS: NOREG: REG: NOTES: DATE: SUBMITTER: MAILTO: ihnp4!castor!pcrat!dry SHAR_EOF fi if test -f 'clarify.doc' then echo shar: "will not over-write existing file 'clarify.doc'" else cat << \SHAR_EOF > 'clarify.doc' CLARIFICATION There seems to have been a great deal of confusion over what this benchmark measures, and how to use these results. Let me try to clarify this: 1) DHRYSTONE is a measure of processor+compiler efficiency in executing a 'typical' program. The 'typical' program was designed by measuring statistics on a great number of 'real' programs. The 'typical' program was then written by Reinhold P. Weicker using these statistics. The program is balanced according to statement type, as well as data type. 2) DHRYSTONE does not use floating point. Typical programs don't. 3) DHRYSTONE does not do I/O. Typical programs do, but then we'd have a whole can of worms opened up. 4) DHRYSTONE does not contain much code that can be optimized by vector processors. That's why a CRAY doesn't look real fast, they weren't built to do this sort of computing. 5) DHRYSTONE does not measure OS performance, as it avoids calling the O.S. The O.S. is indicated in the results only to help in identifying the compiler technology. If somebody asked me to pick out the best machine for the money, I wouldn't look at just the results of DHRYSTONE. I'd probably: 1) Run DHRYSTONE to get a feel for the compiler+processor speed. 2) Run any number of benchmarks to check disk I/O bandwidth, using both sequential and random read/writes. 3) Run a multitasking benchmark to check multi-user response time. Typically, these benchmarks run several types of programs such as editors, shell scripts, sorts, compiles, and plot the results against the number of simulated users. 4) If appropriate for the intended use, run WHETSTONE, to determine floating point performance. 5) If appropriate for intended use, run some programs which do vector and matrix computations. 6) Figure out what the box will: - cost to buy - cost to operate and maintain - be worth when it is sold - be worth if the manufacturer goes out of business 7) Having done the above, I probably have a hand-full of machines which meet my price/performance requirements. Now, I find out if the applications programs I'd like to use will run on any of these machines. I also find out how much interest people have in writing new software for the machine, and look carefully at the migration path I will have to take when I reach the limits of the machine. To summarize, DHRYSTONES by themselves are not anything more than a way to win free beers when arguing 'Box-A versus Box-B' religion. They do provide insight into Box-A/Compiler-A versus Box-A/Compiler-B comparisons. As usual, all comments and new results should be mailed directly to me at ..ihnp4!castor!pcrat!dry. I will summarize and post to the net. These results are also being sent to Rheinhold Weicker for adding to his list of Pascal and Ada results. A SPECIAL THANKS I didn't write the DHRYSTONE benchmark. Rheinhold Weicker did. He has certainly provided us with a useful tool for benchmarking, and is to be congratulated. Rick Richardson PC Research, Inc. (201) 834-1378 (9-17 EST) (201) 922-1134 (7-9,17-24 EST) ..ihnp4!castor!pcrat!rick (normal mail) ..ihnp4!castor!pcrat!dry (results only) SHAR_EOF fi if test -f 'dry.c' then echo shar: "will not over-write existing file 'dry.c'" else cat << \SHAR_EOF > 'dry.c' /* * * "DHRYSTONE" Benchmark Program * * Version: C/1.1, 12/01/84 * * Date: PROGRAM updated 01/06/86, COMMENTS changed 01/31/87 * * Author: Reinhold P. Weicker, CACM Vol 27, No 10, 10/84 pg. 1013 * Translated from ADA by Rick Richardson * Every method to preserve ADA-likeness has been used, * at the expense of C-ness. * * Compile: cc -O dry.c -o drynr : No registers * cc -O -DREG=register dry.c -o dryr : Registers * * Defines: Defines are provided for old C compiler's * which don't have enums, and can't assign structures. * The time(2) function is library dependant; Most * return the time in seconds, but beware of some, like * Aztec C, which return other units. * The LOOPS define is initially set for 50000 loops. * If you have a machine with large integers and is * very fast, please change this number to 500000 to * get better accuracy. Please select the way to * measure the execution time using the TIME define. * For single user machines, time(2) is adequate. For * multi-user machines where you cannot get single-user * access, use the times(2) function. Be careful to * adjust the HZ parameter below for the units which * are returned by your times(2) function. You can * sometimes find this in . If you have * neither time(2) nor times(2), use a stopwatch in * the dead of the night. * Use a "printf" at the point marked "start timer" * to begin your timings. DO NOT use the UNIX "time(1)" * command, as this will measure the total time to * run this program, which will (erroneously) include * the time to malloc(3) storage and to compute the * time it takes to do nothing. * * Run: drynr; dryr * * Results: If you get any new machine/OS results, please send to: * * ihnp4!castor!pcrat!rick * * and thanks to all that do. * * Note: I order the list in increasing performance of the * "with registers" benchmark. If the compiler doesn't * provide register variables, then the benchmark * is the same for both REG and NOREG. * * PLEASE: Send complete information about the machine type, * clock speed, OS and C manufacturer/version. If * the machine is modified, tell me what was done. * On UNIX, execute uname -a and cc -V to get this info. * * 80x8x NOTE: 80x8x benchers: please try to do all memory models * for a particular compiler. * * * The following program contains statements of a high-level programming * language (C) in a distribution considered representative: * * assignments 53% * control statements 32% * procedure, function calls 15% * * 100 statements are dynamically executed. The program is balanced with * respect to the three aspects: * - statement type * - operand type (for simple data types) * - operand access * operand global, local, parameter, or constant. * * The combination of these three aspects is balanced only approximately. * * The program does not compute anything meaningfull, but it is * syntactically and semantically correct. * */ /* Accuracy of timings and human fatigue controlled by next two lines */ #define LOOPS 50000 /* Use this for slow or 16 bit machines */ /*#define LOOPS 500000 /* Use this for faster machines */ /* Compiler dependent options */ #undef NOENUM /* Define if compiler has no enum's */ #undef NOSTRUCTASSIGN /* Define if compiler can't assign structures */ /* define only one of the next two defines */ #define TIMES /* Use times(2) time function */ /*#define TIME /* Use time(2) time function */ /* define the granularity of your times(2) function (when used) */ /*#define HZ 50 /* times(2) returns 1/50 second (europe?) */ #define HZ 60 /* times(2) returns 1/60 second (most) */ /*#define HZ 100 /* times(2) returns 1/100 second (WECo) */ /* for compatibility with goofed up version */ /*#undef GOOF /* Define if you want the goofed up version */ #ifdef GOOF char Version[] = "1.0"; #else char Version[] = "1.1"; #endif #ifdef NOSTRUCTASSIGN #define structassign(d, s) memcpy(&(d), &(s), sizeof(d)) #else #define structassign(d, s) d = s #endif #ifdef NOENUM #define Ident1 1 #define Ident2 2 #define Ident3 3 #define Ident4 4 #define Ident5 5 typedef int Enumeration; #else typedef enum {Ident1, Ident2, Ident3, Ident4, Ident5} Enumeration; #endif typedef int OneToThirty; typedef int OneToFifty; typedef char CapitalLetter; typedef char String30[31]; typedef int Array1Dim[51]; typedef int Array2Dim[51][51]; struct Record { struct Record *PtrComp; Enumeration Discr; Enumeration EnumComp; OneToFifty IntComp; String30 StringComp; }; typedef struct Record RecordType; typedef RecordType * RecordPtr; typedef int boolean; #define NULL 0 #define TRUE 1 #define FALSE 0 #ifndef REG #define REG #endif extern Enumeration Func1(); extern boolean Func2(); #ifdef TIMES #include #include #endif main() { Proc0(); exit(0); } /* * Package 1 */ int IntGlob; boolean BoolGlob; char Char1Glob; char Char2Glob; Array1Dim Array1Glob; Array2Dim Array2Glob; RecordPtr PtrGlb; RecordPtr PtrGlbNext; Proc0() { OneToFifty IntLoc1; REG OneToFifty IntLoc2; OneToFifty IntLoc3; REG char CharLoc; REG char CharIndex; Enumeration EnumLoc; String30 String1Loc; String30 String2Loc; extern char *malloc(); register unsigned int i; #ifdef TIME long time(); long starttime; long benchtime; long nulltime; starttime = time( (long *) 0); for (i = 0; i < LOOPS; ++i); nulltime = time( (long *) 0) - starttime; /* Computes o'head of loop */ #endif #ifdef TIMES time_t starttime; time_t benchtime; time_t nulltime; struct tms tms; times(&tms); starttime = tms.tms_utime; for (i = 0; i < LOOPS; ++i); times(&tms); nulltime = tms.tms_utime - starttime; /* Computes overhead of looping */ #endif PtrGlbNext = (RecordPtr) malloc(sizeof(RecordType)); PtrGlb = (RecordPtr) malloc(sizeof(RecordType)); PtrGlb->PtrComp = PtrGlbNext; PtrGlb->Discr = Ident1; PtrGlb->EnumComp = Ident3; PtrGlb->IntComp = 40; strcpy(PtrGlb->StringComp, "DHRYSTONE PROGRAM, SOME STRING"); #ifndef GOOF strcpy(String1Loc, "DHRYSTONE PROGRAM, 1'ST STRING"); /*GOOF*/ #endif Array2Glob[8][7] = 10; /* Was missing in published program */ /***************** -- Start Timer -- *****************/ #ifdef TIME starttime = time( (long *) 0); #endif #ifdef TIMES times(&tms); starttime = tms.tms_utime; #endif for (i = 0; i < LOOPS; ++i) { Proc5(); Proc4(); IntLoc1 = 2; IntLoc2 = 3; strcpy(String2Loc, "DHRYSTONE PROGRAM, 2'ND STRING"); EnumLoc = Ident2; BoolGlob = ! Func2(String1Loc, String2Loc); while (IntLoc1 < IntLoc2) { IntLoc3 = 5 * IntLoc1 - IntLoc2; Proc7(IntLoc1, IntLoc2, &IntLoc3); ++IntLoc1; } Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3); Proc1(PtrGlb); for (CharIndex = 'A'; CharIndex <= Char2Glob; ++CharIndex) if (EnumLoc == Func1(CharIndex, 'C')) Proc6(Ident1, &EnumLoc); IntLoc3 = IntLoc2 * IntLoc1; IntLoc2 = IntLoc3 / IntLoc1; IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1; Proc2(&IntLoc1); } /***************** -- Stop Timer -- *****************/ #ifdef TIME benchtime = time( (long *) 0) - starttime - nulltime; printf("Dhrystone(%s) time for %ld passes = %ld\n", Version, (long) LOOPS, benchtime); printf("This machine benchmarks at %ld dhrystones/second\n", ((long) LOOPS) / benchtime); #endif #ifdef TIMES times(&tms); benchtime = tms.tms_utime - starttime - nulltime; printf("Dhrystone(%s) time for %ld passes = %ld\n", Version, (long) LOOPS, benchtime/HZ); printf("This machine benchmarks at %ld dhrystones/second\n", ((long) LOOPS) * HZ / benchtime); #endif } Proc1(PtrParIn) REG RecordPtr PtrParIn; { #define NextRecord (*(PtrParIn->PtrComp)) structassign(NextRecord, *PtrGlb); PtrParIn->IntComp = 5; NextRecord.IntComp = PtrParIn->IntComp; NextRecord.PtrComp = PtrParIn->PtrComp; Proc3(NextRecord.PtrComp); if (NextRecord.Discr == Ident1) { NextRecord.IntComp = 6; Proc6(PtrParIn->EnumComp, &NextRecord.EnumComp); NextRecord.PtrComp = PtrGlb->PtrComp; Proc7(NextRecord.IntComp, 10, &NextRecord.IntComp); } else structassign(*PtrParIn, NextRecord); #undef NextRecord } Proc2(IntParIO) OneToFifty *IntParIO; { REG OneToFifty IntLoc; REG Enumeration EnumLoc; IntLoc = *IntParIO + 10; for(;;) { if (Char1Glob == 'A') { --IntLoc; *IntParIO = IntLoc - IntGlob; EnumLoc = Ident1; } if (EnumLoc == Ident1) break; } } Proc3(PtrParOut) RecordPtr *PtrParOut; { if (PtrGlb != NULL) *PtrParOut = PtrGlb->PtrComp; else IntGlob = 100; Proc7(10, IntGlob, &PtrGlb->IntComp); } Proc4() { REG boolean BoolLoc; BoolLoc = Char1Glob == 'A'; BoolLoc |= BoolGlob; Char2Glob = 'B'; } Proc5() { Char1Glob = 'A'; BoolGlob = FALSE; } extern boolean Func3(); Proc6(EnumParIn, EnumParOut) REG Enumeration EnumParIn; REG Enumeration *EnumParOut; { *EnumParOut = EnumParIn; if (! Func3(EnumParIn) ) *EnumParOut = Ident4; switch (EnumParIn) { case Ident1: *EnumParOut = Ident1; break; case Ident2: if (IntGlob > 100) *EnumParOut = Ident1; else *EnumParOut = Ident4; break; case Ident3: *EnumParOut = Ident2; break; case Ident4: break; case Ident5: *EnumParOut = Ident3; } } Proc7(IntParI1, IntParI2, IntParOut) OneToFifty IntParI1; OneToFifty IntParI2; OneToFifty *IntParOut; { REG OneToFifty IntLoc; IntLoc = IntParI1 + 2; *IntParOut = IntParI2 + IntLoc; } Proc8(Array1Par, Array2Par, IntParI1, IntParI2) Array1Dim Array1Par; Array2Dim Array2Par; OneToFifty IntParI1; OneToFifty IntParI2; { REG OneToFifty IntLoc; REG OneToFifty IntIndex; IntLoc = IntParI1 + 5; Array1Par[IntLoc] = IntParI2; Array1Par[IntLoc+1] = Array1Par[IntLoc]; Array1Par[IntLoc+30] = IntLoc; for (IntIndex = IntLoc; IntIndex <= (IntLoc+1); ++IntIndex) Array2Par[IntLoc][IntIndex] = IntLoc; ++Array2Par[IntLoc][IntLoc-1]; Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc]; IntGlob = 5; } Enumeration Func1(CharPar1, CharPar2) CapitalLetter CharPar1; CapitalLetter CharPar2; { REG CapitalLetter CharLoc1; REG CapitalLetter CharLoc2; CharLoc1 = CharPar1; CharLoc2 = CharLoc1; if (CharLoc2 != CharPar2) return (Ident1); else return (Ident2); } boolean Func2(StrParI1, StrParI2) String30 StrParI1; String30 StrParI2; { REG OneToThirty IntLoc; REG CapitalLetter CharLoc; IntLoc = 1; while (IntLoc <= 1) if (Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1) { CharLoc = 'A'; ++IntLoc; } if (CharLoc >= 'W' && CharLoc <= 'Z') IntLoc = 7; if (CharLoc == 'X') return(TRUE); else { if (strcmp(StrParI1, StrParI2) > 0) { IntLoc += 7; return (TRUE); } else return (FALSE); } } boolean Func3(EnumParIn) REG Enumeration EnumParIn; { REG Enumeration EnumLoc; EnumLoc = EnumParIn; if (EnumLoc == Ident3) return (TRUE); return (FALSE); } #ifdef NOSTRUCTASSIGN memcpy(d, s, l) register char *d; register char *s; register int l; { while (l--) *d++ = *s++; } #endif SHAR_EOF fi exit 0 # End of shell archive