It's amazing DEC went to such
bother calculating VUPs by running
a set of real benchmarks on a finely
tuned system and then reporting a
measure based on some weighted
sum when this procedure would have saved
**sooo** much effort:
According to this proc, the machines
I can reach right now report:
VAXstation 4000-90A: 26.0 bogoVUPs (should be 32+ VUPs)
VAX 4000-700A: 30.8 bogoVUPs (should be ~40 VUPs)
VAX 4000-705A: 34.4 bogoVUPs (should be ~45 VUPs)
Alpha 2100 4/200: 35.2 bogoVUPs
Takara (EV56_at_500MHz): 87.2 bogoVUPs
Antonio
-----Original Message-----
From: Brian Wheeler [mailto:bdwheele_at_indiana.edu]
Sent: 23 April 2002 14:37
To: classiccmp_at_classiccmp.org
Subject: Re: Calculating VUP values
On Tue, 2002-04-23 at 03:21, Huw Davies wrote:
> I'm sure a few days ago I saw a piece of DCL fly by in a classiccmp mail
> message that was supposed to calculate the VUP rating of a VMS system.
>
> At the time I didn't think I'd need it so didn't archive it, of course,
now
> I WANT it! Basically I'd like to get the VUP rating for my simulated
> VAXserver 3900 thanks to simh (http://simh.trailing-edge.com).
>
> Huw Davies | e-mail: Huw.Davies_at_kerberos.davies.net.au
> | "If God had wanted soccer played in the
> | air, the sky would be painted green"
I might have been the one that posted it. I snagged it from google, so
I don't know how accurate it is. On my pentium 3/1.7GHz I get 4.0 vups
under simh.
$! CALCULATE_VUPS:
$!
$ set noon
$ orig_privs = f$setprv("ALTPRI")
$ process_priority = f$getjpi(0,"PRIB")
$ cpu_multiplier = 10 ! VAX = 10 - Alpha/AXP = 40
$ cpu_round_add = 1 ! VAX = 1 - Alpha/AXP = 9
$ cpu_round_divide = cpu_round_add + 1
$ init_counter = cpu_multiplier * 525
$ init_loop_maximum = 205
$ start_cputime = f$getjpi(0,"CPUTIM")
$ loop_index = 0
$ 10$:
$ loop_index = loop_index + 1
$ if loop_index .ne. init_loop_maximum then goto 10$
$ end_cputime = f$getjpi(0,"CPUTIM")
$ init_vups = ((init_counter / (end_cputime - start_cputime) + -
cpu_round_add) / cpu_round_divide) * cpu_round_divide
$ loop_maximum = (init_vups * init_loop_maximum) / 10
$ base_counter = (init_counter * init_vups) / 10
$ vups = 0
$ times_through_loop = 0
$ 20$:
$ start_cputime = f$getjpi(0,"CPUTIM")
$ loop_index = 0
$ 30$:
$ loop_index = loop_index + 1
$ if loop_index .ne. loop_maximum then goto 30$
$ end_cputime = f$getjpi(0,"CPUTIM")
$ new_vups = ((base_counter / (end_cputime - start_cputime) + -
cpu_round_add) / cpu_round_divide) * cpu_round_divide
$ if new_vups .eq. vups then goto 40$
$ vups = new_vups
$ times_through_loop = times_through_loop + 1
$ if times_through_loop .le. 5 then goto 20$
$ 40$:
$ new_privs = f$setprv(orig_privs)
$ set message /nofacility/noidentification/noseverity/notext
$ ASSIGN/SYSTEM/EXEC 'vups' MACHINE_VUPS_RATING
$ set message /facility/identification/severity/text
$ write sys$output "Approximate System VUPs Rating : ", -
vups / 10,".", vups - ((vups / 10) * 10)
$ exit
Brian
Received on Tue Apr 23 2002 - 09:29:30 BST