.ps64,132.lm15.rm117 .c;A PASCAL BENCHMARK .p0 The December 1980 issue of "Personal Computer World" (pp 59-61) published a suite of benchmarks for Pascal programs. This has been coded into a single program, with time printouts at each step. The results on several machines, and several languages, are shown below. All times are in seconds, and for multiuser machines were taken on an otherwise idle system. (Caution, your system may not be really idle when you think it is! The error logger, accounting utilities, queue manager, etc. come in by themselves sometimes. Either turn them off before running the tests, or (better) run the tests several times and average the results, rejecting any excessively large times.) .p0 Programs written in various languages are in PCW.*. For Whitesmiths', you also need the TIME subroutine. .p0 This is, of course, a very simple benchmark, and its results should be taken as a guide only. .p0 Where appropriate to the language compiler, programs should be compiled with trace and array bounds checking off. Optimisation may be left on, provided it is not so good that it realises that most of the loops can be reduced to a single statement and optimises them out! (This applies to DEC's VAX FORTRAN, which was therefore compiled /NOOPT for these tests.) The C code uses "register" variables as an optimisation technique. Where a language, such as CORAL, has no REPEAT loop construct, the timimgs are for an IF#...#GOTO equivalent. Some tests cannot be carried out on all languages, e.g.# most FORTRANs have no WHILE loop (compile PCW.FOR with "D" lines enabled if yours does) and no value passing mechanism. Where two figures are given for arithmetic, algebra, and maths timings, the upper is single-precision, and the lower double. .lm0.rm132.b2.nf.ts8, 23, 29, 36, 42, 49, 56, 63, 70, 76, 83, 90, 96, 103, 110, 117, 125 #########Test: Magn FOR WHILE REPEAT lit memory real real vector equal uneq ##no value #ref maths total CPU Compiler loop loop loop assign access arith algeb #IF #IF param param param --- -------- ---- ---- ----- ------ ------ ------ ----- ----- ------ ----- ---- ----- ----- ----- ----- ----- 11/2 UCSD Pascal 3.88 42.8 40.1 35.0 49.9 52.0 61.7 40.6 102.9 66.8 65.8 26.4 29.3 29.7 25.3 +EIS .b1 11/23+ Whitesmiths C 0.80 2.6 3.2 3.1 3.4 3.7 7.3 8.0 5.6 4.3 4.3 2.4 2.6 37.8 67.0 +FPP .b1 11/23+ W'smith Pascal 0.90 2.9 3.5 3.4 3.7 3.7 8.8 8.1 23.1 4.4 4.2 2.5 2.8 2.9 67.4 +FPP .b1 11/44 DECUS Pascal 0.05 0.9 2.7 2.8 1.4 1.5 2.2 2.1 5.5 3.1 2.9 1.6 1.7 1.7 10.9 +FPP .b1 11/44 Whitesmiths C 0.04 0.6 0.8 0.8 0.9 1.0 1.0 1.0 1.7 1.2 1.2 0.5 0.7 0.7 9.4 22.0 +FPP .b1 11/44 Whitesmiths C 0.05 0.7 0.8 0.9 0.9 1.0 57.3 82.5 1.7 1.2 1.3 0.5 0.8 0.7 508.0 no FPP .b1 11/44 W'smith Pascal 0.10 0.9 0.1 0.9 1.0 1.0 1.2 1.0 7.5 1.3 1.3 0.6 0.7 0.8 9.5 +FPP .b1 11/44 W'smith Pascal 0.10 1.0 0.1 0.9 1.1 1.0 93.5 82.1 7.4 1.3 1.3 0.6 0.8 0.8 515.1 no FPP .b1 11/44 RMCS CORAL-66 0.10 0.6 0.6 0.7 0.8 1.0 0.6 0.9 1.6 1.2 1.2 0.6 0.7 0.7 6.2 +FPP 0.8 1.0 7.8 .b1 11/44 DEC FORTRAN-77 0.04 0.6 - 0.6 0.8 0.9 0.6 0.6 1.2 1.0 1.0 0.3 - 0.6 5.9 +FPP 0.7 0.7 7.5 .b1 11/73 Whitesmiths C 0.00 0.8 0.8 0.8 1.1 1.1 1.6 1.9 1.5 1.4 1.4 0.6 0.8 0.9 16.6 +FPP .b1 11/73 W'smith Pascal 0.10 0.8 0.9 0.9 1.2 1.1 2.1 1.9 8.2 1.5 2.8 0.7 0.9 0.8 16.8 +FPP .b1 68000 Whitesmiths C 0.13 1.4 1.6 1.2 1.8 1.9 5.9 8.9 3.4 2.5 2.4 0.7 0.9 0.9 383.5 8MHz .b1 11/750 Whitesmiths C 0.08 0.7 0.7 0.7 0.8 0.9 0.5 0.4 2.6 1.3 1.2 1.2 1.2 1.2 5.2 +FPA native .b1 11/750 DEC CORAL 0.06 0.7 0.9 0.7 0.8 0.8 0.2 0.3 1.3 1.2 1.3 2.4 2.6 2.6 3.1 +FPA 0.3 0.5 5.8 .b1 11/750 Y-ard CORAL 0.06 0.6 0.5 0.7 0.7 0.8 0.2 0.3 1.4 1.1 1.1 0.5 0.6 0.6 2.6 +FPA 0.3 0.5 - .b1 11/750 DEC FORTRAN 0.17 0.7 0.6 0.6 0.6 0.7 0.2 0.3 1.2 1.1 1.0 1.1 - 1.5 2.5 +FPA (/NOOPT) 0.2 0.4 5.1 .b1 11/750 W'smith Pascal 0.12 1.0 0.8 0.8 1.1 1.3 0.5 0.5 9.8 1.6 1.5 1.2 1.3 1.3 5.2 +FPA native .b1 11/750 Whitesmiths C 0.05 0.8 1.1 1.1 1.1 1.2 7.2 10.3 2.0 1.7 1.6 1.0 1.2 1.2 132.4 165.1 compat, FP ins .b1 11/750 Whitesmiths C 0.10 0.9 1.1 1.2 1.3 1.3 96.0 140.0 2.0 1.8 1.6 1.1 1.2 1.4 855.0 compat, no FP 11/750 DEC FORTRAN-77 0.15 1.5 - 1.2 1.6 1.6 7.2 7.7 1.9 2.9 2.9 3.1 - 3.6 102.0 compat, FP ins 7.9 7.9 111.0 .b1 .B1 11/750 DECUS Pascal 0.10 1.3 4.9 5.2 2.0 2.1 33.3 33.4 10.0 5.2 5.1 2.6 2.8 2.8 150.9 compat, FP ins .b1 11/750 W'smith Pascal 0.25 0.2 1.4 1.4 1.4 1.6 1.7 10.4 10.3 12.0 2.0 2.1 1.3 1.4 124.7 compat, FP ins .b1 11/750 W'smith Pascal 0.30 0.2 1.4 1.4 1.6 1.7 41.8 159.1 139.0 11.6 2.1 2.0 1.4 1.5 857.5 compat, no FP .b1 Dragon ISO Pascal 4.98 56.9 71.6 58.9 71.4 72.8 97.3 99.3 33.6 36.3 36.3 48.4 62.7 171.3 332.4 .b1 Dragon Native Pascal 0.30 3.3 4.8 5.0 6.1 6.4 7.9 8.1 11.2 12.0 12.2 36.7 50.8 51.7 321.2 .b1 BBC ISO Pascal 2.40 119.7 120.0 29.6 52.3 53.1 105.2 105.6 30.7 34.8 37.9 58.3 61.2 202.1 346.1 .b1 Apple UCSD Pascal 6.40 63.3 70.9 74.3 88.5 91.0 115.3 116.7 50.2 55.3 54.4 83.4 93.0 203.3 66.0 .b1 QL P-Code Pascal 1.00 40.1 45.1 11.0 22.0 20.7 40.5 42.5 15.3 17.5 18.7 37.9 43.8 77.5 10.2 .b1 Spectrm Native Pascal 0.85 7.8 8.9 7.1 7.5 7.8 10.6 10.6 6.5 7.2 7.2 21.4 20.7 17.0 9.3 .b1 Armstrd Native Pascal 2.95 30.5 33.8 29.5 30.5 30.4 33.4 33.5 18.6 19.4 19.5 20.8 19.9 40.5 9.0