HP Forums

Full Version: hp65 vs 41c vs 35s µbenchmark
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
(05-31-2014 08:25 PM)Marcus von Cube Wrote: [ -> ]Don't get me wrong. In many aspects, the unmodified 30b is the faster machine. You can just do much more with the 34S which is still reasonably fast at least. And much more fun, of course Big Grin.

Much more fun, that's for sure :-)

But this µbenchmark isn't any faster in the 30b... Do you have any idea why?
I tried this on a vintage 15C and got 139.

On my 42S I got 1,087.

(With Free42 I got 144,108,888.)
(05-31-2014 09:37 PM)GeorgeOfTheJungle Wrote: [ -> ]
(05-31-2014 08:39 PM)Dave Britten Wrote: [ -> ]Didn't see the 15C LE in the list, so I gave it a try.

22,649 with LBL/GTO.
21,914 with GTO I using a negative value.

Hey, Dave, have you got one of each calculator ever made or what ??? :-)

Not even close, ha ha. Maybe a few dozen programmables of various brands to tinker with. I don't have any of the really expensive HP stuff (42S, 41C, anything with LEDs, etc).
(05-31-2014 10:33 PM)Steve Keeley Wrote: [ -> ]With Free42 I got 144,108,888.

That depends on the platform you're running it on Wink

d:-)
(05-31-2014 06:15 PM)Massimo Gnerucci Wrote: [ -> ]
(05-31-2014 06:13 PM)Marcus von Cube Wrote: [ -> ](I leave it to Walter to comment on the display Wink).

Eheheh... Big Grin

Seems necessary no more. Everybody knows it, even M. ... Wink

d:-)
(05-31-2014 09:37 PM)GeorgeOfTheJungle Wrote: [ -> ]
(05-31-2014 08:39 PM)Dave Britten Wrote: [ -> ]Do you have the necessary flashing cable or USB module to solder in?

No, neither, but I've got some arduinos and I've read the 34s "how to flash the thing" chapter more than once... we'll see! Wish me luck!

Enjoy!

d:-)
(05-31-2014 09:52 PM)GeorgeOfTheJungle Wrote: [ -> ]
(05-31-2014 08:25 PM)Marcus von Cube Wrote: [ -> ]Don't get me wrong. In many aspects, the unmodified 30b is the faster machine. ...
...
But this µbenchmark isn't any faster in the 30b... Do you have any idea why?
It's probably just too simple. The 30b uses an HP legacy C library for all computations with a precision (and accuracy) of 12 BCD digits while the 34S is based on the decNumber library which supports arbitrary precision BCD numbers. Internal computations are carried out with 39 digits at least, some modulo calculations with a few hundreds of digits to avoid cancellation. More elaborate algorithms are coded as double precision (34 digits) keystroke programs to save flash space for the cost of execution speed (and the loss of a few digits of accuracy in double precision mode). The register formats are (variants of) decimal64 and decimal128 which need to be converted back and forth from/to the decNumber format. This is a lot of overhead and doesn't come for free in terms of execution speed.
(05-31-2014 12:11 PM)GeorgeOfTheJungle Wrote: [ -> ]I've read somewhere that the 67 is slower than the 65, is that true?

On my 67 I only get 103 after 30s. That's hard to believe that the 67 is that much slower.
(06-01-2014 03:26 PM)Marcel Samek Wrote: [ -> ]On my 67 I only get 103 after 30s. That's hard to believe that the 67 is that much slower.

If your 67 program uses a simple GTO command this seems realistic. I do not own a 67, but a 34C with similar speed. Compared to a 41C the latter is at least 3x slower. With a simple program consisting essentially of one addition and a GTO, the 41C advantage even grows since jump targets are "compiled" while the 67 has to do a new label search in every single loop. And since it searches from the current line onwards, it has to check roughly 220 lines ahead... #-)

So 103 loops on a '67 looks realistic, compared to 500+ on a 41C with this kind of program (!). The already mentioned older thread reported 226 loops per minute, i.e. 113 in 30 seconds on another '67 which essentially matches your result. You may get a better result with a GTO(i) command with a negative number in register I. The older thread reports about 50% more speed for this option. So you could try something like this:

Code:
001 LBL A
002 CHS
003 STO I
004 Clx
005 +
006 GTO(i)

1 [ENTER] [ENTER] [ENTER]  [A]

But do not forget that this is a very (!) simple test that does not provide much information regarding real world HP67-programs. IMHO you can expect about 1/3 the speed of a HP41, on average.

Dieter
(05-31-2014 03:30 PM)Dave Britten Wrote: [ -> ]
(05-31-2014 02:44 PM)GeorgeOfTheJungle Wrote: [ -> ]In the link that Massimo has posted (btw, thanks, Massimo) it says:

HP 30b
Count: 72,517
Code: LBL 00 + GOTO 00
(as first program in memory)

And that's more or less ok, between 130x and 280x, ~= your 34s.

Bear in mind, those were 60-second tests, with a shorter program and pre-loaded stack (label searches may be faster).

I've received my new 30b, and while it's still a 30b I've run the code
Code:
SH5 1 ENTER ENTER ENTER ENTER LBL 01 + GTO 01
for 30 seconds and I get 35576, but then I've seen this in the manual: "If a program takes more than one second to run, the CPU speed will be reduced in order to preserve battery life" so I've run it again a few times more but only for a second each, and I get ~ 3810 (on average) so that would be 114300. So for now, the 30b seems to be the champion: 344x faster (than the hp65) !
Just for grins, on the 50g with
Code:
<< 0
  WHILE 1 REPEAT
    1 +
  END
>>
I get about 1,700 on a 30 second run.

- John
HP-25
346
30secs run
p.
(06-05-2014 04:45 PM)John R. Graham Wrote: [ -> ]Just for grins, on the 50g with
Code:
<< 0
  WHILE 1 REPEAT
    1 +
  END
>>
I get about 1,700 on a 30 second run.
Wow. Floating point runs much faster than integer. With the following trivial modification,
Code:
<< 0.
  WHILE 1. REPEAT
    1. +
  END
>>
I get about 15,500. Just wow.

- John
(06-05-2014 07:30 PM)John R. Graham Wrote: [ -> ]Wow. Floating point runs much faster than integer.
Integers are arbitrary precision, not binary integers. That should explain the difference.
Yes, that subsequently occurred to me. Furthermore, the result of all the testing operators is floating point 1. or 0. so "WHILE 1." avoids an unnecessary conversion.

- John
HP Prime clocks in at 966,967 iterations in 30 seconds:
Code:
EXPORT Benchmark1()
BEGIN
  PRINT("Running...");
  0.▶I;
  WHILE GETKEY == -1 DO
    I+1▶I;
  END;
  PRINT(I+" iterations.");
END;
- John
Pages: 1 2
Reference URL's