From: rmk@rmkhome.UUCP (Rick Kelly)
Organization: The Man With Ten Cats
Date: Sat, 5 Sep 1992 19:46:33 GMT
Reply-To: rmk@rmkhome.UUCP (Rick Kelly)

In article <1992Sep4.143743.4041@csx.cciw.ca> hcp@csx.cciw.ca (H.C. Pulley) writes:
>In article <01GOD0KWMK4Y90N81N@delphi.com> "Coherent operating system" <COHERENT@indycms.bitnet> writes:
>>Pred Bundalo writes:
>>> COHERENT 4.0.1 fine with both internal and external cache's enabled as well
>>> as ROM video shadowing.
>>> When I run a dhrystone program on the DOS side, I get 25000 dhrystones/s
>>> on average.  When I run the same program on the COHERENT side, I get a
>>> horrible 2200 dhrystones/s--consistantly.
>>> I'm perplexed.  Why would the performance be so poor on the COHERENT side?
>>> Also, it appears the problem is specific to my system/motherboard since I'm
>>> somewhat sure I had at least 2000 dhrystones/sec when I used my old 386-20
>>> motherboard.
>>> Does COHERENT do some disabling I'm not aware of?
>>
>>You have to be very careful with benchmarks. One thing I've noticed over
>>the years is that dhrystone is wonderful for benchmarking compilers, but
>>it doesn't tell you squat about the speed of the computer. For example,
>>in one case it appeared that a 10MHz 80286-based system ran circles
>>around a 20MHz 68020-based system. The differences were very deceiving
>>due to the compilers used. I had used one of Borland's compilers on
>>the 80286 and the compiler packaged with the 68020 system with no explicit
>>optimizations on either system. All this proved was that Borland creates
>>better compilers than the other vendor. When full optimizations were
>>turned on, there was literally no comparison between the two.
>
>Dhrystone 2.1 running under Coherent 3.2.1a got about 2600 on my 286-12 and
>10800 on my 386-40c64.  I got 3300 and 12500 under DOS (Turbo C++ v1.01)
>respectively.  I hope that the 386 improves under Coherent 4.0.1 with the 32
>bit instructions and registers.
>
>Although it is true that Dhrystone tests BOTH the compiler and the CPU, if
>MWC's C compiler only got 2200 Dhrystones on a 486, I would suspect a problem.
>
>My copy of 4.0.1 has not yet arrived (only ordered it 9 business days ago) I
>cannot test the new compiler.
>
>Are you sure that your Dhrystone is working under Coherent?  2200 sounds a lot
>like 22000/10; 22000 would be quite reasonable.  Could it be that you have an
>order of magnitude problem?  (When I say reasonable here I am still skeptical;
>I would hope that, with 32 bit instructions and registers, the DOS Dhrystone
>should be lower than under Coherent, not higher.)
>
>The make for Dhrystone is quite different under DOS and Coherent.  The timing 
>is much more precise under Coherent.  Make sure that your defines are correct,
>etc.
>
>After all this, it could of course, still be a motherboard problem but I doubt
>it.  2000 for a 386/20 still sounds quite low (note the numbers for my 286-12
>above).


I just took a look at Dhrystone 1.1 and came up with some guesses.

1. The Coherent c compiler is not Dhrystone aware.  Compilers that are will
   use inline code for library subroutines.

2. The current scheduler is not conducive to real time processing.  This
   may be fixed in 4.1.

3. I got 9150 using Dhrystone 1.1 on a 386/33 running 4.0.  This same board
   will do 16000 using Dhrystone 1.1, UNIX SVR3.2 and the Greenhills C
   compiler, which does tricks to make Dhrystones run faster.

4. The Coherent c compiler does produce a binary that will fit in the 486
   cache, but I don't have a 486 to try it on.

5. The first poster may have been using a Coherent 286 binary?

6. The functions strcpy() and strcmp() are used extensively.  You can imagine
   the speed up if these were inline code.

I'll have to grab the code for Dhrystone 2.1 from somewhere and take a look
at it.

-- 

Rick Kelly	rmk@rmkhome.UUCP	unixland!rmkhome!rmk	rmk@frog.UUCP