[comp.sys.apollo] Paranoia

burati@apollo.UUCP (Mike Burati) (12/21/88)

Jaye, (and others)
    After playing with the source to paranoia, that you sent me, for a couple
of minutes, here's what I found out:

>         From:  umix!caesar.cs.montana.edu!icsu6000 (Mathisen)
>           To:  umix!apollo
>      Subject:  Paranoia test, and some interesting results
>
> 	Apollo dropped off a 3500 for us to play around with for a while.  I
> had just been playing with a program called paranoia which is supposed to test
> floating point thingies, and tell you how good your machine-compiler handles
> floating point arithmetic.

As you can see below, it's not too smart about how it checks...

>   Machine(config)	Time to compile		Bombed at what point.
> -------------------------------------------------------------------------------
> dali HP9000/350 SRX
> 25mhz 020, 881 fpu        40 seconds		Just after milestone 30 with	
> running HP-UX 6.0				Div lacks Guard digit, IOT
> 						trap, (core dumped)

> bridger Apollo 3500
> 25mhz 030, 882 fpu	127 seconds		pow:DOMAIN error, then goes
> running SR10.0					into infinite loop, which
> 						even kill -KILL pid doesn't stop.

As shown below, I compiled the exact same code in 35 seconds with the same switches
that you did.  There may have been something weird happening on your machine, or maybe
it's because I was using sr10.1 and you were using sr10.0.  (Also note, that it didn't
crash or go into an infinite loop on my sr10.1 machine, but finished cleanly).

> caesar mVAXII
> whatmore to say??	101 seconds		Completes the test, says
> Ultrix 2.3, with pcc.				it has one error.

> 	While I realize this is one very limited test, for the combination 
> of what works, versus performance, the mVAXII isn't bad is it?  I'm suprised
> by the pathetic compilation speed of the 3500, sounds like some serious
> C compiler work is needed here.
> Jaye mathisen
> systems manager,Dept. of Computer Science,Montana State University, Bozeman MT


I compiled the benchmark on a DN3500 with 8MB memory running sr10.1
and got the following times:  (note, since we use global libraries
(shared) you don't really need the -lc or -lm)

          % time cc paranoia.c -o paranoia -s -lc -lm
          33.1u 4.0s 0:47 77% 0+0k 112+0io 725pf+0w

          % time cc paranoia.c -o paranoia -s
          32.9u 3.1s 0:39 91% 0+0k 13+0io 364pf+0w

This produced the following results (note: it doesn't go into an infinite
loop like you said, so it may be a problem that's fixed in sr10.1).

          The number of  SERIOUS DEFECTs  discovered = 1.
          The number of  DEFECTs  discovered =         2.
          The number of  FLAWs  discovered =           1.

By default, the compilers produce code that's backwards compatible all the
way back to a DN100.  This means that the compiler doesn't produce code for
the 68882 unless you ask it to (ie: floating pt ops are done through a library
instead).  Add the following command line switch to tell it to compile for the
68881/68882 machines (note: you could substitute the 3000 with 330 4000 ...)

          % time cc paranoia.c -o paranoia -s -W0,"-cpu,3000"
          33.8u 2.2s 0:37 95% 0+0k 81+0io 65pf+0w

Compiling with the above option gets rid of one of the messages and leaves you
with only:

          The number of  DEFECTs  discovered =         2.
          The number of  FLAWs  discovered =           1.
          The arithmetic diagnosed may be Acceptable
          despite inconvenient Defects.

Now, looking through the output, I found out that its thinks that using extra
precision bits is a flaw (why is that a flaw?).  Our systems (and probably others)
use 80 bit extended precision on the 6888X floating point coprocessors.  So,
just to see what would happen, I tweaked my 68881 down to double precision (64 bits)
and it got rid of another of the messages.

          The number of  DEFECTs  discovered =         2.

          The arithmetic diagnosed may be Acceptable
          despite inconvenient Defects.
          END OF TEST.

I haven't had time to check the last two messages that exist, but as the output says,
"The arithmetic diagnosed may be Acceptable".  Given the nature of the other two errors
that I got rid of, and the reasons that they showed up in the first place, I would assume
that these last two are similar.

..Mike Burati
Tech Consultant
Apollo Computer
burati@apollo.com

The above are my own comments (done on my own time), to help out a confused customer.
They should not be construed as an official statement by apollo.