"MEGAFLOP" Benchmark Program
----------------------------

MEGAFLOP is an MS-DOS program that measures a computer's
speed in executing floating point instructions.  These
instructions are common in scientific, technical, and
engineering computer applications, and in some spread-
sheets.  Other benchmark programs, such as Landmark and
Norton's SI, do not evaluate floating point speed.

MEGAFLOP runs on MS-DOS computers with an 80286, 80386,
or 80486 processor.  An Intel compatible math 
coprocessor chip will be used if available; it will
greatly improve your system's floating point speed.

The program measures system speed in "megaflops", which
are units of one million floating point operations per
second.  A floating point operation, or "FLOP", is an
instruction such as a floating point add, subtract,
multiply, divide, or square root, or a trigonometric
function such as cosine.  Instructions such as floating
point loads and stores are not FLOPs.

When you run MEGAFLOP, the first thing it does is a
simple test to find out if the FFT is producing accurate
numerical results.  It will print a message if the
results are inaccurate;  this may indicate that your
computer is malfunctioning.  If your system is otherwise
running properly, and it has a coprocessor, and MEGAFLOP
detects errors, the coprocessor may be defective or
improperly installed.

MEGAFLOP then does the speed test using a series of FFT
calculations.  The FFT's will be done until at least 5
seconds have elapsed.  The test may take up to 1 minute
if you are using a slow machine like a 8 MHz 80286.

Most computers without a coprocessor run at less than
.025 megaflops, while those with a math chip run faster
than .100 megaflop.  A 25 Mhz 80486 system runs about 1 
megaflop; it has floating point instructions on the main
processor chip.

MEGAFLOP determines your system's speed by counting the
number of floating point instructions executed by a
known algorithm, a Fast Fourier Transform (FFT), in a
measured period of time.

For those who want technical details, the main part
of the program is written in Microsoft C.  The FFT
is done with the CFFT2F function in the shareware
"FFT86" library (available in the CompuServe Microsoft 
Languages forum library, C section, GO MSLANG).  The 
FFT is a radix-2 Cooley-Tukey algorithm which does an 
in-place transform on a complex data array.  The FFT is 
written in assembler. Both forward and inverse trans-
forms are done on an array of 1024 complex numbers.  The  
array actually contains 2048 single precision (4 byte) 
floating point numbers.  Each FFT function call executes 
an average of 54,273 FLOPS, mostly adds, subtracts, and 
multiplies, with frequent memory reads and writes.  Very 
few trigonometric instructions are executed.  Several
FFT's are done to insure that the time used is at least
5 seconds, which results in an accurate time measurement.

MEGAFLOP uses the Microsoft floating point emulation 
library, which has about a 6% overhead penalty in 
running software on a computer equipped with a math 
coprocessor.  The emulation library will use an Intel
compatible coprocessor if it is available, otherwise it
will emulate coprocessor instructions with software.
MEGAFLOP would actually run about 6% faster on systems
with coprocessors if did not use the Microsoft
emulation library, but then it would be unable to run
on systems lacking the coprocessor.

MEGAFLOP is free and may be used by all, however a
small donation would be appreciated.  You may upload
this program and its documentation to your local BBS,
and give copies to others.  Shareware dealers may
charge a small fee for distributing MEGAFLOP, which
when prorated to the MEGAFLOP program may not exceed $9.

For more information on MEGAFLOP or the FFT86 library,
phone the author, Barrie Walker, at (604) 858-0832 or
write to Vectorplex Systems, 7572 Sapphire Drive,
Sardis, B.C. V2R 3A7, Canada.  CompuServe userid is
70322,3532 (not yet a frequent CompuServe user).

If your computer's MEGAFLOP speed is not on the list   
below, please send the data to the author.




Speed in Megaflops of Various MS-DOS Computers:
-----------------------------------------------

Computer Type    cache             MEGA-    FFT
processor/MHz    memory  Math Chip FLOPS   Time Comments
---------------- ------ ---------- ----- ------ -----------------------------------
AST Bravo 486/25 8K int     in 486 1.131   .048 80486/25 is top dog, so far
clone     286/20   none       none  .011  4.970 
clone     286/10   none       none  .005  9.970
clone     486/33      ?     in 486     ?      ? We all want one.
clone   486SX/20      ?       none     ?      ?
clone     386/33      ?   Intel387     ?      ?
clone     386/33      ?   Cyrix387     ?      ?
clone     386/33      ?     IIT387     ?      ?
clone     386/33      ?       none     ?      ?
clone  AMD386/40      ?          ?     ?      ?
clone   386SX/20      ?      387SX     ?      ?
clone   386SX/20      ?       none     ?      ?
clone     286/20   none Intel287XL     ?      ?
clone     286/20   none  AMD287/10     ?      ?
clone     286/12   none       none     ?      ? a common computer

