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