Calculator Benchmark



#62

As suggested in this thread, I have posted the updated table in the articles forum:

Calculator Benchmark

Thank you all for your competent collaboration.

Edited: 12 Feb 2007, 7:55 a.m. after one or more responses were posted


#63

Good !!! Good !!!

#64

" 139 TI-74 Basic"

Gene: I must admit this surprised me a bit. Good for the old door-stop TI-74!

I do think you should add a few measurements to your table.

It was reported that the HP50g ran the algorithm in 40 seconds in a turbo mode (clock speed increased).

Also, Tim Wessman's HPGCC HP50g version ran in a very tiny number, much less than a second.

Add those? :-)

Wonder what the old TI-59 would have done? Palmer? ...


#65

Quote:
I do think you should add a few measurements to your table.

I agree. ;-)


Quote:
It was reported that the HP50g ran the algorithm in 40 seconds in a turbo mode (clock speed increased).

Something is not clear to me. Why 40 sec? 203 MHz vs 75 MHz means a speed up factor of 2.7 times. Has somebody tested the turbo speed or is it only a estimation?


Quote:
Also, Tim Wessman's HPGCC HP50g version ran in a very tiny number, much less than a second.

I am very interested in the C versions of HP and TI. I have posted a new C version with a loop for more accurate timing, because the execution time is much too fast for measurement on compiled C, as discribed by Tim Wessman here:

www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=107237#107237


#66

203 Mhz is the CPU only. Memory is not accelerated to that speed, so the factor is only about 2X total.

Of course, HPGCC is much faster yet. :-)

#67

At 12MHz: 51.04s or ~.005s per loop
At 75MHz: 7.79s or ~.00078s per loop

TW


#68

An interesting test:

On C the HP-50G is about 3 times faster than the FX-9860GSD as expected considering the clockrates.

ARM@75 MHz: 0.779 msec

SH3@20 MHz: 2.48 msec

The result on a TI is still missing.

Edited: 6 Feb 2007, 5:41 p.m.

#69

Quote:
Wonder what the old TI-59 would have done? Palmer? ...

My TI-59 program does it in 58 minutes or 3480 seconds. That is generally consistent with the previously reported result for the TI-66. When the TI-66 came on the market we were disappointed that it was about a factor of two slower than the TI-58/59.

I got 149 seconds for the TI CC-40 -- slightly slower than the result reported for the TI-74.

My first result for the TI-74 was 166 seconds -- slower than the previously reported value. I wondered why. Then I remembered that I had a long program already resident in my only TI-74 and had simply added the Xerxes test at the end. When I moved the Xerxes test to the front I got the previously reportd value of 139 seconds. Somewhere back there I remember this sort of thing with other machines as well.


#70

I guess, it's difficult to find a calculator that can execute the test, slower then the TI-66. But this makes the TI-66 important to see the differences.

On other Basic calculators it is the same effect, because it takes longer to find the lines for jumping.


#71

Someone should try this on an HP67 and see what the times are.

For that matter, the SR52 can probably do it. It had indirect addressing through all registers, while the HP67 had *only* the one indirect register.

Gene

#72

Quote:
I guess, it's difficult to find a calculator that can execute the test, slower then the TI-66. But this makes the TI-66 important to see the differences.

On other Basic calculators it is the same effect, because it takes longer to find the lines for jumping.


The execution time of 3480 seconds for the TI-59 that I posted earlier was for a brute force translation from my fx-7000G program. When I put your TI-66 program on my TI-59 I got an execution time of 2620 seconds.


#73

It is incomprehensible to me what was the intention of TI developing the TI-66 with this rediculous speed. A real drawback to the 6 years older TI-59.


#74

Quote:
It is incomprehensible to me what was the intention of TI developing the TI-66 with this rediculous speed. A real drawback to the 6 years older TI-59.


Battery life perhaps?


#75

Quote:


Battery life perhaps?


The advantages of the TI-66 over the TI-58/59 were:

1. The liquid crystal display which meant a big reduction in power useage. I have had my TI-66 since early 1984 and still use it as a household calculator because of the readability of the display. I have changed the batteries only once in all that time.

2. A battery operated printer, the PC-200. Unfortunately, the font was such that adjacent characters and lines were very close to each other so that readability was adversly affected.

3. Displayed mnemonics for the operation codes in LRN mode.

4. A partition command which allowed the user to partition for any number of data registers from 0 to 63.

5. The non-commutative multiply seen in earlier TI machines was fixed.

In addition to the slower speed the TI-66 had another major deficiency relative to the TI-58/59 -- no solid software module capability.

Page F-3 of the manual for the TI-66 contained the following interesting statement: "There are no HIR commands or other hidden features on the TI-66 that you may have accessed on the TI-58/58C/59 through illegal key sequences." Of course, a statement like that is like a red flag in front of a bull. So, the TI user community went ahead and found some hidden features anyway.


#76

In the german manual there is the same statement. ;-)

#77

Quote:
The execution time of 3480 seconds for the TI-59 that I posted earlier was for a brute force translation from my fx-7000G program. When I put your TI-66 program on my TI-59 I got an execution time of 2620 seconds.

In a previous posting I reported a reduced execution time for a TI-59 program of 2620 seconds by conversion of a TI-66 program published in this thread. That was for operation of my TI-59 in normal mode. In an earlier posting Gene Wright suggested that use of a methodology to speed up execution on an HP-50G should be acceptable since the TI community had used fast mode in the old so-called "friendly competition" between the HP and TI product lines. I modified the TI-59 program to run in fast mode. The execution time was reduced from 2620 seconds to 1473 seconds. That is about four and a half times shorter than the execution time of a similar program on the TI-66. That difference was a primary reason that the TI user community was not very enthused with the TI-66.

To convert the TI-66 program for use with fast mode on the TI-59 the user adds an R/S at the beginning of the calculation, replaces the R/S at the end of the calculation with a Pause RST sequence, changes label addressing to absolute addressing and adds the fast mode initializatiion sequence at the end of the partitioning. The fast mode program becomes

000   R/S
001 CLR STO 10
004 8 STO 11 STO 01
009 1 STO 00
012 RCL 00 X<->T RCL 11 X=T 070
020 CLR X<->T
022 OP 20
024 RCL 11 ST* 00
028 1 SUM 10
031 RCL 00 STO 09
035 INV DSZ 09 012
040 RC* 00 - RC* 09 = X=T 061
049 ABS + RCL 09 - RCL 00 =
057 INV X=T 035
061 DSZ IND 00 028
066 DSZ 00 061
070 RCL 10 PAUSE RST
.
.
.
145 LBL A
147 INV FIX
149 1 0 OP 17
153 CMS . 1
156 SQROOT XSQUARE 1/X
159 STF
To use the program press A and see a flashing 10. in the display. Press 7 and then EE and wait for the calculation to be completed. You will be unable to interrupt the calculation other than by turning the calculator off.


#78

Very informative. I have read on some other sites, that the speed of the TI-59 increases about 25% in fast mode. Your test shows, that it is important to test the real execution time.

I agree also with Gene, that it is acceptable to use overclocking as you can see in my table. But I think it's better to accept only tested results to keep accuracy of the table. Of course it is possible to overclock most of the calculators, even the TI-66.


#79

Quote:
I agree also with Gene, that it is acceptable to use overclocking as you can see in my table.

Of course, only if this does not involve hardware modification. Otherwise, I would present the running time on my double-speed 15C: 2333 seconds (same results in two successive runs). This was obtained by replacing the original capacitor in the LC circuit with a 33 pF one.

Regards,

Gerson.


#80

On the next update you will find the HP-15C turbo in the table too.

At first I was not sure to take speeded up calculators into the table or not. But I think it is interesting what is possible with hardware overclocking also. I agree that it is without doubt that software modifications for speeding up are much more interesting. An example of my own creativity is the source code of the Pascal-ROM-Card for the PB-2000C. ;-)

#81

Quote:
Very informative. I have read on some other sites, that the speed of the TI-59 increases about 25% in fast mode. Your test shows, that it is important to test the real execution time.

The 25 per cent figure seems very conservative to to me. I wonder where it comes from. Some examples:

1. The very first demonstration of fast mode by Martin Neef of the ZEPRA club in Germany showed that his test routine would take 70 seconds in normal mode and 35 seconds in fast mode. You can read about that on V5N6P4 of TI PPC Notes at Viktor Toth's site.

2. The first "practical" use of the technique was my adaptation of a calendar printing program which was part of the "friendly competition." Fast mode reduced the execution time to print a year from 2 minutes 38.5 seconds to 1 minute 32 seconds. That is described in V5N7P7 of TI PPC Notes.

3. My translation of a French program which would calculate 1297 digits of pi on a TI-59 reduced the execution time from 24.55 days to 13.39 days. That is described in V8N4 of TI PPC Notes.


#82

I have found the information about 25% here:

http://www.vcalc.net/ti-hist.htm


#83

Yep, but that is wrong. :-)

Fast mode reduces execution time much more than 25%.

The links Palmer provides to the old TI PPC Notes issues on www.rskey.org will show the technique AND programs with timings.


#84

After reading a bit in the TI PPC Notes, I wonder too about that 25%.

Have you solved the DIM problem on the FX-720P?


#85

Hope to tackle it today on the 720P and will post results.


#86

Thanks to all who helped me figure out how to use this little beastie I've had for a couple of years now.

Result of 875 in about 6 minutes, 48 seconds, or 408 seconds. Within a second of two, since there is no BEEP on the 720P, I had to keep watching it.

I'm surprised the 720P is faster than the 730P.

I'm also impressed that it is just a bit slower than a 42S in FAST mode but also that it is faster than some of the fabled Sharp models. :-)


#87

No Beep? In the german manual page 151 there is a Beep command. BEEP or BEEP 0 for a low and BEEP 1 for a high tone.

I am surprised too of the speed compared to FX-730P and PB-700. Marcus von Cube wrotes, that the C of PB-2000C is not the fastest, but in comparison it is terribly slow, considering it uses a bytecode interpreter like Z1-GR or PC-G850V.

All Sharp pockets with the SC61860 CPU are slow considering the clockrate of usually 0.768 MHz. I think the main reason is the crippled instruction set of the CPU, as you can see in the PC-1360 assembler version.


#88

Learn something every day. Guess I'm done for Feb 12th now. :-)

I re-ran it with the beep and got a time of 6 min, 49 seconds, or 409 total. I'd say that's pretty close.

#89

Quote:
I'm also impressed that it is just a bit slower than a 42S in FAST mode but also that it is faster than some of the fabled Sharp models. :-)

I still remember going out to buy one of those early Basic handhelds as a kind of little home PC during my first years at the university (before PCs became affordable). I ended up with a Casio PB-100, because the Basic interpreter of the available Sharp model (as nice as this unit was, bigger display and all, I think it must have been a PC-12xx) was dead slow compared to the Casio.

#90

Sharp PC-1245 500 sec


#91

PC-1245 8-Bit CPU @ 0.768 MHz: 500 sec

PC-1247 4-Bit CPU @ 1.024 MHz: 160 sec

A bit strange, that the 4-Bit calculator is so fast in comparison.


#92

yes !!!
I made all of the measurements 3 times

#93

I think more than one value in this table is surprising. ;-)

#94

As you can see in my table, there is a better version for the HP-41. I have adjusted the values for the HP-41CY, but I am not happy with doing that. Can you please test the new version?

Have you used the @-array for testing the PC-1600?

#95

Any info on the HP 95LX - I have one, and absolutely love it! But hard to sync with M$ Outlook.

What does the bench-program do?

/Charles


#96

The program tests the speed of placing 8 queens on a chess board without attackting each other, aka the N-Queens Problem, by a brute force algorithm.

As your HP-95 runs at DOS, there are many programming languages available for this calc.


#97

Hi, thank you for the clarification - but I know 95LX is DOS ;-), but maybe I can put it on the rpn calculator, and test? Nice calc, but really "only" 19BII "programming".

/Charles


#98

No, I believe your Hp95Lx also supports GWBASIC as well. And as an MSDOS device, it should be able to run other DOS software as well (aside from some conflicts with its screen output, which is non-standard, the Hp100LX corrected this shortcoming of the 95LX).

Getting any software ported to your 95Lx requires a non-standard serial cable. While this cable looks identical to an Hp49G serial cable, they are not equvalent! I don't know whether it would damage your palmtop, but I do know the palmtop's cable will fry an Hp38/30/49G calculator. You could try to port programs with a PCMCIA card (an option I have tried w/o success, but I have an old non standard card and haven't really checked this out). This may be the easiest option, if you find a card compatable both this and a laptop.


#99

Hi, and again thanx for the remarks, comments and suggestions.

I have the cable, software, cards etc :) really cheap nowadays. And also, my Jornada 720 is "compatible" via PCMCIA. So I have no problems shifting data and programs.

Supports GWBASIC? How? Not any BASIC on the 95 afaik.

The thing is - I want to make this on the _calculator_ on the 95LX. In BASIC et alii in DOS is not "HP".

cheers (20.13 here, maybe soon I'll leave work for home...)
Frèdéric

Of course you know. ;-)

I have wrote it for those readers how don't.

To be fair to both the HP-32SII and HP-33S, they should run Albert Graef's more efficient HP-32S program:

32SII   344 seconds (1.13x faster)
33S 131 seconds (1.92x faster!)

The HP-15C time should drop to about 4500 seconds (not tested yet).

Gerson.


---------------

Checksums:

LBL HP-33S HP-32SII

Q 60 F3CA 12.0 9783
A 45 26E4 16.5 4D5A
B 27 67F8 7.5 87D4
C 78 0B11 33.0 51E7
D 63 6EA7 19.5 8161
E 9 EF55 4.5 AAA9


Thank you for testing. I was not really happy with the different versions too, but now we have a better comparison.

As Albert Graef described, the DSE and ISG commands are rather slow on this calculators, but on the HP-41 those commands are faster than 1 ST+ or ST-. So it is not sure, that the HP-32S version is faster on the HP-15C.

For testing:

LBL_A          LBL_A          
CLX CLX
STO_00 STO_00
LBL_00 LBL_00
ISG_00 1
DEG ST+_00
GTO_00 GTO_00

Interrupt the test after e.g. 1 minute and check register 00.

Also on TI and Casio the DSZ and ISZ commands are faster.

Edited: 7 Feb 2007, 9:13 a.m.


HP-15C: 4755 seconds
HP-34C: 4392 seconds (on AC; on NiCd batteries only: 4412 seconds)
HP-11C: 3826 seconds

Perhaps the HP-41 should be tested with Albert Graef's version too. In case it was faster it should replace the original version and there would be one common RPN program. I agree with GE: when the benchmark is complete it should be posted in the Articles Forum.

Regards,

Gerson.

----------------------

HP-15C:

LBL A
8 STO .0 STO 1
0 STO .1
1 STO 0
LBL 0
RCL 0 RCL .0
TEST 5 GTO 4 ; x=y?
1 STO+ 0
RCL 0 STO I
RCL .0 STO(i)
LBL 1
1 STO+ .1
RCL 0 STO 9
LBL 2
1 STO- 9
RCL 9 x=0? GTO 0
RCL 0 STO I RCL(i)
RCL 9 STO I
Rv RCL(i) -
x=0? GTO 3
ABS RCL 0 RCL 9 -
TEST 6 GTO 2 ; x!=y?
LBL 3
RCL 0 STO I
1 STO-(i) RCL(i)
TEST 0 GTO 1 ; x!=0?
1 STO- 0
RCL 0 TEST 0 GTO 3 ; x!=0?
LBL 4
RCL .1
RTN

HP-11C, HP-34C:

The line following LBL 1 with must be replaced with 1 RCL .1 + STO .1
and the TEST instructions have to be replaced accordingly.


Edited: 7 Feb 2007, 9:35 p.m.


LBL_A
CLX STO_11
8 STO_12 STO_01
1 STO_00
LBL_00
RCL_00 RCL_12
X=Y? GTO_04
ISG_00 DEG
STO_IND_00
LBL_01
ISG_11 DEG
RCL_00 STO_10
LBL_02
DSE_10 DEG
RCL_10 X=0? GTO_00
RCL_IND_00 RCL_IND_10 -
X=0? GTO_03
ABS RCL_00 RCL_10 -
X<>Y? GTO_02
LBL_03
DSE_IND_00 GTO_01
DSE_00 GTO_03
LBL_04
RCL_11
BEEP
RTN

This is the fastest version possible for HP-41. I have tried out any combination possible. All DSE's and ISG's makes the execution faster.

If I run the program without any DSE and ISG like the HP-32S version, it takes 1198 seconds. Now with 1062 sec it is faster than the old version with 1120 sec. Albert Graef's program showed me, that I have not enough practice in RPN. I have optimized the sequence after ABS. I think the HP-41/42 version is complete now.

Are you sure, that DSE is also slower than this code?

1 STO-(i) RCL(i)
x<>0? GTO B

or

1 STO- X
RCL X x<>0? GTO D

If yes, it's really curious.

If no possibly you can reduce the execution time on your calculators again. ;-)

Before starting measurement, I execute the PACK command and then start the program for running e.g. for 10 seconds before interrupting. Otherwise maybe you have a longer execution time on the first run.

If somebody is good in Prolog, a version (recursive of course) in this language is also welcome for the PB-2000C's Prolog-Card.


Hello,

I didn't try any running time optimization. Actually, I didn't even try to understand the algorithm. When porting your benchmark program to the HP-32SII it appeared to me it was easier to start from the HP-41 program. The lack of index registers on the HP-32SII was a problem. I soon found a very simple solution, and being simple it was not so efficient. Having started from the BASIC program, Albert Graef came to a more efficient program. Perhaps not the best possible solution, but better than mine. Even better, his program could be easily ported to the HP-11C, on which DSE/ISG can be used only with the standard index register. Because his program was faster on the HP-32SII and HP-33S, I thought it might be faster on the HP-15C. As we can see, it really is! Of course, DSE/ISG being dedicated loop control instructions are expected to be faster than other implementations. Perhaps there is another reason that might explain the faster running time. This should be investigated. Anyway, these are the best times so far for the HP-15C.

I think DSE/ISG are faster on the HP-41C and HP-15C because their processors may have dedicated instructions for them. On the HP-33S, these instructions may have been simulated, which may explain the great difference in running time between both versions. This is just a guess though.

Regards,

Gerson.

Edited: 8 Feb 2007, 8:02 p.m.


I think a good compromise is to use my new version for HP-41/42 and the program of Albert Graef for the other calculators to not have too many versions.

Can you please retest the HP-42 with the new version?

Is it ok to take the HP-34C with 4402 (average of your measurements) sec in the table?


Quote:
Can you please retest the HP-42 with the new version?

Is it ok to take the HP-34C with 4402 (average of your measurements) sec in the table?


Yes, I'll run your new version later. Regarding the second question, yes, I think this is fine. Anyway, the clock is not precise in these accurate as we can find variations in running time between various units.

Gerson.

Edited: 9 Feb 2007, 5:11 p.m.

HP-42S: 732 seconds
362 seconds (Fast mode)
Gerson.

Edited: 9 Feb 2007, 5:45 p.m.

Does this line in the 32S program:

x/=0?

Mean X not equal to zero?


Yes. Isn't that the "standard" ASCII facsimile for this?

Using the HP41CV code:

Free42 on a desktop PC (Athlon something, can't remember): Almost instantaneous.

Free42 on Palm TX: About 2 seconds.

More cheers for Thomas Okken!

Les

Excellent test, partly due to the vast array of systems tested. The spaghetti code is perfect to put the exact same test on all machines.

I think it is better not to adapt the code if you want to compare the relative speed of machines. Optimizing is interesting to show how these same machine offer features to solve "real" problems, however.


This topic belongs in the Articles forum IMHO.

Just for the record : TI82 ~100 s, which I think is amazing at that price.

The top of the line Sharp PCE-500 is missing, it would obviously rank among the top contenders.


Am I alone in thinking that Assembly/Compiled is cheating ? Again it doesn't represent the true user experience.

Strange difference between the HP32S and HP32SII, the older being the better (but we already know this...).

What does explain the difference between HP75D versions aaaaaa and dddddd ? Improvements, main frequency, different CPU ?


Quote:
Excellent test, partly due to the vast array of systems tested. The spaghetti code is perfect to put the exact same test on all machines.

Thank you.


Quote:
I think it is better not to adapt the code if you want to compare the relative speed of machines. Optimizing is interesting to show how these same machine offer features to solve "real" problems, however.

At the beginning of the test, first I have tested on some calculaturs a structured version too, but the differences were very small.


Quote:
Just for the record : TI82 ~100 s, which I think is amazing at that price.

Can you please post the TI-Basic version for the list of languages?


Quote:
The top of the line Sharp PCE-500 is missing, it would obviously rank among the top contenders.

Have you overseen the PC-E500S? Possibly there is a small difference to the PC-E500. I also miss the PC-E220.


Quote:
Am I alone in thinking that Assembly/Compiled is cheating ? Again it doesn't represent the true user experience.

Do you mean the Pascal Compiler of the PB-2000C or the C versions of FX-9860GSD and HP-50G?

I have checked the table for plauibility and cannot find anything. Can you please explain?


Quote:
What does explain the difference between HP75D versions aaaaaa and dddddd ? Improvements, main frequency, different CPU ?

Probably a better version of the "Fast Integer Processing".

"What does explain the difference between HP75D versions aaaaaa and dddddd ? Improvements, main frequency, different CPU ?"

I made the measurements among of my two 75D (aaaaaa and dddddd). I didn't get to understand because of that difference

Quote:
Am I alone in thinking that Assembly/Compiled is cheating ? Again it doesn't represent the true user experience.

I wouldn't call it cheating, as the C/Assembler results were clearly labelled as such. The purpose of the benchmark was to compare the available programming capabilities, and I'd say that the C/assembler results are relevant for those who are interested in running some heavy duty programs and are willing to put in the extra time and effort to make those programs go really fast.

It has also been questioned whether 8 queens was the right problem for such a benchmark, but IMHO combinatorial problems are as "pure" as it gets if you want to test the performance of executing loops and branches, and the algorithm was simple enough to be ported to a variety of programming models/languages without too much effort.


Full agreement.

I did not get the question about Compiler/Assembler at first, because I am German.

I have made some tests with other non mathematical problems before to see, if the N-Queens Problem represents the relative speed of a calculator accurately. After I was convinced of the suitable accuracy I started testing.

It was intended to use assembler also to compare the different CPUs to each other.

whats is PC-1247 [turbo 1.9] ????? Basic


That means, the PC-1247 is speeded up and runs 1.9 times faster.


how?


The PC-1247 runs at 1.024 MHz. I have tried ceramic resonators at different frequency and at 2 MHz the calculator runs without any problems, but 2.3 MHz is to much.

The problem is to get a ceramic resonator with the matching frequency.

Hi Xerxes,

I just noticed that the labels of the Safe and Search routines in the recursive 50g algorithm are the wrong way round, please see my original post for the correct version.


Oops! Sorry, I will correct it.


Possibly Related Threads...
Thread Author Replies Views Last Post
  Yet another benchmark port on the wiki: Savage Pier Aiello 35 6,298 09-26-2013, 03:22 AM
Last Post: Pier Aiello
  A brand new calculator benchmark: "middle square method seed test" Pier Aiello 25 4,697 09-13-2013, 01:58 PM
Last Post: Pier Aiello
  New community-maintained version of "Calculators benchmark: add loop" Pier Aiello 20 4,308 09-12-2013, 02:42 AM
Last Post: Pier Aiello
  Calculator Speed Benchmark (Add Loop) Thomas Chrapkiewicz 2 910 01-20-2013, 11:24 AM
Last Post: Thomas Chrapkiewicz
  WP-34s: Speed benchmark W. Bruce Maguire II 13 2,195 04-29-2012, 12:16 AM
Last Post: Gilles Carpentier
  HP-41CL Calculator Benchmark Juergen Keller 17 2,967 06-21-2011, 05:48 PM
Last Post: Paul Dale
  N-queens benchmark and the HP-17BII Thomas Klemm 62 7,992 02-07-2011, 05:58 AM
Last Post: Thomas Klemm
  Loops of Addition benchmark for the 41CL Monte Dalrymple 8 1,318 08-19-2010, 09:48 PM
Last Post: Wlodek Mier-Jedrzejowicz
  Loop of + benchmark now in Articles section Gene Wright 10 2,107 06-08-2010, 05:40 AM
Last Post: Frido Bohn
  Calc Benchmark - HP41 MCODE - 11.05 seconds PeterP 7 1,581 02-18-2009, 10:23 AM
Last Post: PeterP

Forum Jump: