From henning@tle.ENET.dec.com  Mon Jan 11 18:41:28 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id SAA95606 for <mccalpin@frakir.engr.sgi.com>; Mon, 11 Jan 1999 18:41:28 -0800 (PST)
Received: from fddi-sgi.engr.sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id SAA83921
	for <mccalpin@frakir.engr.sgi.com>;
	Mon, 11 Jan 1999 18:41:27 -0800 (PST)
	mail_from (henning@tle.ENET.dec.com)
Received: from mail11.digital.com (mail11.digital.com [192.208.46.10]) 
	by fddi-sgi.engr.sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id SAA09869
	for <mccalpin@frakir.engr.sgi.com>; Mon, 11 Jan 1999 18:41:26 -0800 (PST)
	mail_from (henning@tle.ENET.dec.com)
Received: from us9rmc.zko.dec.com (us9rmc.zko.dec.com [16.33.16.29])
	by mail11.digital.com (8.9.1a/8.9.1/WV2.0c) with SMTP id VAA07326
	for <mccalpin@frakir.engr.sgi.com>; Mon, 11 Jan 1999 21:42:30 -0500 (EST)
Received: from tle.enet by us9rmc.zko.dec.com (5.65/rmc-17Jan97)
	id AA13310; Mon, 11 Jan 99 21:38:00 -0500
Message-Id: <9901120238.AA13310@us9rmc.zko.dec.com>
Received: from tle.enet; by us9rmc.enet; Mon, 11 Jan 99 21:38:00 EST
Date: Mon, 11 Jan 99 21:38:00 EST
From: John Henning  11-Jan-1999 2138 -0500 <henning@tle.ENET.dec.com>
To: mccalpin
Cc: me@tle.ENET.dec.com
Apparently-To: mccalpin
Subject: Compaq AlphaServer DS20
Status: RO

Hi John,

Here's the AlphaServer DS20

    - John


Script started on Thu Jan  7 19:28:17 1999
% head -1 /etc/motd
Digital UNIX V4.0E  (Rev. 1091); Thu Dec 17 14:29:49 EST 1998 
% diff stream_d.f_as_at_ftp_site_22may97 tryit.f
53c53,54
<       PARAMETER (n=2000000,offset=0,ndim=n+offset,ntimes=10)
---
>       PARAMETER (n = 1000200 ,offset=0)
>       PARAMETER (ndim=n+offset,ntimes=10)
334a336,359
>       END
> 
>       DOUBLE PRECISION FUNCTION SECOND
> *
> *     Assume we will be called often enough so that rpcc counter
> *     doesn't overflow!
> *
>       INTEGER*8 TICK, PREV_TICK
>       DOUBLE PRECISION RPCC_DELTA, PREV_SEC 
>       INTEGER*8 FIXED_RPCC 
>       EXTERNAL FIXED_RPCC, RPCC_DELTA
> 
>       DATA PREV_TICK /0/
> 
>       TICK = FIXED_RPCC()
>       IF (PREV_TICK .EQ. 0) THEN
>            SECOND = 0D0
>       ELSE
>            SECOND = PREV_SEC + RPCC_DELTA (%VAL(PREV_TICK), %VAL(TICK))
>       END IF
> 
>       PREV_SEC = SECOND
>       PREV_TICK   =  TICK
>       RETURN
% cat rpcc.c
/* rpcc.c j.henning hacked from example by d.grunwald*/

#include <c_asm.h>
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/types.h>
 
static double scale = -1;
static pid_t mypid = -1;
 
/* fix_rpcc adds the two halves of the register (bias & offset), since
   some tools return it w/o this fixup */

unsigned long
fix_rpcc(unsigned long rpcc)
{
    unsigned long fixed;
    unsigned long offset = (rpcc >> 32) & 0xffffffff;
    unsigned long cycles = (rpcc & 0xffffffff);
    fixed = (unsigned long) offset + (unsigned long) cycles;
    /* printf ("%8lx %8lx %8lx ", offset, cycles, fixed); */
    return fixed; 
}
 
/* Compute time in *seconds* (note that Grunwald's original version
   did microseconds) given two fixedup RPCCs */

double
rpcc_delta(unsigned long ul_start, unsigned long ul_stop)
{
    double retval;
 
    if ( scale == -1 ) {
	  int         err;
	  double freq;
	  struct cpu_info cpubuf ;
 
	  err = getsysinfo(GSI_CPU_INFO, &cpubuf, sizeof(cpubuf));
          /*printf ("err= %d freq = %d current_cpu = %d\n", 
               err, cpubuf.mhz, cpubuf.current_cpu);*/
	  if (err < 0) {
	      freq = 300;
	  } else {
	      freq = cpubuf.mhz;
	  }
          freq *= 1000000;
	  /*
	   * Scale is the 1 over the clock frequency
	   */
	  scale = 1/(double) freq;
    }
 
    if (ul_stop < ul_start) {
        retval = ((0xffffffff - ul_start) + ul_stop) * scale;
        }
    else {
        retval = (ul_stop - ul_start) * scale;
        }

    /* printf ("%f\n", retval); */
 
    return retval;
}
 
unsigned long
fixed_rpcc(void)
{
  unsigned long i;

  i = asm("rpcc %v0");
  return fix_rpcc(i);
}
 
 
% f77 -non_shared -fast -O5 -unroll 8 -arch ev6 -assume nounderscore -V rpcc.o tryit.f
% grep COMPILER: tryit.l
COMPILER: DIGITAL Fortran 77 V5.2-171-428BH
% unlimit
% ./a.out
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1000200
 Offset     =          0
 The total memory requirement is   22 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of        11034 microseconds
    (=        11034 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       1076.8628      0.0150      0.0149      0.0156
Scale:      1243.9420      0.0131      0.0129      0.0138
Add:        1179.0963      0.0204      0.0204      0.0211
Triad:      1323.2813      0.0182      0.0181      0.0187
 Sum of a is =   1.153531441436304E+018
 Sum of b is =   2.307062882849082E+017
 Sum of c is =   3.076083843811272E+017
% ls -l tryit.f a.out
-rwxr-xr-x   1 john     users     917504 Jan  7 19:29 a.out
-rw-r--r--   1 john     users      11106 Jan  7 19:27 tryit.f
% exit
% 
script done on Thu Jan  7 19:31:44 1999

From dsiebert@engineering.uiowa.edu  Fri Jan 15 08:12:14 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id IAA02013 for <mccalpin@frakir.engr.sgi.com>; Fri, 15 Jan 1999 08:12:13 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id IAA57645
	for <mccalpin@frakir.engr.sgi.com>;
	Fri, 15 Jan 1999 08:12:12 -0800 (PST)
	mail_from (dsiebert@engineering.uiowa.edu)
Received: from server07.icaen.uiowa.edu (server07.icaen.uiowa.edu [128.255.17.47]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id IAA09024
	for <mccalpin@frakir.engr.sgi.com>; Fri, 15 Jan 1999 08:12:11 -0800 (PST)
	mail_from (dsiebert@engineering.uiowa.edu)
From: dsiebert@engineering.uiowa.edu
Received: from server01.icaen.uiowa.edu (root@server01.icaen.uiowa.edu [128.255.17.41]) by server07.icaen.uiowa.edu (8.8.7/8.7.1) with ESMTP id KAA10575 for <mccalpin@frakir.engr.sgi.com>; Fri, 15 Jan 1999 10:12:10 -0600 (CST)
Received: from l-ecn007.icaen.uiowa.edu (dsiebert@l-ecn007.icaen.uiowa.edu [128.255.17.107]) by server01.icaen.uiowa.edu (8.8.7/8.7.1) with ESMTP id KAA07278; Fri, 15 Jan 1999 10:12:09 -0600 (CST)
Received: (from dsiebert@localhost) by l-ecn007.icaen.uiowa.edu (8.8.6 (PHNE_14041)/client-6.6) id KAA29111; Fri, 15 Jan 1999 10:12:08 -0600 (CST)
Message-Id: <199901151612.KAA29111@l-ecn007.icaen.uiowa.edu>
Organization: Iowa Computer Aided Engineering Network, University of Iowa
Subject: Re: PA-8500 SPEC results mystifying
To: mccalpin (John McCalpin)
Date: Fri, 15 Jan 1999 10:12:08 -0600 (CST)
In-Reply-To: <9901060924.ZM85519@frakir.engr.sgi.com> from "John McCalpin" at Jan 6, 99 09:24:33 am
Reply-To: douglas-siebert@uiowa.edu
X-Mailer: ELM [version 2.4 PL25]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Status: RO

Hi John,

Since this PA-8500 / C360 thing has me interested, I did a few STREAM
runs on some boxes I have here.  Unfortunately, I do not have the f77
compilers installed -- only the f90 which are still not up to par with
the f77 in optimization capability.  With my minimal knowledge of
Fortran I got it running but it was actually slower in the Fortran
version, which probably shouldn't happen.  Anyway, I am just submitting
C results.  Compiler is about six months old, but that is probably not
an issue for this sort of thing.  I compiled on the C360 and used the
same binary on a C180, C200, and C240 as well.  Systems were lightly
used (users logged into the console doing not much of anything other
than Netscape -- only a couple % CPU usage)

The C360, BTW, was a C200 upgraded to C360.  I don't know if the C360s
you buy as C360s are different at all (probably not, HP is supposed to
be coming out with some new stuff soon)


/usr/bin/cc:
              LINT A.10.32.16 CXREF  A.10.32.16
        HP92453-01 A.10.32.18 HP C Compiler
         /usr/lib/libc: $Revision: 76.3 $

/opt/ansic/lbin/ccom:
              LINT A.10.32.16 CXREF  A.10.32.16
        HP92453-01 A.10.32.18 HP C Compiler
         HP-UX SLLIC/OPTIMIZER UX.10.20.559 (DAVIS): 05/26/98
         Ucode Code Generator - UX10.20.61 (PACG_UX10.MULTI_BL33)
         REV: HP SESD Code
         High Level Optimizer - UX.10.21.971124 (UX10.MULTI)
[-DHLO_RELEASE +O3] - 05-Mar-98.13:41
         /usr/lib/libc: $Revision: 76.3 $

Compiler options (just guessing at the ones to use) +Oall -Wl,-a,archive


Its interesting that the C180 results are really not much different
than the C360 results.  HP has a lot of room for improvement in this
area -- the PA-8500 would look a whole lot better if they put a good
memory system in the box.  As it is, they are working with something
that is about on par with the best PC motherboards, which isn't much
to brag about in the workstation world, especially given the DS20
results and the likely better results for the POWER3 machines.




C180 (PA-8000@180MHz 512K + 512K offchip L1, IIRC)
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 7000000, Offset = 0
Total memory required = 160.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 9999 microseconds.
Each test below will take on the order of 260000 microseconds.
   (= 26 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         302.7027       0.3740       0.3700       0.3800
Scale:        266.6667       0.4260       0.4200       0.4300
Add:          190.9091       0.8850       0.8800       0.9000
Triad:        204.8780       0.8290       0.8200       0.8400




C200 (PA-8200@200MHz 512Ki + 1MBd offchip L1)
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 7000000, Offset = 0
Total memory required = 160.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 9999 microseconds.
Each test below will take on the order of 270000 microseconds.
   (= 27 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         287.1795       0.3910       0.3900       0.4000
Scale:        273.1707       0.4190       0.4100       0.4200
Add:          202.4096       0.8310       0.8300       0.8400
Triad:        224.0000       0.7540       0.7500       0.7600




C240 (PA-8200@236MHz 2MB + 2MB off chip L1)
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 7000000, Offset = 0
Total memory required = 160.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 9999 microseconds.
Each test below will take on the order of 240000 microseconds.
   (= 24 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         339.3939       0.3320       0.3300       0.3400
Scale:        320.0000       0.3530       0.3500       0.3600
Add:          215.3846       0.7850       0.7800       0.7900
Triad:        218.1818       0.7700       0.7700       0.7700




C360 (PA-8500@367MHz 512Ki + 1MBd on chip L1)
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 7000000, Offset = 0
Total memory required = 160.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 9999 microseconds.
Each test below will take on the order of 209999 microseconds.
   (= 21 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         311.1111       0.3670       0.3600       0.3700
Scale:        273.1707       0.4110       0.4100       0.4200
Add:          210.0000       0.8070       0.8000       0.8100
Triad:        207.4074       0.8100       0.8100       0.8100


--
Douglas Siebert                Director of Computing Facilities
douglas-siebert@uiowa.edu      Division of Mathematical Sciences, U of
Iowa

I plan to live forever, or die trying.

From pulsar@springnet1.com Wed Jan 13 10:37:48 PST 1999
Article: 28644 of comp.benchmarks
Path: news.corp.sgi.com!news.sgi.com!howland.erols.net!vixen.cso.uiuc.edu!pulsar
From: pulsar@springnet1.com (Pulsar)
Newsgroups: comp.sys.mac.advocacy,comp.benchmarks
Subject: Re: Memory bandwidth of New G3 boxes?
Date: Wed, 13 Jan 1999 03:58:23 -0600
Organization: University of Illinois at Urbana-Champaign
Lines: 31
Message-ID: <pulsar-ya02408000R1301990358230001@news-proxy.cso.uiuc.edu>
References: <77crd9$9er$1@hecate.umd.edu> <pulsar-ya02408000R1101992203340001@news-proxy.cso.uiuc.edu> <77fa8b$l4o$1@hecate.umd.edu>
NNTP-Posting-Host: spider.cso.uiuc.edu
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: Yet Another NewsWatcher 2.4.0
X-Proxy-Client: e-cowan@uiuc.edu from cloudy.users.shout.net
Xref: news.corp.sgi.com comp.sys.mac.advocacy:498928 comp.benchmarks:28644
Status: RO

In article <77fa8b$l4o$1@hecate.umd.edu>,
davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE@Glue.umd.edu (David T.
Wang) wrote:

> Pulsar (pulsar@springnet1.com) wrote:
> : In article <77crd9$9er$1@hecate.umd.edu>,
> : davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE@Glue.umd.edu (David T.
> : Wang) wrote:
> 
> : > I'm curious about what kind of bandwidth the new G3 boxes with 100 MHz
> : > busses provide.  If you've been fortunate enough to acquire one of those
> : > boxes, please see if you can run Stream and collect some numbers.  
> : > 
> : > http://www.cs.virginia.edu/stream/
> 
> : I'll try it on an iMac and a first series PowerMac G3 tomorrow and report
> : the results.
<snip>
> 
> Thank you.  They look quite respectable.  Please tell us what you get 
> with the iMac.

   http://www.cloudmaster.ml.org/pulsar/stream/

I have various scores up on a web page. There are 233MHz iMac and new
266MHz iMac scores listed. There is also a 266MHz PowerMac G3 and a 266MHz
PowerBook G3 listed. 

Ryan Tokarek
<pulsar@springnet1.com>
<http://www.cloudmaster.ml.org/pulsar/>


From jr@cfm.brown.edu  Wed Jan 13 11:14:32 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id LAA98425 for <mccalpin@frakir.engr.sgi.com>; Wed, 13 Jan 1999 11:14:32 -0800 (PST)
Received: from deliverator.sgi.com (deliverator.sgi.com [150.166.91.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id LAA85974
	for <mccalpin@engr.sgi.com>;
	Wed, 13 Jan 1999 11:14:31 -0800 (PST)
	mail_from (jr@cfm.brown.edu)
Received: from mail.cfm.brown.edu (e151.cfm.brown.edu [128.148.160.151]) by deliverator.sgi.com (980309.SGI.8.8.8-aspam-6.2/980310.SGI-aspam) via ESMTP id LAA20120
	for <mccalpin@engr.sgi.com>; Wed, 13 Jan 1999 11:05:23 -0800 (PST)
	mail_from (jr@cfm.brown.edu)
Received: from cough (cough [128.148.160.138])
	by mail.cfm.brown.edu (8.9.1/8.9.1) with SMTP id OAA08932
	for <mccalpin@engr.sgi.com>; Wed, 13 Jan 1999 14:07:57 -0500 (EST)
Date: Wed, 13 Jan 1999 14:08:14 -0500 (EST)
From: Jon Reiter <jr@cfm.brown.edu>
To: mccalpin@cthulhu
Subject: stream on power 3
Message-ID: <Pine.SOL.4.00.9901131408010.4815-100000@cough.cfm.brown.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Status: RO

We have a 43P-260 here.  I got

Assignment:   586.6667
Scaling   :   640.0000
Summing   :   812.3077
SAXPYing  :   812.3077

On one processor and
Assignment:   845.8352
Scaling:      839.8298
Summing:      990.7404
SAXPYing:     994.5894

on two processors.  We are still trying to track down the problems (all of
this seems too slow).  It looks like we aren't using the same compiler
they are (no power-3 specific optimization) but we _are_ using what IBM
claims is the latest compiler.  So it is...


					-jon

From davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE@Glue.umd.edu Tue Jan 12 09:14:03 PST 1999
Article: 28634 of comp.benchmarks
From: davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE@Glue.umd.edu (David T. Wang)
Newsgroups: comp.sys.mac.advocacy,comp.benchmarks
Subject: Re: Memory bandwidth of New G3 boxes?
Date: 12 Jan 1999 11:04:43 GMT
Organization: University of Maryland, College Park
Lines: 82
Message-ID: <77fa8b$l4o$1@hecate.umd.edu>
References: <77crd9$9er$1@hecate.umd.edu> <pulsar-ya02408000R1101992203340001@news-proxy.cso.uiuc.edu>
NNTP-Posting-Host: vdal6.eng.umd.edu
X-Newsreader: TIN [version 1.2 PL2]
Path: news.corp.sgi.com!news.sgi.com!csulb.edu!logbridge.uoregon.edu!newspeer.monmouth.com!news.lightlink.com!news4.his.com!news.cs.jhu.edu!haven.umd.edu!hecate.umd.edu!vdal6.eng.umd.edu!davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE
Xref: news.corp.sgi.com comp.sys.mac.advocacy:498368 comp.benchmarks:28634
Status: RO

Pulsar (pulsar@springnet1.com) wrote:
: In article <77crd9$9er$1@hecate.umd.edu>,
: davewang@cslab.kecl.ntt.co.jp.DELETE.delete.DELETE@Glue.umd.edu (David T.
: Wang) wrote:

: > I'm curious about what kind of bandwidth the new G3 boxes with 100 MHz
: > busses provide.  If you've been fortunate enough to acquire one of those
: > boxes, please see if you can run Stream and collect some numbers.  
: > 
: > http://www.cs.virginia.edu/stream/

: I'll try it on an iMac and a first series PowerMac G3 tomorrow and report
: the results.

: PowerMac G3 
: 100Mhz bus
: 400Mhz processor
: 200MHz 1 meg L2 cache
: 64 megs of RAM.

: -------------------------------------------------------------
: This system uses 8 bytes per DOUBLE PRECISION word.
: -------------------------------------------------------------
: Array size = 400000, Offset = 0
: Total memory required = 9.2 MB.
: Each test is run 10 times, but only
: the *best* time for each is used.
: -------------------------------------------------------------
: Your clock granularity/precision appears to be 17 microseconds.
: Each test below will take on the order of 20713 microseconds.
:    (= 1218 clock ticks)
: Increase the size of the arrays if this shows that
: you are not getting at least 20 clock ticks per test.
: -------------------------------------------------------------
: WARNING -- The above is only a rough guideline.
: For best results, please be sure you know the
: precision of your system timer.

: STREAM PPC604 OPT
: -------------------------------------------------------------
: Function      Rate (MB/s)   RMS time     Min time    Max time
: Copy:         233.4914       0.0276       0.0274       0.0278
: Scale:        222.5236       0.0291       0.0288       0.0300
: Add:          230.6473       0.0417       0.0416       0.0419
: Triad:        212.9736       0.0452       0.0451       0.0454

: STREAM PPC601 OPT
: -------------------------------------------------------------
: Function      Rate (MB/s)   RMS time     Min time    Max time
: Copy:         236.8265       0.0272       0.0270       0.0277
: Scale:        220.6060       0.0292       0.0290       0.0294
: Add:          215.3625       0.0448       0.0446       0.0451
: Triad:        212.9878       0.0457       0.0451       0.0508

: STREAM PPC UNROLL
: -------------------------------------------------------------
: Function      Rate (MB/s)   RMS time     Min time    Max time
: Copy:         184.2999       0.0348       0.0347       0.0350
: Scale:        180.5767       0.0356       0.0354       0.0358
: Add:          185.3640       0.0519       0.0518       0.0520
: Triad:        184.6402       0.0522       0.0520       0.0531

: STREAM PPC BASE
: -------------------------------------------------------------
: Function      Rate (MB/s)   RMS time     Min time     Max time
: Copy:         178.3674       0.0360       0.0359       0.0361
: Scale:        173.3290       0.0370       0.0369       0.0371
: Add:          182.5269       0.0527       0.0526       0.0528
: Triad:        182.6693       0.0528       0.0526       0.0535

: Ryan Tokarek
: <pulsar@springnet1.com>
: <http://www.cloudmaster.ml.org/pulsar/>

Thank you.  They look quite respectable.  Please tell us what you get 
with the iMac.

--
davewang@cslab.kecl.ntt.co.jp.I.like.green.eggs.and.ham,not.spam
All statements are personal opinions
Not speaking for NTT or University of Maryland
Kyoto, Japan.


From alanc@west.sun.com Tue Jan 12 13:57:37 PST 1999
Article: 28637 of comp.benchmarks
Path: news.corp.sgi.com!news.sgi.com!howland.erols.net!feed1.news.rcn.net!rcn!chippy.visi.com!news-out.visi.com!nntp.teleport.com!news1.teleport.com!alanc
From: alanc@west.sun.com (Alan Charlesworth)
Newsgroups: comp.sys.mac.advocacy,comp.benchmarks
Subject: Re: Memory bandwidth of New G3 boxes?
Message-ID: <alanc-1201991020420001@i48-17-13.pdx.du.teleport.com>
References: <77crd9$9er$1@hecate.umd.edu> <pulsar-ya02408000R1101992203340001@news-proxy.cso.uiuc.edu> <77fa8b$l4o$1@hecate.umd.edu>
X-Newsreader: MT-NewsWatcher 2.4.4
Lines: 80
Date: Tue, 12 Jan 1999 10:20:41 -0800
NNTP-Posting-Host: 216.26.6.13
X-Complaints-To: news@teleport.com
X-Trace: news1.teleport.com 916165192 216.26.6.13 (Tue, 12 Jan 1999 10:19:52 PDT)
NNTP-Posting-Date: Tue, 12 Jan 1999 10:19:52 PDT
Xref: news.corp.sgi.com comp.sys.mac.advocacy:498512 comp.benchmarks:28637
Status: RO

Below are Stream rates for the original iMac, and a PMac 7300/200 (604e).

Apple has increased its memory bandwidth by 2.7x since the Feb 97 intro of
the 7300/200:
                                          Stream average (PPC604 opt)
PMac 7300   200 MHz 604e    50 MHz bus        82 MBps
iMac        233 MHz G3      67 MHz Bus       133 MBps
Blue G3     400 MHz G3     100 MHz Bus       225 MBps (from previous posting)

The fastest PC in the Streeam web site
(http://www.cs.virginia.edu/stream/) listing is a "Generic_440BX_400",
with an average bandwidth of 323 MBps.


iMac, 67 MHz Bus, 233 MHz G3, 116 MHz, 0.5 MB cache, 160 MB memory
STREAM PPC604 OPT
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         139.7502       0.0462       0.0458       0.0469
Scale:        135.9331       0.0473       0.0471       0.0475
Add:          129.8877       0.0742       0.0739       0.0744
Triad:        126.7544       0.0760       0.0757       0.0762

STREAM PPC601 OPT
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         134.9841       0.0478       0.0474       0.0484
Scale:        126.9136       0.0507       0.0504       0.0509
Add:          126.7946       0.0760       0.0757       0.0762
Triad:        126.1979       0.0762       0.0761       0.0765

STREAM PPC UNROLL
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         115.7826       0.0556       0.0553       0.0563
Scale:        114.4738       0.0560       0.0559       0.0563
Add:          120.7805       0.0797       0.0795       0.0798
Triad:        119.3050       0.0806       0.0805       0.0809

STREAM PPC BASE
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         115.6696       0.0562       0.0553       0.0581
Scale:        114.5639       0.0566       0.0559       0.0585
Add:          120.9205       0.0802       0.0794       0.0831
Triad:        120.4638       0.0807       0.0797       0.0835


PMac 7300, 50 MHz Bus, 200 MHz 604e, 1 MB cache, 288 MB memory
STREAM PPC604 OPT
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:          84.7222       0.0766       0.0755       0.0844
Scale:         72.0859       0.0891       0.0888       0.0894
Add:           91.3772       0.1053       0.1051       0.1056
Triad:         81.5779       0.1180       0.1177       0.1184

STREAM PPC601 OPT
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:          83.6787       0.0777       0.0765       0.0854
Scale:         71.1981       0.0901       0.0899       0.0904
Add:           90.4517       0.1063       0.1061       0.1065
Triad:         79.9480       0.1202       0.1201       0.1206

STREAM PPC UNROLL
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:          62.9803       0.1027       0.1016       0.1110
Scale:         54.2387       0.1183       0.1180       0.1185
Add:           74.1301       0.1297       0.1295       0.1299
Triad:         64.7384       0.1484       0.1483       0.1486

STREAM PPC BASE
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          64.8062       0.1006       0.0988       0.1143
Scale:         54.2630       0.1188       0.1179       0.1232
Add:           74.9216       0.1291       0.1281       0.1323
Triad:         65.3315       0.1479       0.1469       0.1547


From tomdean@ix.netcom.com  Mon Feb 15 04:03:24 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id EAA20221 for <mccalpin@frakir.engr.sgi.com>; Mon, 15 Feb 1999 04:03:23 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id EAA53029
	for <mccalpin@engr.sgi.com>;
	Mon, 15 Feb 1999 04:03:22 -0800 (PST)
	mail_from (tomdean@ix.netcom.com)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id EAA04857
	for <mccalpin@sgi.com>; Mon, 15 Feb 1999 04:03:21 -0800 (PST)
	mail_from (tomdean@ix.netcom.com)
Received: from ix.netcom.com (sil-wa15-29.ix.netcom.com [207.93.148.29])
	by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id HAA15268
	for <mccalpin@cs.virginia.edu>; Mon, 15 Feb 1999 07:03:17 -0500 (EST)
Received: (from tomdean@localhost)
	by ix.netcom.com (8.9.3/8.8.8) id EAA00464
	for mccalpin@cs.virginia.edu; Mon, 15 Feb 1999 04:03:15 -0800 (PST)
	(envelope-from tomdean)
Date: Mon, 15 Feb 1999 04:03:15 -0800 (PST)
From: Thomas Dean <tomdean@ix.netcom.com>
Message-Id: <199902151203.EAA00464@ix.netcom.com>
To: mccalpin@cs.virginia.edu
Subject: Diff to cast int to double w/gcc
Status: RO

*** stream_d.c~	Sat Aug 24 12:18:22 1996
--- stream_d.c	Mon Feb 15 04:00:21 1999
***************
*** 94,100 ****
      printf(HLINE);
      printf("Array size = %d, Offset = %d\n" , N, OFFSET);
      printf("Total memory required = %.1f MB.\n",
! 	(3 * N * BytesPerWord) / 1048576.0);
      printf("Each test is run %d times, but only\n", NTIMES);
      printf("the *best* time for each is used.\n");
  
--- 94,100 ----
      printf(HLINE);
      printf("Array size = %d, Offset = %d\n" , N, OFFSET);
      printf("Total memory required = %.1f MB.\n",
! 	(double)(3 * N * BytesPerWord) / 1048576.0);
      printf("Each test is run %d times, but only\n", NTIMES);
      printf("the *best* time for each is used.\n");
  

From tomdean@ix.netcom.com  Mon Feb 15 04:42:59 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id EAA20300 for <mccalpin@frakir.engr.sgi.com>; Mon, 15 Feb 1999 04:42:59 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id EAA33544
	for <mccalpin@engr.sgi.com>;
	Mon, 15 Feb 1999 04:42:58 -0800 (PST)
	mail_from (tomdean@ix.netcom.com)
Received: from ares.cs.Virginia.EDU (ftp.cs.Virginia.EDU [128.143.137.19]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id EAA00617
	for <mccalpin@sgi.com>; Mon, 15 Feb 1999 04:42:57 -0800 (PST)
	mail_from (tomdean@ix.netcom.com)
Received: from ix.netcom.com (sil-wa15-29.ix.netcom.com [207.93.148.29])
	by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id HAA15781
	for <mccalpin@cs.virginia.edu>; Mon, 15 Feb 1999 07:42:52 -0500 (EST)
Received: (from tomdean@localhost)
	by ix.netcom.com (8.9.3/8.8.8) id EAA00743;
	Mon, 15 Feb 1999 04:42:51 -0800 (PST)
	(envelope-from tomdean)
Date: Mon, 15 Feb 1999 04:42:51 -0800 (PST)
Message-Id: <199902151242.EAA00743@ix.netcom.com>
From: Thomas Dean <tomdean@ix.netcom.com>
To: mccalpin@cs.virginia.edu
Subject: Output of stream_d
Status: RO

My system is a DEC CELEBRIS 5133DP, 2ea, 133Mhz Pentium Processors,
running FreeBSD:

Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California. All rights reserved.
FreeBSD 4.0-CURRENT #4: Mon Feb 15 03:34:29 PST 1999
    tomdean@celebris:/usr/src/sys/compile/CELEBRIS-SMP
Timecounter-tdd "i8254"  frequency 1193032 Hz  cost 2547 ns
CPU: Pentium/P54C (586-class CPU)
  Origin = "GenuineIntel"  Id = 0x525  Stepping=5
  Features=0x3bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,APIC>
real memory  = 100663296 (98304K bytes)
avail memory = 95055872 (92828K bytes)
Programming 16 pins in IOAPIC #0
FreeBSD/SMP: Multiprocessor motherboard
 cpu0 (BSP): apic id:  0, version: 0x00030010, at 0xfee00000
 cpu1 (AP):  apic id:  1, version: 0x00030010, at 0xfee00000
 io0 (APIC): apic id:  2, version: 0x000f0011, at 0xfec00000
Preloaded elf kernel "kernel" at 0xf02b0000.
Probing for devices on PCI bus 0:
chip0: <Intel 82434NX (Neptune) PCI cache memory controller> rev 0x11 on pci0.0.
0
ncr0: <ncr 53c810 fast10 scsi> rev 0x02 int a irq 11 on pci0.1.0
chip1: <Intel 82378IB PCI to ISA bridge> rev 0x88 on pci0.2.0

=============================

Here is the result of running stream_d on my system.

#  time stream_d
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity appears to be less than one microsecond.
Each test below will take on the order of 273437 microseconds.
Floating exception (core dumped)
1.524u 2.264s 0:10.00 37.8%     6+30720k 0+1697io 0pf+0w
celebris: {71} !cc
cc -O2 -m486 stream_d.c second_cpu.c -o stream_d -lm
celebris: {72} time stream_d
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 7812 microseconds.
Each test below will take on the order of 273437 microseconds.
   (= 35 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          33.5738       0.4899       0.4766       0.5000
Scale:         47.6279       0.3407       0.3359       0.3516
Add:           52.0678       0.4696       0.4609       0.4766
Triad:         51.2000       0.4836       0.4688       0.4922
19.191u 0.788s 0:19.97 100.0%   5+30244k 0+0io 0pf+0w

From ashizawa@nsg.sgi.com  Mon Mar  1 22:18:01 1999
Received: from tristan.nsg.sgi.com (tristan.nsg.sgi.com [134.14.128.9]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via SMTP id WAA46329 for <mccalpin@frakir.engr.sgi.com>; Mon, 1 Mar 1999 22:17:57 -0800 (PST)
Received: from nsg.sgi.com by tristan.nsg.sgi.com via ESMTP (951211.SGI.8.6.12.PATCH1502/951211.SGI)
	 id PAA08557; Tue, 2 Mar 1999 15:18:00 +0900
Sender: ashizawa@nsg.sgi.com
Message-ID: <36DB828E.56BABC05@nsg.sgi.com>
Date: Tue, 02 Mar 1999 15:17:50 +0900
From: Yoshio Ashizawa <ashizawa@nsg.sgi.com>
Organization: Nihon SiliconGraphics Cray K.K.
X-Mailer: Mozilla 4.04 [ja_euc] (X11; I; IRIX 6.3 IP32)
MIME-Version: 1.0
To: John McCalpin <mccalpin>
CC: ashizawa@nsg.sgi.com
Subject: STREAM performance on 256 pe O2k.
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Status: RO

Hi McCalpin-san,
Thank you for your reply and suggestion that I had better
check the number.

And I checked source again I found that I made a 
mistake in timing fuction.
Now I get the reasonable expected numbers, 42 GB/s.

We can make a reasonable criteria for the procurement.

And I submitted a bug #676604 that I had expericenced
with STREAM.

Thank you again,
	ashizawa

typhoon 37% ./go
+ export OMP_NUM_THREADS=256
+ export OMP_DYNAMIC=FALSE
+ export MPC_GANG=OFF
+ export _DSM_PPM=2
+ export _DSM_MUSTRUN=1
+ ./stream
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  160000000
 Offset     =          0
 The total memory requirement is 3662 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      4 microseconds
 The tests below will each take a time on the order
 of                 34356 microseconds
    (=                  8589 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:      42825.1375      0.0618      0.0598      0.0721
Scale:     45299.3503      0.0622      0.0565      0.0739
Add:       51802.3491      0.0982      0.0741      0.2121
Triad:     52977.9809      0.0738      0.0725      0.0765
 Sum of a is =   1.8452812500173852E+20
 Sum of b is =   3.6905625000360264E+19
 Sum of c is =   4.9207500000800375E+19

Large Case:

typhoon 21% ./go
+ export OMP_NUM_THREADS=256
+ export OMP_DYNAMIC=FALSE
+ export MPC_GANG=OFF
+ export _DSM_PPM=2
+ export _DSM_MUSTRUN=1
+ ./stream
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  400000000
 Offset     =          0
 The total memory requirement is 9155 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      4 microseconds
 The tests below will each take a time on the order 
 of                 90979 microseconds
    (=                 22745 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:      42824.2493      0.1505      0.1494      0.1525
Scale:     43213.4826      0.1638      0.1481      0.2423
Add:       48285.8374      0.2003      0.1988      0.2025
Triad:     49275.5196      0.1982      0.1948      0.2171
 Sum of a is =   4.6132031251661586E+20
 Sum of b is =   9.2264062499237265E+19
 Sum of c is =   1.2301875000272059E+20


-- 
------------------------------------------------------
Yoshio Ashizawa  
Scalable Systems Technology Center
Silicon Graphics Inc. Japan
E-mail: ashizawa@nsg.sgi.com
PHONE : +81-3-5488-1838          FAX : +81-3-5420-2397

From ce107@cfm.brown.edu  Fri Mar 19 13:13:08 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id NAA80156 for <mccalpin@frakir.engr.sgi.com>; Fri, 19 Mar 1999 13:13:08 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id NAA77066
	for <mccalpin@frakir.engr.sgi.com>;
	Fri, 19 Mar 1999 13:13:07 -0800 (PST)
	mail_from (ce107@cfm.brown.edu)
Received: from e151.cfm.brown.edu (e151.cfm.brown.edu [128.148.160.151]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id QAA08792
	for <mccalpin@frakir.engr.sgi.com>; Fri, 19 Mar 1999 16:13:06 -0500 (EST)
	mail_from (ce107@cfm.brown.edu)
Received: from urania.cfm.brown.edu (urania [128.148.160.125])
	by e151.cfm.brown.edu (8.9.1/8.9.1) with ESMTP id QAA16432
	for <mccalpin@frakir.engr.sgi.com>; Fri, 19 Mar 1999 16:11:55 -0500 (EST)
From: "C. Evangelinos" <ce107@cfm.brown.edu>
Received: (from ce107@localhost)
	by urania.cfm.brown.edu (8.9.1/8.9.1) id QAA29892
	for mccalpin@frakir.engr.sgi.com; Fri, 19 Mar 1999 16:13:05 -0500 (EST)
Message-Id: <199903192113.QAA29892@urania.cfm.brown.edu>
Subject: Re: Hardware Prefetching and other CRI T3E goodies (was Re: MIPS R10k/R12k references/URL?)
To: mccalpin (John McCalpin)
Date: Fri, 19 Mar 1999 16:13:05 -0500 (EST)
In-Reply-To: <9903191139.ZM79784@frakir.engr.sgi.com> from "John McCalpin" at Mar 19, 99 11:39:34 am
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Status: RO

> I don't know the details.  I know that there is a barrier tree in
> the router network and that the design came from the T3E folks
> in Chippewa Falls.

I don't have time to recheck but this sounds more like the faster T3D
barrier tree.

> >PS> Have you had any IBM formal submission of STREAM numbers for Model
> > 260? I wouldn't want to submit mine.
> 
> No word from IBM.  I have gotten numbers from a number of customers,
> and they are all in the 550-800 MB/s range.   I may put them in the
> standard table soon, just to try to get IBM's attention....

Well in that case I'm not breaking any embarrassing secret:

These are the best results I managed to get compiling with flags for
Power3 and a high res PowerPC timer:

xlf 6.1.0.0 and also 5.1.1.0
-O3 -qarch=pwr3 -qtune=pwr3  1    548.9    545.3   766.0    767.6   

Using the standard timer may actually give slightly higher numbers but
the number of timer ticks used is very small.

Following the suggestions in the RS/6000 Scientific and Technical
Computing: POWER3 Introduction and Tuning Guide (that describe how to
tune BLAS/ESSL dcopy()) I transformed the STREAM source code for COPY
and managed to get approximately 862.3MB/s for COPY user-visible
bandwidth(*). This is still below IBM claims (and anyway the standard
STREAM results are supposed to be attainable without hand-tuning *and*
the technique used is so simple the compiler should have it in as a
special case given that copying vectors is very frequently done in
codes). 

(*) I had to compile with -O2 instead of -O3 as -O3 negated the
effects of the hand-tuning.

Constantinos Evangelinos
Center for Fluid Mechanics
Brown University/Division of Applied Mathematics

From stefand@ferrari.lcam.u-psud.fr  Fri Feb  5 09:25:17 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id JAA02792 for <mccalpin@frakir.engr.sgi.com>; Fri, 5 Feb 1999 09:25:17 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id JAA71157
	for <mccalpin@engr.sgi.com>;
	Fri, 5 Feb 1999 09:25:07 -0800 (PST)
	mail_from (stefand@ferrari.lcam.u-psud.fr)
Received: from ares.cs.Virginia.EDU (mail.cs.Virginia.EDU [128.143.137.19]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id JAB07609
	for <mccalpin@sgi.com>; Fri, 5 Feb 1999 09:24:54 -0800 (PST)
	mail_from (stefand@ferrari.lcam.u-psud.fr)
X-UIDL: 919201530.057
From: stefand@ferrari.lcam.u-psud.fr
Received: from ferrari.lcam.u-psud.fr (ferrari.lcam.u-psud.fr [194.57.28.131])
	by ares.cs.Virginia.EDU (8.8.5/8.8.5) with ESMTP id MAA22224
	for <mccalpin@cs.virginia.edu>; Fri, 5 Feb 1999 12:23:25 -0500 (EST)
Received: (from stefand@localhost) by ferrari.lcam.u-psud.fr (8.7.1/8.7.1) id SAA20642; Fri, 5 Feb 1999 18:28:22 GMT
Message-Id: <199902051828.SAA20642@ferrari.lcam.u-psud.fr>
Subject: Stream results for IBM RS/6k 595
To: mccalpin@cs.virginia.edu
Date: Fri, 5 Feb 1999 18:28:22 +0000 (WET)
X-Loop: stefand@ferrari.lcam.u-psud.fr
Reply-To: sad@utk.edu
X-Mailer: ELM [version 2.4 PL24]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Zm-Priority: Low
Status: RO

Hi John,

 I just tried to get stream data for our IBM RS/6k 43-260 Power3 machine
but that didn't work very well: So far only the xlf 4.x compiler is
installed, and it doesn't know yet about the Power3 machines. Hence, the
numbers are not representative (in fact, smaller than the ones you list
in the experimental results section).

I am planning to have the compiler upgraded and then I will make another
attempt. However, once on it I decided to benchmark our IBM RS/6k 595
(AIX 4.1, 2 GB RAM) and found the so far fastest results for this
machine with these compiler options:

xlf -O3 -qnozerosize -qarch=pwr2 -qtune=pwr2 stream_d.f second_cpu.f \
    -bmaxdata:500000000 -qhot -qhot=arraypad -qalign=4k  -o strem_595

to be in the following price range 

Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        847.0588       .4002       .3400       .4500
Scale:       900.0000       .3965       .3200       .4400
Add:         881.6327       .5402       .4900       .6600
Triad:       960.0000       .5273       .4500       .6000


(The Copy result is from a re-run of the same binary, well within the 5%
threshold you also mentioned). The complete log is appended for your
records. This is faster than the currently listed 595 entry (probably
still with xlf 3.x?) -- maybe you could also list the dates of the
entries so one can deduce such things? -- and also faster than I can 
get the Power3 machine with this compiler.

You will notice that I had to increase n quite a bit since the box was
too fast. For fun I'll build an OS/2 version tonight for pentium and p6
class machines. 

                        Cheers,  Stefan





Anyway, here is the complete log:


Concord: (IBM 595 2 GB RAM)  xlf 4.x
xlf -O3 -qnozerosize -qarch=pwr2 -qtune=pwr2 
    stream_d.f second_cpu.f -bmaxdata:500000000 -qhot 
    -o strem_595

timex ./strem_595
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   18000000
 Offset     =          0
 The total memory requirement is  411 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be  10000 microseconds
 The tests below will each take a time on the order 
 of  220000  microseconds
    (=  22  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        738.4615       .4071       .3900       .4200
Scale:       738.4615       .3981       .3900       .4100
Add:         830.7692       .5381       .5200       .5600
Triad:       847.0588       .5333       .5100       .5600
 Sum of a is =  0.207594140609274962E+20
 Sum of b is =  0.415188281269478605E+19
 Sum of c is =  0.553584374975187046E+19

real 46.64
user 20.25
sys  2.65


xlf -O3 -qnozerosize -qarch=pwr2 -qtune=pwr2 stream_d.f second_cpu.f \
    -bmaxdata:500000000 -qhot -qhot=arraypad  -o strem_595
concord pts/4 [169] /lscrtch/sad/stream> timex ./strem_595
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   18000000
 Offset     =          0
 The total memory requirement is  411 MB
 You are running each test  10 times
 The *best* time for each test is used
 --------------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        757.8947       .3991       .3800       .4100
Scale:       757.8947       .4002       .3800       .4300
Add:         864.0000       .5382       .5000       .5600
Triad:       864.0000       .5212       .5000       .5400
 Sum of a is =  0.207594140609274962E+20
 Sum of b is =  0.415188281269478605E+19
 Sum of c is =  0.553584374975187046E+19

real 46.46
user 19.93
sys  2.89


xlf -O3 -qnozerosize -qarch=pwr2 -qtune=pwr2 stream_d.f second_cpu.f \
    -bmaxdata:500000000 -qhot -qhot=arraypad -qalign=4k  -o strem_595


----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   18000000
 Offset     =          0
 The total memory requirement is  411 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be  10000 microseconds
 The tests below will each take a time on the order 
 of  220000  microseconds
    (=  22  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        738.4615       .4092       .3900       .4300
Scale:       757.8947       .3991       .3800       .4100
Add:         864.0000       .5262       .5000       .5500
Triad:       881.6327       .5253       .4900       .5500
 Sum of a is =  0.207594140609274962E+20
 Sum of b is =  0.415188281269478605E+19
 Sum of c is =  0.553584374975187046E+19



----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   18000000
 Offset     =          0
 The total memory requirement is  411 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be  10000 microseconds
 The tests below will each take a time on the order 
 of  220000  microseconds
    (=  22  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        757.8947       .3971       .3800       .4100
Scale:       757.8947       .3911       .3800       .4000
Add:         847.0588       .5372       .5100       .5500
Triad:       847.0588       .5241       .5100       .5500
 Sum of a is =  0.207594140609274962E+20
 Sum of b is =  0.415188281269478605E+19
 Sum of c is =  0.553584374975187046E+19

real 46.24
user 19.90
sys  2.74

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   18000000
 Offset     =          0
 The total memory requirement is  411 MB
 You are running each test  80 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be  10000 microseconds
 The tests below will each take a time on the order 
 of  260000  microseconds
    (=  26  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        800.0000       .4022       .3600       .4500
Scale:       900.0000       .3965       .3200       .4400
Add:         881.6327       .5402       .4900       .6600
Triad:       960.0000       .5273       .4500       .6000
 Sum of a is =  0.440152552974613180E+102
 Sum of b is =  0.880305106010380985E+101
 Sum of c is =  0.117374014130075336E+102

real 187.16
user 150.50
sys  2.99


* Another run with the same binary resulted in:

Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        847.0588       .4002       .3400       .4500
Scale:       778.3784       .3996       .3700       .5200
Add:         919.1489       .5340       .4700       .5800
Triad:       900.0000       .5306       .4800       .5700
 Sum of a is =  0.440152552974613180E+102
 Sum of b is =  0.880305106010380985E+101
 Sum of c is =  0.117374014130075336E+102

real 167.85
user 150.43
sys  3.25




-- 
=========================================================================
Dr. Stefan A. Deutscher                   | (+33-(0)1)   voice      fax
Laboratoire des Collisions Atomiques et   | LCAM :  6915-7699  6915-7671
Mol\'{e}culaires (LCAM), B\^{a}timent 351 | home :  5624-0992  call first
Universit\'{e} de Paris-Sud               | email:  sad@utk.edu 
91405 Orsay Cedex, France (Europe)        |         (forwarded to France)
=========================================================================
 Do you know what they call a quarter-pounder with cheese in Paris?

From gratz@ite.inf.tu-dresden.de Tue Apr  6 08:09:36 PDT 1999
Article: 88087 of comp.arch
Path: news.corp.sgi.com!enews.sgi.com!torn!sunqbc.risq.qc.ca!feed2.news.luth.se!luth.se!fu-berlin.de!zrz.TU-Berlin.DE!news.tu-chemnitz.de!news.inf.tu-dresden.de!not-for-mail
From: Achim Gratz <gratz@ite.inf.tu-dresden.de>
Newsgroups: comp.arch
Subject: Re: STREAM benchmark: Compiler dependent ?
Date: 6 Apr 1999 15:25:07 +0200
Organization: Institute of Computer Engineering, CS department, TU Dresden, Germany
Lines: 129
Sender: gratz@ite127.inf.tu-dresden.de
Message-ID: <cpv5hrids.fsf@ite127.inf.tu-dresden.de>
References: <37028AD1.EDAA4D00@moene.indiv.nluug.nl> <7duutu$hcd@news1.newsguy.com> <qxpv5no4be.fsf@cfm.brown.edu>
NNTP-Posting-Host: ite127.inf.tu-dresden.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: kastor.inf.tu-dresden.de 923405108 24639 141.76.85.27 (6 Apr 1999 13:25:08 GMT)
X-Complaints-To: usenet@irz.inf.tu-dresden.de
NNTP-Posting-Date: 6 Apr 1999 13:25:08 GMT
X-Newsreader: Gnus v5.6.11/Emacs 19.34
Xref: news.corp.sgi.com comp.arch:88087
Status: RO

ce107@cfm.brown.edu (C. Evangelinos) writes:

> Which in turn poses the question: On systems where non-cacheable
> load/stores (like VIS) can be used or on others where certain stores
> can avoid write-allocate traffic (eg. the new PIII SIMD extensions
> unless I'm mistaken) are there compilers that will actually generate
> the code (preferably in the absence of non-portable directives) or
> does one always need to go and use assembler or special tools like
> Intel's Vtune? STREAM experimental numbers contain very impressive
> results for Suns using VIS but at least the 4.2 compilers didn't
> appear capable to generate such code even for a simple copy loop with
> a hard-coded loop length... No idea if the 5.0 compilers are any
> better.

The SunPro 5.0 compilers can handle limited cases (I think they have
an inline template for copy loops and probably some vector loops).  If
you look at the latest SPEC submissions you should find the extra
flags to force these optimizations.

One of my students is working on a code generator for SUIF that uses
VIS instructions and some less well-known special features of
UltraSPARC to produce optimal code for STREAM and slightly more
complicated loops that arise e.g. in sparse matrix solvers.  I have
one isolated loop where I have a parametrizable m4 assembly code
generator for.  Below are results for C++ compiled and C++ with an
assembly inset.  The results are in MB/s, the rows are results for
different sizes of the respective arrays and the columns are the size
of a single array (there are six of it), minimum bandwith obtained for
any repetition, root mean squared (RMS over all repetitions), two
arithmetic averages (one with loop overhead and one without) and at
last maximum bandwith obtained for any repetition.  Machine tested is
an U60/2360 (only one processor used).  Even though I've used the
high-res timer, the first three rows have to be takenn with a grain of
salt due to the timing overhead.  The code can't use any VIS, but I've
used read and write prefetch in the assembly version to make the
in-cache results more stable.  The fun thing is that while the
assembly was originally intended for out-of-cache sizes it turns out
that it does much better than the compiled code for the in-cache case
and actually approaches the theoretical limit, whereas the compiled
code barely makes half of it.

~/solver (5) vh5
Size of one vector in MB: 13.57
Number of repetitions: 1024

                        Min     RMS     Avg1    Avg2    Max      
            16          388.8   894.9   622.7   895.6   896.8    
            32          628.3   1108.   855.6   1108.   1129.    
            64          744.3   1332.   1144.   1333.   1342.    
           128          766.0   1410.   1297.   1414.   1423.    
           256          830.7   1433.   1366.   1439.   1456.    
           512          773.9   979.4   961.2   980.5   989.1    
          1024          744.4   771.5   765.4   771.5   773.4    
          2048          600.1   730.4   730.0   733.0   762.0    
          4096          717.7   753.5   752.1   753.7   759.1    
          8192          677.3   724.1   720.6   724.8   755.3    
         16384          601.5   656.5   656.7   657.1   678.5    
         32768          546.7   561.8   562.0   562.2   615.8    
         65536          511.5   526.5   526.6   526.8   578.6    
        131072          377.3   386.2   386.9   386.9   460.6    
        262144          299.1   308.1   308.6   308.6   363.8    
        524288          294.5   302.8   302.9   302.9   331.2    
       1048576          298.3   301.8   301.8   301.8   309.5  
  
~/solver (6) vh5.RWA
Size of one vector in MB: 13.57
Number of repetitions: 1024

                        Min     RMS     Avg1    Avg2    Max      
            16          158.8   1356.   901.5   1396.   1429.    
            32          764.8   1881.   1406.   1885.   1893.    
            64          1291.   2171.   1811.   2173.   2180.    
           128          1742.   2374.   2141.   2375.   2384.    
           256          1992.   2403.   2242.   2404.   2415.    
           512          2174.   2448.   2360.   2448.   2458.    
          1024          2056.   2315.   2274.   2317.   2337.    
          2048          2120.   2425.   2402.   2428.   2480.    
          4096          1936.   2254.   2246.   2258.   2315.    
          8192          1893.   2233.   2232.   2238.   2304.    
         16384          1697.   1716.   1714.   1716.   1720.    
         32768          1118.   1171.   1172.   1173.   1378.    
         65536          953.4   990.1   992.3   992.7   1222.    
        131072          598.2   630.9   633.2   633.4   825.5    
        262144          446.6   459.2   460.4   460.4   572.2    
        524288          440.2   447.8   448.1   448.1   496.2    
       1048576          431.0   439.9   440.0   440.0   454.2    

STREAM results for the same machine (these results could probably be
improved by more sophisticated placements of the arrays):

1 CPU base result (C 4.2 compiled)
Assignment:   355.8263       0.1428       0.1415       0.1474
Scaling   :   344.8744       0.1463       0.1459       0.1480
Summing   :   364.6393       0.2083       0.2070       0.2126
SAXPYing  :   350.3134       0.2159       0.2155       0.2174
1 CPU result (C 4.2 compiled with compiler generated prefetch)
Function      Rate (MB/s)   RMS time     Min time     Max time
Assignment:   348.7358       0.1391       0.1376       0.1533
Scaling   :   354.9112       0.1362       0.1352       0.1401
Summing   :   407.6570       0.1779       0.1766       0.1792
SAXPYing  :   411.1044       0.1764       0.1751       0.1770
2 CPU result (C 4.2 compiled with compiler generated prefetch)
Assignment:   480.4420       0.1014       0.0999       0.1244
Scaling   :   484.4671       0.1007       0.0991       0.1242
Summing   :   525.6779       0.1388       0.1370       0.1711
SAXPYing  :   561.3117       0.1288       0.1283       0.1298
1 CPU (C 4.2 based, experimental with VIS/assembly, no prefetch)
Function      Rate (MB/s)   RMS time     Min time     Max time
Assignment:   617.6496       0.0780       0.0777       0.0792
Scaling   :   458.0195       0.1060       0.1048       0.1123
Summing   :   511.3926       0.1414       0.1408       0.1433
SAXPYing  :   496.0045       0.1464       0.1452       0.1489
2 CPU (C 4.2 based, experimental with VIS/assembly, no prefetch)
Function      Rate (MB/s)   RMS time     Min time     Max time
Assignment:   741.3924       0.0651       0.0647       0.0665
Scaling   :   685.2633       0.0703       0.0700       0.0710
Summing   :   734.5970       0.0982       0.0980       0.0985
SAXPYing  :   726.9866       0.0992       0.0990       0.0995

While the prefetch isn't very effective at improving the numbers per
se, it helps tremendously with badly placed data.


Achim Gratz.

--+<[ It's the small pleasures that make life so miserable. ]>+--
WWW:    http://www.inf.tu-dresden.de/~ag7/{english/}
E-Mail: gratz@ite.inf.tu-dresden.de
Phone:  +49 351 463 - 8325


From lindahl@cs.virginia.edu  Tue Mar 30 16:40:01 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id QAA04323 for <mccalpin@frakir.engr.sgi.com>; Tue, 30 Mar 1999 16:40:01 -0800 (PST)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id QAA51766
	for <mccalpin@engr.sgi.com>;
	Tue, 30 Mar 1999 16:40:00 -0800 (PST)
	mail_from (lindahl@cs.virginia.edu)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id QAB00780
	for <mccalpin@sgi.com>; Tue, 30 Mar 1999 16:39:58 -0800 (PST)
	mail_from (lindahl@cs.virginia.edu)
Received: from adder.cs.Virginia.EDU (adder.cs.Virginia.EDU [128.143.137.18])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id TAA13722
	for <mccalpin@cs.virginia.edu>; Tue, 30 Mar 1999 19:39:54 -0500 (EST)
From: Greg Lindahl <lindahl@cs.virginia.edu>
Received: (from lindahl@localhost)
	by adder.cs.Virginia.EDU (8.8.5/8.8.5) id TAA03968
	for mccalpin@cs.virginia.edu; Tue, 30 Mar 1999 19:39:54 -0500 (EST)
Message-Id: <199903310039.TAA03968@adder.cs.Virginia.EDU>
Subject: stream results, Compaq XP1000
To: mccalpin@cs.virginia.edu
Date: Tue, 30 Mar 1999 19:39:53 -0500 (EST)
X-Mailer: ELM [version 2.4 PL25]
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Status: RO

This is the new single-cpu motherboard Compaq workstation:

Compiled with a modern Digital Fortran compiler (not sure what
version), f77 -O5 -tune ev6 -non_shared stream_d.f, then run under
Linux on a 500 mhz XP1000. Almost but not quite as good as the DS20.

gcc majorly sucks in this situation, even the latest egcs. I'm not
sure how it could fuck up something so simple. Sure, it can't issue
the 'write hint' instruction, but for the loops themselves, almost all
of your time is waiting for main memory, so you'd think even stupid
code would be sufficient. Ah well.

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    2000000
 Offset     =          0
 The total memory requirement is   45 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of        24636  microseconds
    (=        24636  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        896.7368      0.0358      0.0357      0.0364
Scale:       879.5568      0.0364      0.0364      0.0365
Add:         892.0275      0.0538      0.0538      0.0539
Triad:       888.3963      0.0541      0.0540      0.0541
 Sum of a is =   2.306601562591874E+018
 Sum of b is =   4.613203124856438E+017
 Sum of c is =   6.150937500141256E+017

From ashoks@Eng.Sun.COM Fri Apr  2 17:53:56 PST 1999
Article: 87992 of comp.arch
Path: news.corp.sgi.com!news.sgi.com!news.maxwell.syr.edu!newsfeed.direct.ca!su-news-hub1.bbnplanet.com!denver-news-feed1.bbnplanet.com!news.gtei.net!namche.sun.com!ebaynews1.Ebay.Sun.COM!engnews2.Eng.Sun.COM!not-for-mail
From: ashoks@Eng.Sun.COM (Ashok Singhal)
Newsgroups: comp.arch
Subject: Re: STREAM benchmark: Compiler dependent ?
Date: 2 Apr 1999 22:25:42 GMT
Organization: Sun Microsystems Inc.
Lines: 38
Message-ID: <7e3g56$57c$1@engnews2.Eng.Sun.COM>
References: <qxpv5no4be.fsf@cfm.brown.edu>
Reply-To: ashoks@Eng.Sun.COM
NNTP-Posting-Host: dovetail.eng.sun.com
Xref: news.corp.sgi.com comp.arch:87992
Status: RO

In article fsf@cfm.brown.edu, ce107@cfm.brown.edu (C. Evangelinos) writes:
> 
> Which in turn poses the question: On systems where non-cacheable
> load/stores (like VIS) can be used or on others where certain stores
> can avoid write-allocate traffic (eg. the new PIII SIMD extensions
> unless I'm mistaken) are there compilers that will actually generate
> the code (preferably in the absence of non-portable directives) or
> does one always need to go and use assembler or special tools like
> Intel's Vtune? STREAM experimental numbers contain very impressive
> results for Suns using VIS but at least the 4.2 compilers didn't
> appear capable to generate such code even for a simple copy loop with
> a hard-coded loop length... No idea if the 5.0 compilers are any
> better.
> 

The 5.0 compilers can handle the copy loop, but 
apparently they don't do the others.
The compilers can now also generate prefetch instructions.

[In addition, the processors are now faster (400 MHz) and the system
speed has also improved to 100 MHz]

On a 8-way 400 MHz E3500, here is what we get (compiled with 5.0 compilers, no assembly):

CPUs	COPY	SCALE	SUM	TRIAD
1	577.7	369.1	375.9	431.7 
2	1160.9	721.9	690.5	847.4 
4	1884.1	984.3	1043.9	1189.9
8	3021.7	1538.5	1512.1	1768.8

(With only 4 boards, this box runs out of memory bank bandwidth before it
runs out of backplane bandwidth for the 8CPU case.)


Ashok Singhal
Sun Microsystems




From rfridman@ucalgary.ca Mon Apr 12 12:52:41 PDT 1999
Article: 29080 of comp.benchmarks
Path: news.corp.sgi.com!news.sgi.com!newshub.sdsu.edu!newsfeed.berkeley.edu!cyclone.bc.net!rover.ucs.ualberta.ca!news.ucalgary.ca!news
From: Robert Fridman <rfridman@ucalgary.ca>
Newsgroups: comp.benchmarks
Subject: Re: What about Apple PowerPC ?
Date: Mon, 12 Apr 1999 13:36:57 -0600
Organization: WurcNet Inc.
Lines: 181
Message-ID: <7eti5s$806@ds2.acs.ucalgary.ca>
References: <370b77da.117241834@news.cea.fr>
NNTP-Posting-Host: @moonbase.hpc.maci.ucalgary.ca
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary="------------05B5052B0072B81992C224ED"
X-Mailer: Mozilla 4.5 [en] (X11; I; OSF1 V4.0 alpha)
X-Accept-Language: en
Xref: news.corp.sgi.com comp.benchmarks:29080
Status: RO

This is a multi-part message in MIME format.
--------------05B5052B0072B81992C224ED
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Denis COURTIER wrote:
> 
> Hi !
> 
> Is anybody knows something about benchmarks on Apple PowerPC ?
> I would like some information about perfs on I-Mac or Macintosh G3,
> but I can't find any on www.specbench.org , Wintune, and so on...
> 
> My goal is to compare I-Mac and PC with Celeron or Pentium...

I have an Apple laptop (running Linux, 233 MHz PPC750 with .5 MB L2 cache
66MHz bus).

I find that benchmarks don't reflect the intended use of the computer. For
example, the STREAM bechmark <http://www.cs.virginia.edu/stream/> reported a
modeds 97MB/sec of memory bandwidth. I then tried STREAM with smaller data
sizes and was amazed that if the data could fit in the L2 cache, the bandwidth
trippled. So this architecture rewards good, tight programming. I included my
STREAM runs at the end of this email.

Another 'benchmark' I tried was running the benchmark gforth (GNU Forth)
programs. My laptop performed well against a 450MHz celeron. The results show
that the laptop is a lot slower on one test (.5 the speed), 18% faster on
another and 50% and 25% slower on the last 2.

The architecture of my laptop (due to a slow system bus) rewards using the
cache. This seems to suite may applications. Benchmarks don't seem to reflect
this.

If anyone has any PII or PIII laptops runing Linux, I'd be interesed in their
performance numbers for STREAM and gforth.

-- 

        Robert.

----------------------------------------------------------------------
Robert Fridman                  rfridman@ucalgary.ca
WurcNet Inc.
University of Calgary
Calgary, Alberta                phone (403) 220-6779
Canada                          fax   (403) 284-4707
--------------05B5052B0072B81992C224ED
Content-Type: text/plain; charset=us-ascii;
 name="plotdata"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="plotdata"

Array size = 10000, Offset = 0
Total memory required = 0.2 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         338.9337       0.0005       0.0005       0.0005
Scale:        333.9580       0.0034       0.0005       0.0105
Add:          332.4415       0.0035       0.0007       0.0108
Triad:        338.5347       0.0007       0.0007       0.0007

Array size = 15000, Offset = 0
Total memory required = 0.3 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         238.8216       0.0036       0.0010       0.0110
Scale:        219.7889       0.0011       0.0011       0.0012
Add:          204.4340       0.0067       0.0018       0.0122
Triad:        212.6390       0.0055       0.0017       0.0117

Array size = 20000, Offset = 0
Total memory required = 0.5 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         182.1260       0.0071       0.0018       0.0219
Scale:        194.2932       0.0055       0.0016       0.0118
Add:          183.7676       0.0061       0.0026       0.0127
Triad:        176.2776       0.0067       0.0027       0.0129

Array size = 40000, Offset = 0
Total memory required = 0.9 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         121.2802       0.0098       0.0053       0.0164
Scale:        113.4362       0.0057       0.0056       0.0059
Add:          117.1304       0.0120       0.0082       0.0185
Triad:        117.8348       0.0110       0.0081       0.0183

Array size = 80000, Offset = 0
Total memory required = 1.8 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         102.7780       0.0175       0.0125       0.0335
Scale:         99.4795       0.0160       0.0129       0.0233
Add:          104.2630       0.0247       0.0184       0.0386
Triad:        105.4943       0.0222       0.0182       0.0384

Array size = 100000, Offset = 0
Total memory required = 2.3 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         100.9976       0.0216       0.0158       0.0367
Scale:         99.6945       0.0178       0.0160       0.0260
Add:          104.8172       0.0275       0.0229       0.0531
Triad:        106.2185       0.0253       0.0226       0.0425

Array size = 250000, Offset = 0
Total memory required = 5.7 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          98.7996       0.0463       0.0405       0.0815
Scale:         97.5706       0.0466       0.0410       0.0806
Add:          104.0945       0.0597       0.0576       0.0745
Triad:        104.3550       0.0575       0.0575       0.0576


Array size = 500000, Offset = 0
Total memory required = 11.4 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          98.2149       0.0946       0.0815       0.1623
Scale:         97.6838       0.0860       0.0819       0.0992
Add:          104.3832       0.1187       0.1150       0.1313
Triad:        104.5187       0.1190       0.1148       0.1313

Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          97.9756       0.1768       0.1633       0.2679
Scale:         97.7368       0.1641       0.1637       0.1655
Add:          104.4727       0.2302       0.2297       0.2320
Triad:        104.5920       0.2298       0.2295       0.2304

--------------05B5052B0072B81992C224ED
Content-Type: text/plain; charset=us-ascii;
 name="Benchres"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="Benchres"

Some benchmark results for various combinations of hardware, Gforth
version, and Gforth configuration. Unless specified otherwise, the
default configurations were used. You can measure your combination
with `make bench'. You can find a table comparing Gforth with six
interpretive Forth systems in the manual (Section Performance), and a
comparison with more systems in
http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz.

All times are given in seconds of user time.

siev	bubble	matrix	fib	machine and configuration
 2.39	 3.38	 4.13	 4.18	Celeron 450 (Mendocino); gcc-2.7.2.3 -DFORCE-REG -DDIRECT-THREADED; gforth-0.3.0; ELF
 4.63	 5.06	 3.36	 5.25	Apple PowerBook G3 (233MHz); egcs-1.0.2 prerelease; gforth-0.4.0
 6.88	 7.43	 5.80	 8.15	AMD K6-2 300MHz 1M PB cache 100MHz; gcc-2.7.2.3 -DFORCE-REG; gforth-0.4.0; ELF
 7.36	 8.16	 7.73	 9.04	Pentium-MMX 200MHz 512K PB cache; egcs-1.1b -DFORCE-REG; gforth-0.4.0; ELF
10.91	11.94	11.24	13.13	Pentium 133MHz 256K PB cache; gcc-2.6.3 -DFORCE_REG; gforth-0.1beta; a.out
11.16	11.86	10.64	12.53	Pentium 133MHz 512K PB cache; gcc-2.7.2p -DFORCE_REG, gforth-0.3.0; ELF
12.62	13.56	11.04	14.97	AMD K6 166MHz 512K PB cache; gcc-2.7.2p -DFORCE_REG, gforth-0.3.0; ELF
11.81	14.39	13.61	15.07	IBM/Cyrix-6x86 133MHz (P166+) 512K PB cache; gcc-2.7.2.1 -DFORCE_REG -DDIRECT_THREADED; gforth-0.3.0; ELF
12.08	11.90	11.06	12.09	Cyrix-6x86MX 166MHz (PR200) 512K PB Cache; gcc-2.7.2.1 -DFORCE_REG -DDIRECT_THREADED; gforth-0.3.0; ELF
29.89	35.42	26.96	34.59	i486 66MHz 256K cache; gcc-2.6.3 -DFORCE_REG -DDIRECT_THREADED; gforth-0.1beta; a.out
39.50	45.91	36.73	44.90	i486 50MHz 256K cache; gcc-2.7.0 -DFORCE_REG -DDIRECT_THREADED; gforth-0.1beta
42.82	46.74	38.69	48.30	i486 50MHz 256K cache; gcc-2.7.0 -DFORCE_REG; gforth-0.1beta

 3.09	 3.24	 2.39	 3.42	21164A (Alpha,164LX) 600MHz 2M cache; gcc-2.7.2.1+gas; gforth-0.3.0
 3.7	 3.8	 2.8	 4.1	21164A (Alpha,PC164) 500MHz 2M cache; gcc-2.7.2.1+as (Digital Unix); gforth-0.3.0
 7.0	 7.6	 6.2	 7.7	21064A (Alpha,Cabriolet) 300MHz 2M cache; gcc-2.7.2; gforth-0.2.0

 7.49	 7.85	 6.21	 8.07	R4400 250 Mhz 2Mb cache; gcc-2.7.2.2
 8.17	 9.01	 6.24	 9.35	R10000 (SGI PowerChallenge XL) 195MHz 2M cache; gcc-2.7.2 -DFORCE_REG; gforth-0.3.0
17.3	19.0	14.1	18.3	R4000 (DecStation 5000/150) 100MHz 1M cache; gcc-2.4.5; gforth-0.1beta
50.9	56.8	42.4	52.0	R3000 (DecStation 5000/200) 25MHz 64K+64K cache; gcc-2.5.8 -DFORCE_REG; gforth-0.1beta

 7.8     8.6     7.0    10.3	UltraSparc-II 248MHz; Solaris.5.5.1; gcc-2.7.1; gforth-0.3.0
28.5	31.1	26.3	33.3    SuperSparc (Sparcstation 10) 40MHz; Solaris.5.5.1; gcc-2.7.1; gforth-0.3.0
59.5	65.8	69.5	61.9	FJMB86903 (SPARC ELC) 33MHz; gcc-2.5.8; gforth-0.1beta
84.34	91.49	76.16	88.83	L64801 25MHz (SPARC IPC) 64K WT cache; gcc-2.4.5; gforth-0.1beta

11.6	12.1	10.8	15.6	PA8000 (HP C160) 160MHz 64M RAM; gcc-2.7.2; gforth-0.3.0
30.0	34.1	20.5	33.0	PA-RISC 1.1 (HP 720) 50MHz 64K cache; gcc-2.6.3 -DDIRECT_THREADED; gforth-0.1beta

 6.81	 7.53	 5.10	 8.12	PPC604e (PowerMac) 200MHz; Linux; gcc-2.7.2.1; gforth-0.4.0
 8.25	10.09	 6.45	10.34	PPC604e (PowerMac) 200MHz; Linux; gcc-2.7.2.1; gforth-0.3.0 (indirect threaded)
14.05	16.96	11.14	17.51	PPC604 (PowerMac) 132MHz 256K L2 cache; MkLinux 2.1; gcc-2.7.2.1; gforth-0.3.0

--------------05B5052B0072B81992C224ED--



From kristian@snabel.com  Mon Apr 19 03:33:25 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id DAA46601 for <mccalpin@frakir.engr.sgi.com>; Mon, 19 Apr 1999 03:33:02 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id DAA61925
	for <mccalpin@engr.sgi.com>;
	Mon, 19 Apr 1999 03:32:55 -0700 (PDT)
	mail_from (kristian@snabel.com)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id DAA09001
	for <mccalpin@sgi.com>; Mon, 19 Apr 1999 03:32:52 -0700 (PDT)
	mail_from (kristian@snabel.com)
Received: from snabelco_pdc.snabel.com (snabelco.dk [195.78.66.94])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id GAA25110
	for <mccalpin@cs.virginia.edu>; Mon, 19 Apr 1999 06:32:49 -0400 (EDT)
Received: from snabel.com (195.97.174.138 [195.97.174.138]) by snabelco_pdc.snabel.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.1960.3)
	id 28QTCGYZ; Mon, 19 Apr 1999 12:33:06 +0100
Sender: kristian@cs.virginia.edu
Message-ID: <371B063E.3E165A80@snabel.com>
Date: Mon, 19 Apr 1999 12:32:30 +0200
From: "Kristian Elof Sørensen" <kristian@snabel.com>
Organization: Snabel & co
X-Mailer: Mozilla 4.07 [en] (X11; I; Linux 2.0.36 i686)
MIME-Version: 1.0
To: mccalpin@cs.virginia.edu
Subject: Stream results for a Celeron
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Status: RO

Hi

I have just got my new Linux box up and running at work for use as a
Java development machine and a CVS server, and have ran some benchmarks
on it. You don't seem to have the numbers for this particular PC variant
in the chart at
http://www.cs.virginia.edu/stream/standard/Bandwidth.html

It's a PC with a 
400 MHz Celeron Mendocino 
	(a PII with 128 KB L2 cache running at the CPU's clockspeed
	built into the CPU housing)
on an ASUS P2B motherboard
with 128 MB 100 MHz RAM

Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         197.5237       0.0866       0.0810       0.1053
Scale:        202.2192       0.0813       0.0791       0.0913
Add:          238.8392       0.1029       0.1005       0.1139
Triad:        218.6668       0.1121       0.1098       0.1166

It sure beats the K6-2 350 MHz I have at home for running Java programs
under the Linux JVM. I have found that the performance of this
particular application maps rather lineary to the CPU memory bandwidth
as measured by Stream. Of course with some very effective jit's or some
other such tricks this observation doesn't neccesarrily hold, though it
makes perfect sence that Java applications must be limited nearly
exclusively by the memory bandwith to and from the CPU.

From alexander@vvv.srcc.msu.su  Tue Apr 20 09:45:14 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id JAA49491 for <mccalpin@frakir.engr.sgi.com>; Tue, 20 Apr 1999 09:42:22 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id JAA05144
	for <mccalpin@engr.sgi.com>;
	Tue, 20 Apr 1999 09:42:21 -0700 (PDT)
	mail_from (alexander@vvv.srcc.msu.su)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.137.19]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id JAA05822
	for <mccalpin@sgi.com>; Tue, 20 Apr 1999 09:42:15 -0700 (PDT)
	mail_from (alexander@vvv.srcc.msu.su)
Received: from vvv.srcc.msu.su (root@vvv.srcc.msu.su [212.192.244.50])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id MAA10742
	for <mccalpin@cs.virginia.edu>; Tue, 20 Apr 1999 12:41:46 -0400 (EDT)
Received: from greenland (parallel.srcc.msu.su [212.192.244.167])
	by vvv.srcc.msu.su (8.9.1/8.9.1) with SMTP id UAA03487
	for <mccalpin@cs.virginia.edu>; Tue, 20 Apr 1999 20:41:29 +0400
Message-ID: <009a01be8b4c$accddae0$a7f4c0d4@srcc.msu.su>
From: "Alexander N. Andreyev" <alexander@vvv.srcc.msu.su>
To: <mccalpin@cs.virginia.edu>
Subject: STREAM results for Siemens RM600
Date: Tue, 20 Apr 1999 20:41:37 +0400
MIME-Version: 1.0
Content-Type: text/plain;
	charset="koi8-r"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2014.211
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211
Status: RO

Hello, John
I send you results for the STREAM benchmark on Siemens' RM600E system. The
OS is Reliant Unix 5.44, the compiler flags to "cc" were "-O2 -lm". As you
may see, Add rate is larger than Copy rate! Is this at all possible and how
this may happen?

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 16 microseconds.
Each test below will take on the order of 189254 microseconds.
   (= 11828 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          75.2676       0.2141       0.2126       0.2171
Scale:         74.9931       0.2156       0.2134       0.2180
Add:           97.4220       0.2518       0.2464       0.2656
Triad:         74.6078       0.3239       0.3217       0.3271

Best wishes,

Alexander N. Andreyev
Laboratory of Parallel Information Technologies, SRCC, MSU
alexander@vvv.srcc.msu.su, http://alex.motor.ru, ICQ: #3523091
Parallel Computing: http://parallel.srcc.msu.su [russian language]






From john@mccalpin.com  Mon Apr 26 07:04:36 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id HAA11431 for <mccalpin@frakir.engr.sgi.com>; Mon, 26 Apr 1999 07:04:36 -0700 (PDT)
Received: from conn.engr.sgi.com (conn.engr.sgi.com [130.62.53.66])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id HAA00805
	for <mccalpin@engr.sgi.com>;
	Mon, 26 Apr 1999 07:04:36 -0700 (PDT)
	mail_from (guest@conn.engr.sgi.com)
Received: (from guest@localhost)
	by conn.engr.sgi.com (8.8.7/8.8.7) id GAA12477
	for mccalpin@engr.sgi.com; Mon, 26 Apr 1999 06:11:24 -0700
Date: Mon, 26 Apr 1999 06:11:24 -0700
From: John McCalpin <john@mccalpin.com>
Message-Id: <199904261311.GAA12477@conn.engr.sgi.com>
To: mccalpin@cthulhu
Subject: stream on 320
Status: RO

Compiled with -O2 -strength-reduce -funroll-loops

The machine is a 450 MHz uniprocessor Silicon Graphics Model 320....
The performance stinks....

[guest@conn]$ repeat 10 ./stream_wall
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74271 microseconds.
   (= 74271 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.6738       0.0935       0.0932       0.0956
Scale:        180.6012       0.0887       0.0886       0.0889
Add:          227.8294       0.1065       0.1053       0.1155
Triad:        227.9440       0.1054       0.1053       0.1058
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74317 microseconds.
   (= 74317 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.6904       0.0935       0.0932       0.0954
Scale:        180.5216       0.0894       0.0886       0.0954
Add:          227.9873       0.1054       0.1053       0.1060
Triad:        227.9829       0.1054       0.1053       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74095 microseconds.
   (= 74095 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7862       0.0934       0.0931       0.0954
Scale:        180.6950       0.0886       0.0885       0.0886
Add:          227.9765       0.1053       0.1053       0.1055
Triad:        228.0154       0.1053       0.1053       0.1054
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74160 microseconds.
   (= 74160 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7807       0.0945       0.0931       0.1056
Scale:        180.6685       0.0886       0.0886       0.0888
Add:          228.0891       0.1053       0.1052       0.1056
Triad:        227.9853       0.1053       0.1053       0.1056
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74065 microseconds.
   (= 74065 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7513       0.0934       0.0932       0.0953
Scale:        180.6175       0.0887       0.0886       0.0888
Add:          228.0870       0.1064       0.1052       0.1153
Triad:        227.9981       0.1054       0.1053       0.1057
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74225 microseconds.
   (= 74225 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7346       0.0945       0.0932       0.1032
Scale:        180.6563       0.0886       0.0886       0.0888
Add:          228.1390       0.1053       0.1052       0.1055
Triad:        228.0653       0.1053       0.1052       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74145 microseconds.
   (= 74145 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7548       0.0935       0.0932       0.0955
Scale:        180.7072       0.0886       0.0885       0.0886
Add:          227.8575       0.1064       0.1053       0.1154
Triad:        227.9700       0.1054       0.1053       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74180 microseconds.
   (= 74180 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.5966       0.0946       0.0932       0.1033
Scale:        180.5809       0.0887       0.0886       0.0889
Add:          227.9853       0.1053       0.1053       0.1055
Triad:        227.9440       0.1054       0.1053       0.1059
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74172 microseconds.
   (= 74172 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.8048       0.0934       0.0931       0.0953
Scale:        180.7114       0.0886       0.0885       0.0888
Add:          227.8704       0.1072       0.1053       0.1154
Triad:        228.0871       0.1054       0.1052       0.1059
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74191 microseconds.
   (= 74191 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.8194       0.0945       0.0931       0.1031
Scale:        180.7214       0.0886       0.0885       0.0887
Add:          228.1674       0.1052       0.1052       0.1053
Triad:        228.3041       0.1052       0.1051       0.1054
[guest@conn]$ cat >stream_wall.LOG
Compiled with -O2 -strength-reduce -funroll-loops


-rw-r--r--   1 guest    998          8688 Apr 26 05:51 stream_d.o
-rwxr-xr-x   1 guest    998          9751 Apr 26 05:52 stream_wall
-rw-r--r--   1 guest    998           381 Apr 26 05:53 times.txt
[guest@conn]$ repeat 10 ./stream_wall
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74271 microseconds.
   (= 74271 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.6738       0.0935       0.0932       0.0956
Scale:        180.6012       0.0887       0.0886       0.0889
Add:          227.8294       0.1065       0.1053       0.1155
Triad:        227.9440       0.1054       0.1053       0.1058
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74317 microseconds.
   (= 74317 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.6904       0.0935       0.0932       0.0954
Scale:        180.5216       0.0894       0.0886       0.0954
Add:          227.9873       0.1054       0.1053       0.1060
Triad:        227.9829       0.1054       0.1053       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74095 microseconds.
   (= 74095 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7862       0.0934       0.0931       0.0954
Scale:        180.6950       0.0886       0.0885       0.0886
Add:          227.9765       0.1053       0.1053       0.1055
Triad:        228.0154       0.1053       0.1053       0.1054
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74160 microseconds.
   (= 74160 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7807       0.0945       0.0931       0.1056
Scale:        180.6685       0.0886       0.0886       0.0888
Add:          228.0891       0.1053       0.1052       0.1056
Triad:        227.9853       0.1053       0.1053       0.1056
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74065 microseconds.
   (= 74065 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7513       0.0934       0.0932       0.0953
Scale:        180.6175       0.0887       0.0886       0.0888
Add:          228.0870       0.1064       0.1052       0.1153
Triad:        227.9981       0.1054       0.1053       0.1057
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74225 microseconds.
   (= 74225 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7346       0.0945       0.0932       0.1032
Scale:        180.6563       0.0886       0.0886       0.0888
Add:          228.1390       0.1053       0.1052       0.1055
Triad:        228.0653       0.1053       0.1052       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74145 microseconds.
   (= 74145 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.7548       0.0935       0.0932       0.0955
Scale:        180.7072       0.0886       0.0885       0.0886
Add:          227.8575       0.1064       0.1053       0.1154
Triad:        227.9700       0.1054       0.1053       0.1055
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74180 microseconds.
   (= 74180 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.5966       0.0946       0.0932       0.1033
Scale:        180.5809       0.0887       0.0886       0.0889
Add:          227.9853       0.1053       0.1053       0.1055
Triad:        227.9440       0.1054       0.1053       0.1059
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74172 microseconds.
   (= 74172 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.8048       0.0934       0.0931       0.0953
Scale:        180.7114       0.0886       0.0885       0.0888
Add:          227.8704       0.1072       0.1053       0.1154
Triad:        228.0871       0.1054       0.1052       0.1059
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 74191 microseconds.
   (= 74191 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         171.8194       0.0945       0.0931       0.1031
Scale:        180.7214       0.0886       0.0885       0.0887
Add:          228.1674       0.1052       0.1052       0.1053
Triad:        228.3041       0.1052       0.1051       0.1054

From john@mccalpin.com  Mon Apr 26 11:02:25 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id LAA11944 for <mccalpin@frakir.engr.sgi.com>; Mon, 26 Apr 1999 11:02:25 -0700 (PDT)
Received: from conn.engr.sgi.com (conn.engr.sgi.com [130.62.53.66])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id LAA12915
	for <mccalpin@engr.sgi.com>;
	Mon, 26 Apr 1999 11:02:24 -0700 (PDT)
	mail_from (guest@conn.engr.sgi.com)
Received: (from guest@localhost)
	by conn.engr.sgi.com (8.8.7/8.8.7) id KAA00969
	for mccalpin@engr.sgi.com; Mon, 26 Apr 1999 10:01:33 -0700
Date: Mon, 26 Apr 1999 10:01:33 -0700
From: John McCalpin <john@mccalpin.com>
Message-Id: <199904261701.KAA00969@conn.engr.sgi.com>
To: mccalpin@cthulhu
Subject: offset tests on 320
Status: RO

0
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78325 microseconds.
   (= 78325 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.6180       0.0963       0.0960       0.0984
Scale:        173.5508       0.0923       0.0922       0.0923
Add:          220.7607       0.1098       0.1087       0.1187
Triad:        219.6574       0.1103       0.1093       0.1183
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78278 microseconds.
   (= 78278 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.7396       0.0963       0.0960       0.0984
Scale:        173.5677       0.0922       0.0922       0.0924
Add:          220.6856       0.1169       0.1088       0.1670
Triad:        219.5712       0.1094       0.1093       0.1101
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78315 microseconds.
   (= 78315 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.5782       0.0964       0.0961       0.0984
Scale:        173.4811       0.0923       0.0922       0.0923
Add:          220.8602       0.1098       0.1087       0.1188
Triad:        219.6233       0.1093       0.1093       0.1095
 
 
1
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 1
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78322 microseconds.
   (= 78322 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8292       0.0958       0.0953       0.0987
Scale:        170.9055       0.0938       0.0936       0.0946
Add:          217.1513       0.1108       0.1105       0.1117
Triad:        218.7645       0.1111       0.1097       0.1206
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 1
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78322 microseconds.
   (= 78322 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8468       0.0956       0.0953       0.0979
Scale:        170.9402       0.0936       0.0936       0.0937
Add:          217.2378       0.1108       0.1105       0.1124
Triad:        218.8923       0.1107       0.1096       0.1197
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 1
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78304 microseconds.
   (= 39152 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.7993       0.0967       0.0954       0.1054
Scale:        170.9000       0.0937       0.0936       0.0937
Add:          217.1159       0.1106       0.1105       0.1107
Triad:        218.8822       0.1110       0.1096       0.1214
 
 
2
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 2
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78290 microseconds.
   (= 78290 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.8457       0.1034       0.0959       0.1231
Scale:        171.5911       0.0933       0.0932       0.0934
Add:          218.6011       0.1133       0.1098       0.1214
Triad:        219.1060       0.1109       0.1095       0.1214
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 2
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78277 microseconds.
   (= 78277 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.8404       0.0974       0.0959       0.1059
Scale:        171.6149       0.0933       0.0932       0.0936
Add:          218.6231       0.1099       0.1098       0.1101
Triad:        218.9041       0.1105       0.1096       0.1173
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 2
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78263 microseconds.
   (= 39131 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.8684       0.0989       0.0959       0.1076
Scale:        172.5849       0.0947       0.0927       0.1002
Add:          218.6032       0.1150       0.1098       0.1357
Triad:        218.3983       0.1162       0.1099       0.1234
 
 
3
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 3
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78260 microseconds.
   (= 78260 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8961       0.0957       0.0953       0.0979
Scale:        171.9432       0.0932       0.0931       0.0934
Add:          219.4145       0.1094       0.1094       0.1097
Triad:        219.1701       0.1106       0.1095       0.1196
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 3
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78297 microseconds.
   (= 78297 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8540       0.0967       0.0953       0.1054
Scale:        171.9913       0.0931       0.0930       0.0931
Add:          219.4988       0.1097       0.1093       0.1116
Triad:        219.2643       0.1096       0.1095       0.1099
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 3
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78301 microseconds.
   (= 78301 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8750       0.0991       0.0953       0.1167
Scale:        171.9358       0.0947       0.0931       0.1068
Add:          219.2042       0.1108       0.1095       0.1195
Triad:        219.2882       0.1109       0.1094       0.1216
 
 
4
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 4
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78244 microseconds.
   (= 78244 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.9727       0.0962       0.0958       0.0982
Scale:        173.7035       0.0932       0.0921       0.1021
Add:          221.0717       0.1086       0.1086       0.1087
Triad:        220.0543       0.1092       0.1091       0.1094
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 4
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78303 microseconds.
   (= 39151 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.8892       0.0962       0.0959       0.0984
Scale:        173.6922       0.0922       0.0921       0.0924
Add:          220.9964       0.1099       0.1086       0.1187
Triad:        219.8487       0.1094       0.1092       0.1106
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 4
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78293 microseconds.
   (= 78293 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.9814       0.0961       0.0958       0.0983
Scale:        173.6960       0.0922       0.0921       0.0922
Add:          221.1390       0.1097       0.1085       0.1186
Triad:        220.0160       0.1100       0.1091       0.1176
 
 
5
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 5
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78266 microseconds.
   (= 78266 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.9861       0.0956       0.0952       0.0978
Scale:        170.8525       0.0937       0.0936       0.0937
Add:          217.2830       0.1105       0.1105       0.1107
Triad:        219.0201       0.1107       0.1096       0.1199
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 5
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78204 microseconds.
   (= 78204 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.9509       0.0966       0.0953       0.1053
Scale:        170.8654       0.0937       0.0936       0.0939
Add:          217.2694       0.1107       0.1105       0.1121
Triad:        219.0622       0.1096       0.1096       0.1098
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 5
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78308 microseconds.
   (= 78308 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.8803       0.0967       0.0953       0.1054
Scale:        170.9128       0.0936       0.0936       0.0937
Add:          217.2122       0.1106       0.1105       0.1107
Triad:        219.0680       0.1096       0.1096       0.1100
 
 
6
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 6
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78306 microseconds.
   (= 78306 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0199       0.1148       0.0958       0.1585
Scale:        172.0707       0.1064       0.0930       0.1615
Add:          218.7564       0.1319       0.1097       0.1525
Triad:        219.1601       0.1359       0.1095       0.2018
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 6
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 106654 microseconds.
   (= 106654 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.9570       0.1048       0.0958       0.1321
Scale:        171.4862       0.1007       0.0933       0.1305
Add:          219.4086       0.1098       0.1094       0.1101
Triad:        219.2643       0.1138       0.1095       0.1436
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 6
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78237 microseconds.
   (= 78237 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0669       0.0960       0.0958       0.0982
Scale:        171.7088       0.0943       0.0932       0.1033
Add:          219.0202       0.1097       0.1096       0.1103
Triad:        219.6355       0.1094       0.1093       0.1097
 
 
7
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 7
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78284 microseconds.
   (= 78284 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0636       0.0955       0.0952       0.0977
Scale:        171.9561       0.1000       0.0930       0.1482
Add:          219.4005       0.1105       0.1094       0.1193
Triad:        219.1281       0.1096       0.1095       0.1096
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 7
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78308 microseconds.
   (= 78308 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0990       0.0955       0.0952       0.0977
Scale:        172.0227       0.0932       0.0930       0.0943
Add:          219.5873       0.1105       0.1093       0.1193
Triad:        219.3404       0.1095       0.1094       0.1096
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 7
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78349 microseconds.
   (= 78349 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0690       0.0955       0.0952       0.0976
Scale:        171.9764       0.0932       0.0930       0.0934
Add:          219.5270       0.1104       0.1093       0.1194
Triad:        219.1921       0.1097       0.1095       0.1102
 
 
8
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 8
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78245 microseconds.
   (= 39122 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0442       0.0961       0.0958       0.0983
Scale:        173.6657       0.0922       0.0921       0.0923
Add:          221.0679       0.1086       0.1086       0.1087
Triad:        220.1511       0.1102       0.1090       0.1191
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 8
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78306 microseconds.
   (= 78306 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         166.9222       0.0972       0.0959       0.1059
Scale:        173.5320       0.0922       0.0922       0.0924
Add:          220.9376       0.1087       0.1086       0.1089
Triad:        219.9857       0.1093       0.1091       0.1105
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 8
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 79766 microseconds.
   (= 79766 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0791       0.0961       0.0958       0.0985
Scale:        173.7505       0.0932       0.0921       0.1022
Add:          221.0637       0.1087       0.1086       0.1088
Triad:        220.2581       0.1091       0.1090       0.1092
 
 
9
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 9
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78331 microseconds.
   (= 78331 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0144       0.0955       0.0952       0.0976
Scale:        170.7833       0.0944       0.0937       0.1003
Add:          217.1415       0.1118       0.1105       0.1211
Triad:        219.0100       0.1097       0.1096       0.1098
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 9
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78234 microseconds.
   (= 78234 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.1361       0.0955       0.0952       0.0977
Scale:        171.0151       0.0938       0.0936       0.0954
Add:          217.2772       0.1116       0.1105       0.1204
Triad:        219.2541       0.1096       0.1095       0.1098
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 9
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78324 microseconds.
   (= 78324 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0549       0.0955       0.0952       0.0977
Scale:        170.8052       0.0937       0.0937       0.0938
Add:          217.0707       0.1117       0.1106       0.1207
Triad:        218.8382       0.1098       0.1097       0.1101
 
 
10
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 10
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 88211 microseconds.
   (= 88211 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.1646       0.0962       0.0957       0.0982
Scale:        171.6241       0.0934       0.0932       0.0943
Add:          218.7526       0.1101       0.1097       0.1117
Triad:        219.6033       0.1101       0.1093       0.1149
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 10
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78329 microseconds.
   (= 78329 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0860       0.0982       0.0958       0.1082
Scale:        171.1908       0.1021       0.0935       0.1140
Add:          218.6050       0.1123       0.1098       0.1178
Triad:        219.0221       0.1184       0.1096       0.1387
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 10
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 94522 microseconds.
   (= 94522 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.1385       0.0961       0.0957       0.0981
Scale:        171.7089       0.0933       0.0932       0.0943
Add:          218.7924       0.1098       0.1097       0.1100
Triad:        219.5449       0.1094       0.1093       0.1099
 
 
11
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 11
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78339 microseconds.
   (= 78339 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0530       0.0956       0.0952       0.0977
Scale:        171.8767       0.0932       0.0931       0.0933
Add:          219.4465       0.1105       0.1094       0.1195
Triad:        219.3644       0.1095       0.1094       0.1097
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 11
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78215 microseconds.
   (= 78215 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.3396       0.0960       0.0950       0.1019
Scale:        172.0503       0.0931       0.0930       0.0931
Add:          219.7340       0.1103       0.1092       0.1193
Triad:        219.6574       0.1095       0.1093       0.1113
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 11
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78300 microseconds.
   (= 78300 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.1396       0.0955       0.0952       0.0977
Scale:        172.0079       0.0932       0.0930       0.0935
Add:          219.4988       0.1094       0.1093       0.1095
Triad:        219.2722       0.1106       0.1095       0.1194
 
 
12
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 12
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78170 microseconds.
   (= 78170 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.1944       0.0971       0.0957       0.1057
Scale:        173.7223       0.0922       0.0921       0.0924
Add:          221.1919       0.1086       0.1085       0.1089
Triad:        220.1754       0.1090       0.1090       0.1091
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 12
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78320 microseconds.
   (= 78320 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.0321       0.0961       0.0958       0.0982
Scale:        173.4812       0.0933       0.0922       0.1023
Add:          220.7667       0.1088       0.1087       0.1090
Triad:        220.0139       0.1094       0.1091       0.1111
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 12
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78158 microseconds.
   (= 78158 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.2031       0.1034       0.0957       0.1314
Scale:        173.7035       0.0952       0.0921       0.1193
Add:          221.0963       0.1163       0.1086       0.1452
Triad:        220.2885       0.1376       0.1089       0.2048
 
 
13
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 13
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 114877 microseconds.
   (= 114877 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.1432       0.1091       0.0952       0.1323
Scale:        170.8872       0.0995       0.0936       0.1324
Add:          217.0432       0.1201       0.1106       0.1486
Triad:        219.1621       0.1214       0.1095       0.1467
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 13
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78174 microseconds.
   (= 78174 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.4193       0.0953       0.0950       0.0975
Scale:        170.9951       0.0936       0.0936       0.0938
Add:          217.3696       0.1117       0.1104       0.1205
Triad:        219.4786       0.1095       0.1094       0.1099
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 13
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78277 microseconds.
   (= 78277 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.2068       0.0955       0.0951       0.0976
Scale:        170.7941       0.0940       0.0937       0.0947
Add:          217.2613       0.1127       0.1105       0.1283
Triad:        219.0661       0.1100       0.1096       0.1107
 
 
14
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 14
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78366 microseconds.
   (= 78366 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.3326       0.0968       0.0956       0.1041
Scale:        171.6996       0.0955       0.0932       0.1137
Add:          218.8283       0.1130       0.1097       0.1229
Triad:        219.5529       0.1113       0.1093       0.1183
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 14
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78248 microseconds.
   (= 39124 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.2224       0.0997       0.0957       0.1231
Scale:        171.4532       0.0935       0.0933       0.0950
Add:          218.6311       0.1118       0.1098       0.1198
Triad:        219.3865       0.1122       0.1094       0.1260
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 14
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78245 microseconds.
   (= 78245 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         167.3377       0.0960       0.0956       0.0982
Scale:        171.6683       0.0942       0.0932       0.1022
Add:          218.8822       0.1108       0.1096       0.1197
Triad:        219.6494       0.1095       0.1093       0.1098
 
 
15
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 15
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 2 microseconds.
Each test below will take on the order of 78638 microseconds.
   (= 39319 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.0231       0.1702       0.0952       0.4075
Scale:        171.6923       0.1381       0.0932       0.2181
Add:          218.6170       0.1576       0.1098       0.2558
Triad:        219.4064       0.1603       0.1094       0.2669
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 15
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 77591 microseconds.
   (= 77591 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.9903       0.0952       0.0947       0.0972
Scale:        172.7339       0.1263       0.0926       0.2862
Add:          219.9795       0.1096       0.1091       0.1116
Triad:        219.9132       0.1265       0.1091       0.2288
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 15
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 78082 microseconds.
   (= 78082 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         168.6661       0.0952       0.0949       0.0972
Scale:        172.3228       0.0940       0.0928       0.1032
Add:          219.5630       0.1099       0.1093       0.1108
Triad:        219.6917       0.1097       0.1092       0.1105
 
 

From john@mccalpin.com  Wed Apr 28 18:38:48 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id SAA17041 for <mccalpin@frakir.engr.sgi.com>; Wed, 28 Apr 1999 18:38:48 -0700 (PDT)
Received: from mccloud.engr.sgi.com (mccloud.engr.sgi.com [192.48.196.40])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id SAA83130
	for <mccalpin@engr.sgi.com>;
	Wed, 28 Apr 1999 18:38:48 -0700 (PDT)
	mail_from (guest@mccloud.engr.sgi.com)
Received: (from guest@localhost)
	by mccloud.engr.sgi.com (8.8.7/8.8.7) id SAA31516
	for mccalpin@engr.sgi.com; Wed, 28 Apr 1999 18:37:04 -0700
Date: Wed, 28 Apr 1999 18:37:04 -0700
From: John McCalpin <john@mccalpin.com>
Message-Id: <199904290137.SAA31516@mccloud.engr.sgi.com>
To: mccalpin@cthulhu
Subject: STREAM on cloudburst
Status: RO

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39100 microseconds.
   (= 39100 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.2560       0.0499       0.0496       0.0515
Scale:        323.2520       0.0495       0.0495       0.0497
Add:          366.9443       0.0655       0.0654       0.0657
Triad:        365.4525       0.0657       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39051 microseconds.
   (= 39051 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         321.8540       0.0499       0.0497       0.0515
Scale:        323.4346       0.0495       0.0495       0.0495
Add:          366.7367       0.0655       0.0654       0.0655
Triad:        365.4358       0.0658       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39177 microseconds.
   (= 39177 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.1455       0.0499       0.0497       0.0514
Scale:        323.2844       0.0495       0.0495       0.0496
Add:          366.8883       0.0654       0.0654       0.0655
Triad:        365.2578       0.0658       0.0657       0.0660
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39055 microseconds.
   (= 39055 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         321.7440       0.0499       0.0497       0.0515
Scale:        323.2783       0.0495       0.0495       0.0496
Add:          366.7092       0.0655       0.0654       0.0655
Triad:        364.9525       0.0658       0.0658       0.0659
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39099 microseconds.
   (= 39099 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.2621       0.0500       0.0496       0.0515
Scale:        323.2062       0.0495       0.0495       0.0496
Add:          366.8659       0.0655       0.0654       0.0655
Triad:        365.2911       0.0657       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39068 microseconds.
   (= 39068 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         321.9448       0.0499       0.0497       0.0515
Scale:        323.2588       0.0495       0.0495       0.0496
Add:          366.9218       0.0654       0.0654       0.0655
Triad:        365.1909       0.0658       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39059 microseconds.
   (= 39059 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.2043       0.0499       0.0497       0.0515
Scale:        323.3173       0.0495       0.0495       0.0498
Add:          366.8437       0.0655       0.0654       0.0655
Triad:        365.2747       0.0658       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39053 microseconds.
   (= 39053 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         321.8989       0.0499       0.0497       0.0515
Scale:        323.1997       0.0495       0.0495       0.0496
Add:          366.7988       0.0655       0.0654       0.0655
Triad:        365.3916       0.0657       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39044 microseconds.
   (= 39044 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.3466       0.0499       0.0496       0.0515
Scale:        323.4610       0.0495       0.0495       0.0496
Add:          366.8153       0.0655       0.0654       0.0657
Triad:        365.4470       0.0657       0.0657       0.0658
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 0
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 39054 microseconds.
   (= 39054 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         322.0612       0.0499       0.0497       0.0515
Scale:        323.1672       0.0495       0.0495       0.0496
Add:          366.8101       0.0655       0.0654       0.0655
Triad:        365.2246       0.0658       0.0657       0.0658

From kcollins@rsn.hp.com  Wed May 12 11:41:15 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id LAA43002 for <mccalpin@frakir.engr.sgi.com>; Wed, 12 May 1999 11:40:54 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id LAA31869
	for <mccalpin@engr.sgi.com>;
	Wed, 12 May 1999 11:40:53 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from ares.cs.Virginia.EDU (mail.cs.Virginia.EDU [128.143.137.19]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id LAA01120
	for <mccalpin@sgi.com>; Wed, 12 May 1999 11:40:47 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from atlrel2.hp.com (atlrel2.hp.com [156.153.255.202])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id OAA09505
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 14:40:45 -0400 (EDT)
Received: from cmail2.rsn.hp.COM (cmail2.rsn.hp.com [15.99.101.1])
	by atlrel2.hp.com (8.8.6 (PHNE_17135)/8.8.5tis) with ESMTP id OAA18203
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 14:40:39 -0400 (EDT)
Received: from kirbyob.rsn.hp.com (kcollinspc.rsn.hp.com [15.99.100.197]) by cmail2.rsn.hp.COM with SMTP (8.7.1/8.7.1) id NAA29469; Wed, 12 May 1999 13:40:37 -0500 (CDT)
Message-Id: <3.0.3.32.19990512134040.00883380@cmail2.rsn.hp.com>
X-Sender: kcollins@cmail2.rsn.hp.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32)
Date: Wed, 12 May 1999 13:40:40 -0500
To: mccalpin@cs.virginia.edu
From: Kirby Collins <kcollins@rsn.hp.com>
Subject: stream results for HP N4000, 1 cpu
Cc: isom@cmail2.rsn.hp.COM, kcollins@cmail2.rsn.hp.COM,
        koester@cmail2.rsn.hp.COM
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Status: RO

run on a prerelease of HP-UX 11.0 March 1999 Extension Pack
compiled with HP Fortran 90 Compiler B.11.01.06
f90 -o stream_d.mp +DA2.0 +DS2.0 +O3 +Odataprefetch +FPD -Wl,+pd,64M
+Oparallel stream_d.f second_wall.o

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   20000000
 Offset     =          0
 The total memory requirement is  457 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      3 microseconds
 The tests below will each take a time on the order 
 of  271725  microseconds
    (=  90575  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        759.9506      0.4212      0.4211      0.4216  
Scale:       758.6967      0.4220      0.4218      0.4226  
Add:         834.5851      0.5756      0.5751      0.5770  
Triad:       836.1392      0.5743      0.5741      0.5749  
 Sum of a is =  2.306601562980265E+19
 Sum of b is =  4.613203126278327E+18
 Sum of c is =  6.150937498077968E+18


From kcollins@rsn.hp.com  Wed May 12 13:36:33 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id NAA43453 for <mccalpin@frakir.engr.sgi.com>; Wed, 12 May 1999 13:36:21 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id NAA26371
	for <mccalpin@engr.sgi.com>;
	Wed, 12 May 1999 13:36:19 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id NAA07594
	for <mccalpin@sgi.com>; Wed, 12 May 1999 13:36:19 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from atlrel2.hp.com (atlrel2.hp.com [156.153.255.202])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id QAA12993
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 16:36:16 -0400 (EDT)
Received: from cmail2.rsn.hp.COM (cmail2.rsn.hp.com [15.99.101.1])
	by atlrel2.hp.com (8.8.6 (PHNE_17135)/8.8.5tis) with ESMTP id QAA01089
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 16:36:14 -0400 (EDT)
Received: from kirbyob.rsn.hp.com (kcollinspc.rsn.hp.com [15.99.100.197]) by cmail2.rsn.hp.COM with SMTP (8.7.1/8.7.1) id PAA04206; Wed, 12 May 1999 15:36:11 -0500 (CDT)
Message-Id: <3.0.3.32.19990512153614.007f9dd0@cmail2.rsn.hp.com>
X-Sender: kcollins@cmail2.rsn.hp.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32)
Date: Wed, 12 May 1999 15:36:14 -0500
To: mccalpin@cs.virginia.edu
From: Kirby Collins <kcollins@rsn.hp.com>
Subject: HP V2500 stream results, 1 node, 1 cpu
Cc: kcollins@cmail2.rsn.hp.COM, isom@cmail2.rsn.hp.COM,
        koester@cmail2.rsn.hp.COM
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Status: RO

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   20000000
 Offset     =          0
 The total memory requirement is  457 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      3 microseconds
 The tests below will each take a time on the order 
 of  597567  microseconds
    (=  199189  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        371.4137      0.9370      0.8616      0.9459  
Scale:       366.9035      0.9138      0.8722      0.9194  
Add:         346.9886      1.3841      1.3833      1.3849  
Triad:       355.6894      1.3502      1.3495      1.3511  
 Sum of a is =  2.306601562980265E+19
 Sum of b is =  4.613203126278327E+18
 Sum of c is =  6.150937498077968E+18


From kcollins@rsn.hp.com  Wed May 12 13:36:57 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id NAA43523 for <mccalpin@frakir.engr.sgi.com>; Wed, 12 May 1999 13:36:44 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id NAA33508
	for <mccalpin@engr.sgi.com>;
	Wed, 12 May 1999 13:36:43 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id NAA05903
	for <mccalpin@sgi.com>; Wed, 12 May 1999 13:36:42 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from atlrel2.hp.com (atlrel2.hp.com [156.153.255.202])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id QAA13001
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 16:36:41 -0400 (EDT)
Received: from cmail2.rsn.hp.COM (cmail2.rsn.hp.com [15.99.101.1])
	by atlrel2.hp.com (8.8.6 (PHNE_17135)/8.8.5tis) with ESMTP id QAA01264
	for <mccalpin@cs.virginia.edu>; Wed, 12 May 1999 16:36:38 -0400 (EDT)
Received: from kirbyob.rsn.hp.com (kcollinspc.rsn.hp.com [15.99.100.197]) by cmail2.rsn.hp.COM with SMTP (8.7.1/8.7.1) id PAA04222; Wed, 12 May 1999 15:36:37 -0500 (CDT)
Message-Id: <3.0.3.32.19990512153641.00851c70@cmail2.rsn.hp.com>
X-Sender: kcollins@cmail2.rsn.hp.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32)
Date: Wed, 12 May 1999 15:36:41 -0500
To: mccalpin@cs.virginia.edu
From: Kirby Collins <kcollins@rsn.hp.com>
Subject: HP V2500 Stream results, 1 node, 32 cpu
Cc: kcollins@cmail2.rsn.hp.COM, isom@cmail2.rsn.hp.COM,
        koester@cmail2.rsn.hp.COM
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Status: RO

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   20000000
 Offset     =          0
 The total memory requirement is  457 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      3 microseconds
 The tests below will each take a time on the order 
 of  58322  microseconds
    (=  19441  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       3934.3020      0.0996      0.0813      0.1022  
Scale:      4193.2557      0.0964      0.0763      0.0989  
Add:        3926.3165      0.1321      0.1223      0.1947  
Triad:      4027.4864      0.1251      0.1192      0.1626  
 Sum of a is =  2.306601562980265E+19
 Sum of b is =  4.613203126278327E+18
 Sum of c is =  6.150937498077968E+18


From henning@perfom.zko.dec.com  Wed May 19 08:35:17 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id IAA55757 for <MCCALPIN@frakir.engr.sgi.com>; Wed, 19 May 1999 08:35:05 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id IAA47025
	for <MCCALPIN@frakir.engr.sgi.com>;
	Wed, 19 May 1999 08:35:04 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from mail11.digital.com (mail11.digital.com [192.208.46.10]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id IAA08206
	for <MCCALPIN@frakir.engr.sgi.com>; Wed, 19 May 1999 08:35:00 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from perfom (perfom.zko.dec.com [16.31.64.90])
	by mail11.digital.com (8.9.2/8.9.2/WV2.0g) with SMTP id LAA10085
	for <MCCALPIN@frakir.engr.sgi.com>; Wed, 19 May 1999 11:37:59 -0400 (EDT)
Date: Wed, 19 May 1999 11:34:24 -0400
Message-Id: <99051911342465@perfom.zko.dec.com>
From: henning@perfom.zko.dec.com (John Henning)
To: MCCALPIN
Subject: AlphaServer ES40
X-VMS-To: MCCALPIN@FRAKIR.ENGR.SGI.COM
X-VMS-Cc: ME
Status: RO

Hi John,

Here's some more data for your chart.   This is the

    AlphaServer ES40 (1 cpu)

If you could post it soon, I'd be grateful!

Best regards

   - John


Script started on Thu May 13 10:35:06 1999
$ ls
rpcc.c                             tryit.sh
stream_d.f_as_at_ftp_site_22may97  typescript
tryit.f
$ diff stream_d.f_as_at_ftp_site_22may97 tryit.f^R
diff stream_d.f_as_at_ftp_site_22may97 tryit.f
53c53,54
<       PARAMETER (n=2000000,offset=0,ndim=n+offset,ntimes=10)
---
>       PARAMETER (n = 1000000 ,offset=0)
>       PARAMETER (ndim=n+offset,ntimes=10)
334a336,359
>       END
> 
>       DOUBLE PRECISION FUNCTION SECOND
> *
> *     Assume we will be called often enough so that rpcc counter
> *     doesn't overflow!
> *
>       INTEGER*8 TICK, PREV_TICK
>       DOUBLE PRECISION RPCC_DELTA, PREV_SEC 
>       INTEGER*8 FIXED_RPCC 
>       EXTERNAL FIXED_RPCC, RPCC_DELTA
> 
>       DATA PREV_TICK /0/
> 
>       TICK = FIXED_RPCC()
>       IF (PREV_TICK .EQ. 0) THEN
>            SECOND = 0D0
>       ELSE
>            SECOND = PREV_SEC + RPCC_DELTA (%VAL(PREV_TICK), %VAL(TICK))
>       END IF
> 
>       PREV_SEC = SECOND
>       PREV_TICK   =  TICK
>       RETURN
$ 
$ cat rpcc.c
/* rpcc.c j.henning hacked from example by d.grunwald*/

#include <c_asm.h>
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/types.h>
 
static double scale = -1;
static pid_t mypid = -1;
 
/* fix_rpcc adds the two halves of the register (bias & offset), since
   some tools return it w/o this fixup */

unsigned long
fix_rpcc(unsigned long rpcc)
{
    unsigned long fixed;
    unsigned long offset = (rpcc >> 32) & 0xffffffff;
    unsigned long cycles = (rpcc & 0xffffffff);
    fixed = (unsigned long) offset + (unsigned long) cycles;
    /* printf ("%8lx %8lx %8lx ", offset, cycles, fixed); */
    return fixed; 
}
 
/* Compute time in *seconds* (note that Grunwald's original version
   did microseconds) given two fixedup RPCCs */

double
rpcc_delta(unsigned long ul_start, unsigned long ul_stop)
{
    double retval;
 
    if ( scale == -1 ) {
	  int         err;
	  double freq;
	  struct cpu_info cpubuf ;
 
	  err = getsysinfo(GSI_CPU_INFO, &cpubuf, sizeof(cpubuf));
          /*printf ("err= %d freq = %d current_cpu = %d\n", 
               err, cpubuf.mhz, cpubuf.current_cpu);*/
	  if (err < 0) {
	      freq = 300;
	  } else {
	      freq = cpubuf.mhz;
	  }
          freq *= 1000000;
	  /*
	   * Scale is the 1 over the clock frequency
	   */
	  scale = 1/(double) freq;
    }
 
    if (ul_stop < ul_start) {
        retval = ((0xffffffff - ul_start) + ul_stop) * scale;
        }
    else {
        retval = (ul_stop - ul_start) * scale;
        }

    /* printf ("%f\n", retval); */
 
    return retval;
}
 
unsigned long
fixed_rpcc(void)
{
  unsigned long i;

  i = asm("rpcc %v0");
  return fix_rpcc(i);
}
 
 
$ 
$ cat tryit.sh


# Print compiler version

echo ""
echo ""
echo -n "       "
echo "      end" >tmp$$.f
f77 -V -c tmp$$.f
grep "COMPILER:" tmp$$.l | cut -b 10-99
rm tmp$$.l tmp$$.o tmp$$.f
echo ""
echo ""

cc -c rpcc.c
f77 -non_shared -fast -O5 -unroll 8 -arch ev6 -assume nounderscore rpcc.o tryit.f
./a.out
$ 
$ ./tryit.sh


-n        
 DIGITAL Fortran 77 V5.2-171-428BH


----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1000000
 Offset     =          0
 The total memory requirement is   22 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of        11945 microseconds
    (=        11945 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       1004.5576      0.0160      0.0159      0.0163
Scale:      1193.8713      0.0134      0.0134      0.0135
Add:        1058.6282      0.0227      0.0227      0.0228
Triad:      1237.0523      0.0194      0.0194      0.0195
 Sum of a is =   1.153300781280042E+018
 Sum of b is =   2.306601562536570E+017
 Sum of c is =   3.075468750061256E+017
$ exit

script done on Thu May 13 10:35:47 1999

From kcollins@rsn.hp.com  Wed May 19 11:45:02 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id LAA55970 for <mccalpin@frakir.engr.sgi.com>; Wed, 19 May 1999 11:44:49 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id LAA78399
	for <mccalpin@engr.sgi.com>;
	Wed, 19 May 1999 11:44:48 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from ares.cs.Virginia.EDU (ftp.cs.Virginia.EDU [128.143.137.19]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id LAA05359
	for <mccalpin@sgi.com>; Wed, 19 May 1999 11:44:44 -0700 (PDT)
	mail_from (kcollins@rsn.hp.com)
Received: from atlrel2.hp.com (atlrel2.hp.com [156.153.255.202])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id OAA22546
	for <mccalpin@cs.virginia.edu>; Wed, 19 May 1999 14:44:42 -0400 (EDT)
Received: from cmail2.rsn.hp.COM (cmail2.rsn.hp.com [15.99.101.1])
	by atlrel2.hp.com (8.8.6 (PHNE_17135)/8.8.5tis) with ESMTP id OAA24354
	for <mccalpin@cs.virginia.edu>; Wed, 19 May 1999 14:44:39 -0400 (EDT)
Received: from kirbyob.rsn.hp.com (kcollinspc.rsn.hp.com [15.99.100.197]) by cmail2.rsn.hp.COM with SMTP (8.7.1/8.7.1) id NAA13437 for <mccalpin@cs.virginia.edu>; Wed, 19 May 1999 13:44:38 -0500 (CDT)
Message-Id: <3.0.3.32.19990519134439.00894940@cmail2.rsn.hp.com>
X-Sender: kcollins@cmail2.rsn.hp.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32)
Date: Wed, 19 May 1999 13:44:39 -0500
To: mccalpin@cs.virginia.edu
From: Kirby Collins <kcollins@rsn.hp.com>
Subject: stream results for HP N4000, 8 way parallel
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Status: RO

run on a prerelease of HP-UX 11.0 March 1999 Extension Pack
compiled with HP Fortran 90 Compiler B.11.01.06
f90 -o stream_d.mp +DA2.0 +DS2.0 +O3 +Odataprefetch +FPD -Wl,+pd,64M
+Oparallel stream_d.f second_wall.o

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   20000000
 Offset     =          0
 The total memory requirement is  457 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      3 microseconds
 The tests below will each take a time on the order 
 of  113757  microseconds
    (=  37919  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       1759.0928      0.1852      0.1819      0.2080  
Scale:      1755.9066      0.1828      0.1822      0.1837  
Add:        1917.2391      0.2508      0.2504      0.2520  
Triad:      1919.6778      0.2503      0.2500      0.2507  
 Sum of a is =  2.306601562980265E+19
 Sum of b is =  4.613203126278327E+18
 Sum of c is =  6.150937498077968E+18


From henning@perfom.zko.dec.com  Mon May 24 06:36:13 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id GAA64827 for <MCCALPIN@frakir.engr.sgi.com>; Mon, 24 May 1999 06:36:02 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id GAA33200
	for <MCCALPIN@frakir.engr.sgi.com>;
	Mon, 24 May 1999 06:36:01 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from mail11.digital.com (mail11.digital.com [192.208.46.10]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id GAA06793
	for <MCCALPIN@frakir.engr.sgi.com>; Mon, 24 May 1999 06:36:00 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from perfom (perfom.zko.dec.com [16.31.64.90])
	by mail11.digital.com (8.9.2/8.9.2/WV2.0g) with SMTP id JAA06345
	for <MCCALPIN@frakir.engr.sgi.com>; Mon, 24 May 1999 09:39:08 -0400 (EDT)
Date: Mon, 24 May 1999 09:34:46 -0400
Message-Id: <99052409344660@perfom.zko.dec.com>
From: henning@perfom.zko.dec.com (John Henning)
To: MCCALPIN
Subject: XP1000 Streams results
X-VMS-To: MCCALPIN@FRAKIR.ENGR.SGI.COM
X-VMS-Cc: ME
Status: RO

Hi John,

Here's the results for the XP1000.  The submission was long delayed, as
you can see from the date; that was my fault.  

Thanks!
   - john

Script started on Tue Mar  2 08:16:45 1999
% ls *ftp*
stream_d.f_as_at_ftp_site_22may97
% diff *ftp* tryit.f
53c53,54
<       PARAMETER (n=2000000,offset=0,ndim=n+offset,ntimes=10)
---
>       PARAMETER (n = 1000020,offset=0)
>       PARAMETER (ndim=n+offset,ntimes=10)
334a336,359
>       END
> 
>       DOUBLE PRECISION FUNCTION SECOND
> *
> *     Assume we will be called often enough so that rpcc counter
> *     doesn't overflow!
> *
>       INTEGER*8 TICK, PREV_TICK
>       DOUBLE PRECISION RPCC_DELTA, PREV_SEC 
>       INTEGER*8 FIXED_RPCC 
>       EXTERNAL FIXED_RPCC, RPCC_DELTA
> 
>       DATA PREV_TICK /0/
> 
>       TICK = FIXED_RPCC()
>       IF (PREV_TICK .EQ. 0) THEN
>            SECOND = 0D0
>       ELSE
>            SECOND = PREV_SEC + RPCC_DELTA (%VAL(PREV_TICK), %VAL(TICK))
>       END IF
> 
>       PREV_SEC = SECOND
>       PREV_TICK   =  TICK
>       RETURN
% cat rpcc.c
/* rpcc.c j.henning hacked from example by d.grunwald*/

#include <c_asm.h>
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/types.h>
 
static double scale = -1;
static pid_t mypid = -1;
 
/* fix_rpcc adds the two halves of the register (bias & offset), since
   some tools return it w/o this fixup */

unsigned long
fix_rpcc(unsigned long rpcc)
{
    unsigned long fixed;
    unsigned long offset = (rpcc >> 32) & 0xffffffff;
    unsigned long cycles = (rpcc & 0xffffffff);
    fixed = (unsigned long) offset + (unsigned long) cycles;
    /* printf ("%8lx %8lx %8lx ", offset, cycles, fixed); */
    return fixed; 
}
 
/* Compute time in *seconds* (note that Grunwald's original version
   did microseconds) given two fixedup RPCCs */

double
rpcc_delta(unsigned long ul_start, unsigned long ul_stop)
{
    double retval;
 
    if ( scale == -1 ) {
	  int         err;
	  double freq;
	  struct cpu_info cpubuf ;
 
	  err = getsysinfo(GSI_CPU_INFO, &cpubuf, sizeof(cpubuf));
          /*printf ("err= %d freq = %d current_cpu = %d\n", 
               err, cpubuf.mhz, cpubuf.current_cpu);*/
	  if (err < 0) {
	      freq = 300;
	  } else {
	      freq = cpubuf.mhz;
	  }
          freq *= 1000000;
	  /*
	   * Scale is the 1 over the clock frequency
	   */
	  scale = 1/(double) freq;
    }
 
    if (ul_stop < ul_start) {
        retval = ((0xffffffff - ul_start) + ul_stop) * scale;
        }
    else {
        retval = (ul_stop - ul_start) * scale;
        }

    /* printf ("%f\n", retval); */
 
    return retval;
}
 
unsigned long
fixed_rpcc(void)
{
  unsigned long i;

  i = asm("rpcc %v0");
  return fix_rpcc(i);
}
 
 
% cc -c rpcc.c
% f77 -non_shared -fast -O5 -unroll 8 -arch ev6 -assume nounderscore -V rpcc.o tryit.f
% grep COMPILER: tryit.l
COMPILER: DIGITAL Fortran 77 V5.2-171-428BH
% ./a.out
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1000020
 Offset     =          0
 The total memory requirement is   22 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of        12706 microseconds
    (=        12706 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        900.2357      0.0179      0.0178      0.0192
Scale:       971.1877      0.0166      0.0165      0.0172
Add:         917.2598      0.0262      0.0262      0.0265
Triad:       967.7494      0.0248      0.0248      0.0250
 Sum of a is =   1.153323847295668E+018
 Sum of b is =   2.306647694567821E+017
 Sum of c is =   3.075530259436257E+017
% exit
% 
script done on Tue Mar  2 08:17:29 1999

From henning@perfom.zko.dec.com  Wed May 26 07:15:36 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/960327.SGI.AUTOCF) via ESMTP id HAA69179 for <MCCALPIN@frakir.engr.sgi.com>; Wed, 26 May 1999 07:15:25 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id HAA95703
	for <MCCALPIN@frakir.engr.sgi.com>;
	Wed, 26 May 1999 07:15:24 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from mail13.digital.com (mail13.digital.com [192.208.46.30]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id HAA01703
	for <MCCALPIN@frakir.engr.sgi.com>; Wed, 26 May 1999 07:15:21 -0700 (PDT)
	mail_from (henning@perfom.zko.dec.com)
Received: from perfom (perfom.zko.dec.com [16.31.64.90])
	by mail13.digital.com (8.9.2/8.9.2/WV2.0g) with SMTP id KAA00248
	for <MCCALPIN@frakir.engr.sgi.com>; Wed, 26 May 1999 10:15:20 -0400 (EDT)
Date: Wed, 26 May 1999 10:15:04 -0400
Message-Id: <99052610150494@perfom.zko.dec.com>
From: henning@perfom.zko.dec.com (John Henning)
To: MCCALPIN
Subject: AlphaServer DS10
X-VMS-To: MCCALPIN@FRAKIR.ENGR.SGI.COM
X-VMS-Cc: ME
Status: RO

Hi John,

Here's the AlphaServer DS10.  Please add this (and the XP1000, sent
earlier in the week) to your page?

Thanks
   - john

PS. I had encouraged HP to send you results for the N4000.  
    Glad to see they did.  Who was the submitter?


Script started on Fri May 21 12:23:22 1999
% cat tryit.csh
#!/bin/csh
set verbose
unlimit

cat rpcc.c
cc -c rpcc.c

sleep 2

diff stream_d.f_as_at_ftp_site_22may97 tryit.f

sleep 2

f90 -non_shared -fast -O5 -unroll 8 -arch ev6 \
-assume nounderscore rpcc.o tryit.f

sleep 2

./a.out
% ./tryit.csh
unlimit 

cat rpcc.c 
/* rpcc.c j.henning hacked from example by d.grunwald*/

#include <c_asm.h>
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/types.h>
 
static double scale = -1;
static pid_t mypid = -1;
 
/* fix_rpcc adds the two halves of the register (bias & offset), since
   some tools return it w/o this fixup */

unsigned long
fix_rpcc(unsigned long rpcc)
{
    unsigned long fixed;
    unsigned long offset = (rpcc >> 32) & 0xffffffff;
    unsigned long cycles = (rpcc & 0xffffffff);
    fixed = (unsigned long) offset + (unsigned long) cycles;
    /* printf ("%8lx %8lx %8lx ", offset, cycles, fixed); */
    return fixed; 
}
 
/* Compute time in *seconds* (note that Grunwald's original version
   did microseconds) given two fixedup RPCCs */

double
rpcc_delta(unsigned long ul_start, unsigned long ul_stop)
{
    double retval;
 
    if ( scale == -1 ) {
	  int         err;
	  double freq;
	  struct cpu_info cpubuf ;
 
	  err = getsysinfo(GSI_CPU_INFO, &cpubuf, sizeof(cpubuf));
          /*printf ("err= %d freq = %d current_cpu = %d\n", 
               err, cpubuf.mhz, cpubuf.current_cpu);*/
	  if (err < 0) {
	      freq = 300;
	  } else {
	      freq = cpubuf.mhz;
	  }
          freq *= 1000000;
	  /*
	   * Scale is the 1 over the clock frequency
	   */
	  scale = 1/(double) freq;
    }
 
    if (ul_stop < ul_start) {
        retval = ((0xffffffff - ul_start) + ul_stop) * scale;
        }
    else {
        retval = (ul_stop - ul_start) * scale;
        }

    /* printf ("%f\n", retval); */
 
    return retval;
}
 
unsigned long
fixed_rpcc(void)
{
  unsigned long i;

  i = asm("rpcc %v0");
  return fix_rpcc(i);
}
 
 
cc -c rpcc.c 

sleep 2 

diff stream_d.f_as_at_ftp_site_22may97 tryit.f 
53c53,54
<       PARAMETER (n=2000000,offset=0,ndim=n+offset,ntimes=10)
---
>       PARAMETER (n = 1000063 ,offset=0)
>       PARAMETER (ndim=n+offset,ntimes=10)
334a336,359
>       END
> 
>       DOUBLE PRECISION FUNCTION SECOND
> *
> *     Assume we will be called often enough so that rpcc counter
> *     doesn't overflow!
> *
>       INTEGER*8 TICK, PREV_TICK
>       DOUBLE PRECISION RPCC_DELTA, PREV_SEC 
>       INTEGER*8 FIXED_RPCC 
>       EXTERNAL FIXED_RPCC, RPCC_DELTA
> 
>       DATA PREV_TICK /0/
> 
>       TICK = FIXED_RPCC()
>       IF (PREV_TICK .EQ. 0) THEN
>            SECOND = 0D0
>       ELSE
>            SECOND = PREV_SEC + RPCC_DELTA (%VAL(PREV_TICK), %VAL(TICK))
>       END IF
> 
>       PREV_SEC = SECOND
>       PREV_TICK   =  TICK
>       RETURN

sleep 2 

f90 -non_shared -fast -O5 -unroll 8 -arch ev6 -assume nounderscore rpcc.o tryit.f 

sleep 2 

./a.out 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1000063
 Offset     =          0
 The total memory requirement is   22 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of        16817  microseconds
    (=        16817  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        881.1317      0.0185      0.0182      0.0197
Scale:       929.8878      0.0174      0.0172      0.0174
Add:         839.8763      0.0289      0.0286      0.0290
Triad:       900.9164      0.0268      0.0266      0.0279
 Sum of a is =   1.153373439229264E+018
 Sum of b is =   2.306746878435012E+017
 Sum of c is =   3.075662504592511E+017
% exit
% 
script done on Fri May 21 12:23:43 1999

From Brian.Whitney@West.Sun.COM  Fri Jun 11 15:50:36 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/980728.SGI.AUTOCF) via ESMTP id PAA07389 for <mccalpin@frakir.engr.sgi.com>; Fri, 11 Jun 1999 15:50:35 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id PAA42576
	for <mccalpin@frakir.engr.sgi.com>;
	Fri, 11 Jun 1999 15:50:34 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id PAA05191
	for <mccalpin@frakir.engr.sgi.com>; Fri, 11 Jun 1999 15:50:25 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from westmail2.West.Sun.COM ([129.153.100.30])
	by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id PAA07966
	for <mccalpin@frakir.engr.sgi.com>; Fri, 11 Jun 1999 15:50:20 -0700 (PDT)
Received: from oregon.West.Sun.COM (oregon.West.Sun.COM [129.153.37.10])
	by westmail2.West.Sun.COM (8.9.1b+Sun/8.9.1/ENSMAIL,v1.6) with SMTP id PAA11567
	for <mccalpin@frakir.engr.sgi.com>; Fri, 11 Jun 1999 15:50:18 -0700 (PDT)
Received: from sailfish by oregon.West.Sun.COM (SMI-8.6/SMI-SVR4)
	id PAA09872; Fri, 11 Jun 1999 15:50:18 -0700
Message-Id: <199906112250.PAA09872@oregon.West.Sun.COM>
Date: Fri, 11 Jun 1999 15:50:18 -0700 (PDT)
From: Brian Whitney <Brian.Whitney@West.Sun.COM>
Reply-To: Brian Whitney <Brian.Whitney@West.Sun.COM>
Subject: Stream Results - Sun E10000
To: mccalpin
Cc: Brian.Whitney@West.Sun.COM
MIME-Version: 1.0
Content-Type: MULTIPART/mixed; BOUNDARY=Family_of_Sardines_330_000
X-Mailer: dtmail 1.3.0 CDE Version 1.3 SunOS 5.7 sun4u sparc 
Status: RO

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: cVQFHksMZKIb3sV8GWsjfQ==

Dear Dr. McCalpin,

Please find attached STREAM runs on the Sun Enterprise 10000.

I modified the code to flush the cache between kernels.  Without 
this modification, the results were faster than the interconnect
supports, because of caching.  The copy results are faster
than the other three because of a compiler flag which allows 
us to bypass the cache, allowing for faster bcopy performance.

I have made a family of runs, a set on a 16 board system, a set
on a 12 board system and a set on an 8 board system.  Results
are reported for 1, 16, 32, 48, and 64 CPUs (as appropriate). 
File names are

  mod.stream.NNonB
  
where

  NN is the number of cpus used 
  B is the number of boards in the system.
  
Each board has 4 GBs of memory on it, 4 400 MHz, 8MB l2$ UltraSPARC II
cpus.

Thanks,
Brian

Brian Whitney                      Sun Microsystems, Inc.
Strategic Applications Engineering 8300 SW Creekside Pl.
office: (503) 520-7616             Beaverton, OR  97008
fax:    (503) 520-7724             e-mail:  Brian.Whitney@west.sun.com    
    

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.1on16"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.1on16
Content-MD5: s4yG+2+VgjjyhJxjXdblIA==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 31602
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   3453153 microseconds
    (=   3453153 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        364.1918      2.2020      2.1966      2.2072
Scale:       215.3819      3.7150      3.7143      3.7160
Add:         287.4328      4.1755      4.1749      4.1763
Triad:       296.0569      4.0539      4.0533      4.0557
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.16on16"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.16on16
Content-MD5: 4Jv/AkDTV0BXRjKteWVYuA==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 24002
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   234538 microseconds
    (=   234538 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       4925.4124      0.1629      0.1624      0.1648
Scale:      3030.9344      0.2643      0.2639      0.2646
Add:        3703.3682      0.3244      0.3240      0.3247
Triad:      3661.7034      0.3279      0.3277      0.3283
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 


--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.32on16"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.32on16
Content-MD5: QwOOLOlES7WsaKpy2UAE8A==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 16102
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   124946 microseconds
    (=   124946 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       9053.1679      0.0892      0.0884      0.0931
Scale:      5176.1229      0.1548      0.1546      0.1549
Add:        6260.2872      0.1919      0.1917      0.1922
Triad:      6301.5355      0.1905      0.1904      0.1906
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 


--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.48on16"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.48on16
Content-MD5: js05ssCIHGsPylQjXc/7HQ==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 8002
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   70413 microseconds
    (=   70413 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:      12056.9571      0.0672      0.0664      0.0731
Scale:      6356.9620      0.1262      0.1258      0.1266
Add:        7658.5054      0.1570      0.1567      0.1576
Triad:      7572.8558      0.1587      0.1585      0.1590
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 


--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.64on16"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.64on16
Content-MD5: BWHH2E4LuDuEZyaO1JsT5A==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 102
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   231511 microseconds
    (=   231511 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:      12430.3516      0.0721      0.0644      0.1157
Scale:      7222.7912      0.1223      0.1108      0.1557
Add:        8202.1488      0.1474      0.1463      0.1481
Triad:      7607.8306      0.1660      0.1577      0.2003
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.1on12"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.1on12
Content-MD5: a5vTHstwR/YCOggLxn7iKw==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 23501
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   3448896 microseconds
    (=   3448896 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        362.3409      2.2154      2.2079      2.2196
Scale:       215.8045      3.7080      3.7071      3.7092
Add:         288.2899      4.1637      4.1625      4.1651
Triad:       296.1738      4.0525      4.0517      4.0532
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.16on12"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.16on12
Content-MD5: uDpPl6aZzEBhXkE2/3BHaw==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 16001
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   235383 microseconds
    (=   235383 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       5181.8820      0.1547      0.1544      0.1563
Scale:      2976.4744      0.2690      0.2688      0.2693
Add:        3655.5044      0.3286      0.3283      0.3292
Triad:      3696.3705      0.3249      0.3246      0.3251
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.32on12"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.32on12
Content-MD5: MvyqpW/8XUpsnLaVq+Sxnw==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 8001
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   128476 microseconds
    (=   128476 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       8474.0441      0.0947      0.0944      0.0966
Scale:      4746.2450      0.1781      0.1686      0.2459
Add:        5726.7007      0.2097      0.2095      0.2100
Triad:      5770.7797      0.2080      0.2079      0.2082
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.48on12"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.48on12
Content-MD5: Xd3R1sEVAPvpm785WqJuYw==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 1
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   89427 microseconds
    (=   89427 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:      10536.3358      0.0770      0.0759      0.0831
Scale:      4950.2602      0.1647      0.1616      0.1847
Add:        6336.5245      0.1895      0.1894      0.1897
Triad:      5940.5107      0.2023      0.2020      0.2026
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.1on8"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.1on8
Content-MD5: L9I+VdLHslOUOKq8IkqxbA==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 15501
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   3445439 microseconds
    (=   3445439 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        362.2980      2.2103      2.2081      2.2120
Scale:       215.9640      3.7059      3.7043      3.7067
Add:         288.7717      4.1566      4.1555      4.1575
Triad:       296.4783      4.0490      4.0475      4.0507
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.16on8"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.16on8
Content-MD5: 1KfD3wfrOFMqlt99PrLg2Q==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 8001
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   245438 microseconds
    (=   245438 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       4892.7287      0.1639      0.1635      0.1652
Scale:      2885.0024      0.2775      0.2773      0.2777
Add:        3465.8932      0.3464      0.3462      0.3466
Triad:      3445.9909      0.3484      0.3482      0.3486
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 


--Family_of_Sardines_330_000
Content-Type: TEXT/plain; name="mod.stream.32on8"; charset=us-ascii; x-unix-mode=0644
Content-Description: mod.stream.32on8
Content-MD5: ah+dLje+IUk1mLrRaaqdVA==

shmget status: Error 0
shmat status: Error 0
shmctl to destroy the block: Error 0
Value of shared_memory_key: 1
Got memory at 9e800000
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =   50000000
 Offset     =          0
 The total memory requirement is  1144 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   166871 microseconds
    (=   166871 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       6932.9629      0.1190      0.1154      0.1423
Scale:      3556.5623      0.2327      0.2249      0.2468
Add:        4312.7981      0.2915      0.2782      0.3188
Triad:      4031.9559      0.3077      0.2976      0.3217
 Sum of a is =     5.7665039122923D+19
 Sum of b is =     1.1533007808505D+19
 Sum of c is =     1.5377343764968D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Family_of_Sardines_330_000--

From John@McCalpin.com  Mon Jun 21 08:49:45 1999
Received: from mccloud.engr.sgi.com (mccloud.engr.sgi.com [192.48.196.40]) by frakir.engr.sgi.com (980427.SGI.8.8.8/980728.SGI.AUTOCF) via ESMTP id IAA06598 for <mccalpin@frakir.engr.sgi.com>; Mon, 21 Jun 1999 08:49:44 -0700 (PDT)
Received: (from guest@localhost)
	by mccloud.engr.sgi.com (8.8.7/8.8.7) id JAA28228
	for mccalpin@frakir.engr.sgi.com; Mon, 21 Jun 1999 09:50:37 -0700
Date: Mon, 21 Jun 1999 09:50:37 -0700
From: John McCalpin <john@mccalpin.com>
Message-Id: <199906211650.JAA28228@mccloud.engr.sgi.com>
To: mccalpin
Subject: STREAM on cloudburst
Status: RO

[guest@mccloud ~/STREAM]$ more LOG.0020
a 0x804a980
b 0x87ebc20
c 0x8f8cec0
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 20
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 3 microseconds.
Each test below will take on the order of 38929 microseconds.
   (= 12976 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         339.4937       0.0475       0.0471       0.0503
Scale:        325.9317       0.0491       0.0491       0.0492
Add:          368.8960       0.0651       0.0651       0.0652
Triad:        374.4734       0.0642       0.0641       0.0642

From Brian.Whitney@West.Sun.COM  Fri Jun 18 09:05:43 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/980728.SGI.AUTOCF) via ESMTP id JAA12200 for <mccalpin@frakir.engr.sgi.com>; Fri, 18 Jun 1999 09:05:43 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id JAA53967
	for <mccalpin@frakir.engr.sgi.com>;
	Fri, 18 Jun 1999 09:05:42 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id JAA05139
	for <mccalpin@frakir.engr.sgi.com>; Fri, 18 Jun 1999 09:05:40 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from westmail2.West.Sun.COM ([129.153.100.30])
	by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id JAA18585
	for <mccalpin@frakir.engr.sgi.com>; Fri, 18 Jun 1999 09:05:39 -0700 (PDT)
Received: from oregon.West.Sun.COM (oregon.West.Sun.COM [129.153.37.10])
	by westmail2.West.Sun.COM (8.9.1b+Sun/8.9.1/ENSMAIL,v1.6) with SMTP id JAA19145
	for <mccalpin@frakir.engr.sgi.com>; Fri, 18 Jun 1999 09:05:37 -0700 (PDT)
Received: from sailfish by oregon.West.Sun.COM (SMI-8.6/SMI-SVR4)
	id JAA28559; Fri, 18 Jun 1999 09:05:38 -0700
Message-Id: <199906181605.JAA28559@oregon.West.Sun.COM>
Date: Fri, 18 Jun 1999 09:05:38 -0700 (PDT)
From: Brian Whitney <Brian.Whitney@West.Sun.COM>
Reply-To: Brian Whitney <Brian.Whitney@West.Sun.COM>
Subject: Re:  Stream Results - Sun E10000
To: mccalpin
Cc: Brian.Whitney@West.Sun.COM
MIME-Version: 1.0
Content-Type: MULTIPART/mixed; BOUNDARY=Yoke_of_Oxen_967_000
X-Mailer: dtmail 1.3.0 CDE Version 1.3 SunOS 5.7 sun4u sparc 
Status: RO

--Yoke_of_Oxen_967_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: otrfKUWcCjKb2NH9DXNOiA==

Dr McCalpin...

I have rerun things in 64-bit mode for 64, 48, 32, and 16 CPUs.
I did 5 runs per CPU config.  Attached are the logs.  The array size is
300,000,000.  This is 4.6M array elements per processor, or 36.8MB
array per processor.  This should be large enough (correct?).  All
runs are on a full system, just less CPUs.

Results track pretty well from what I submitted before, but these are
a bit higher in general.

As far as the presentation of you table, it would be good to have
translations of the machine name to a bit more detail.  I just
need a way to translate the listed name to what a particular company 
offerred.

The names of the attached files should be pretty self explanatory, but

pstx2-64.logx16.400x8.64   64 processor results
pstx2-64.logx16.400x8.48   48 processor results
pstx2-64.logx16.400x8.32   32 processor results
pstx2-64.logx16.400x8.16   16 processor results

keeper@sae3:/home/keeper% 201) sys
sae3   06/18/99   09:00:05   SunOS 5.7 Generic_106541-02   sun4u
400/100 MHz   64 CPUs   8 MB E$   64.00 GB memory   SUNW,Ultra-Enterprise-10000
keeper@sae3:/home/keeper% 202) 


Brian

--Yoke_of_Oxen_967_000
Content-Type: TEXT/plain; name="pstx2-64.logx16.400x8.64"; charset=us-ascii; x-unix-mode=0644
Content-Description: pstx2-64.logx16.400x8.64
Content-MD5: aPAwm7WadGOy1ApH1VthvQ==

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   596697 microseconds
    (=   596697 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12141.5503        0.4165        0.3953        0.4814
Scale:        7970.4096        0.6312        0.6022        0.6602
Add:          8599.0450        0.8534        0.8373        0.8617
Triad:        8600.4443        0.8726        0.8372        0.8786
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   595651 microseconds
    (=   595651 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12130.0444        0.4414        0.3957        0.6169
Scale:        7958.3941        0.6284        0.6031        0.6484
Add:          8599.2201        0.8521        0.8373        0.8739
Triad:        8630.3129        0.8726        0.8343        0.8958
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   579513 microseconds
    (=   579513 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12167.0028        0.4196        0.3945        0.5000
Scale:        7970.0226        0.6201        0.6023        0.6277
Add:          8605.7956        0.8408        0.8366        0.8469
Triad:        8616.0746        0.8604        0.8356        0.8677
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   597482 microseconds
    (=   597482 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12132.9098        0.4200        0.3956        0.4814
Scale:        7966.3353        0.6192        0.6025        0.6306
Add:          8472.3587        0.8530        0.8498        0.8620
Triad:        8613.7797        0.8651        0.8359        0.8741
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   581655 microseconds
    (=   581655 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12159.9570        0.4243        0.3947        0.5513
Scale:        7977.7957        0.6290        0.6017        0.6637
Add:          8610.8937        0.8489        0.8362        0.8539
Triad:        8251.6698        0.8734        0.8726        0.8741
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Yoke_of_Oxen_967_000
Content-Type: TEXT/plain; name="pstx2-64.logx16.400x8.48"; charset=us-ascii; x-unix-mode=0644
Content-Description: pstx2-64.logx16.400x8.48
Content-MD5: KjLg9ZbkIFGqALhj10YXxQ==

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   599304 microseconds
    (=   599304 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        11577.5532        0.4209        0.4146        0.4680
Scale:        7353.7291        0.6549        0.6527        0.6694
Add:          7789.0422        0.9253        0.9244        0.9274
Triad:        7201.2731        1.0018        0.9998        1.0027
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   600044 microseconds
    (=   600044 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        11729.9561        0.4144        0.4092        0.4155
Scale:        7395.0202        0.6515        0.6491        0.6678
Add:          7823.1004        0.9209        0.9204        0.9219
Triad:        7229.6332        0.9965        0.9959        0.9975
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   599581 microseconds
    (=   599581 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        11595.9554        0.4250        0.4139        0.5069
Scale:        7415.4925        0.6500        0.6473        0.6657
Add:          7840.7754        0.9189        0.9183        0.9195
Triad:        7238.2820        0.9956        0.9947        0.9964
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   600269 microseconds
    (=   600269 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        11610.4149        0.4328        0.4134        0.5741
Scale:        7479.3262        0.6480        0.6418        0.6954
Add:          7862.3724        0.9164        0.9158        0.9169
Triad:        7274.7876        0.9904        0.9897        0.9909
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   599749 microseconds
    (=   599749 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        11599.4181        0.4229        0.4138        0.4933
Scale:        7477.0253        0.6449        0.6420        0.6606
Add:          7840.6027        0.9189        0.9183        0.9203
Triad:        7306.8919        0.9860        0.9854        0.9868
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Yoke_of_Oxen_967_000
Content-Type: TEXT/plain; name="pstx2-64.logx16.400x8.32"; charset=us-ascii; x-unix-mode=0644
Content-Description: pstx2-64.logx16.400x8.32
Content-MD5: 0OWFR5aKoLArP6XxYzCpRw==

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   780404 microseconds
    (=   780404 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         9367.4950        0.5307        0.5124        0.6678
Scale:        5874.4214        0.8187        0.8171        0.8261
Add:          6068.6759        1.1876        1.1864        1.1885
Triad:        5176.2323        1.3918        1.3910        1.3928
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   781327 microseconds
    (=   781327 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         9362.0170        0.5134        0.5127        0.5140
Scale:        5872.6900        0.8187        0.8173        0.8272
Add:          6066.3548        1.1878        1.1869        1.1885
Triad:        5174.4295        1.3922        1.3915        1.3934
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   780310 microseconds
    (=   780310 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         9382.2079        0.5224        0.5116        0.6046
Scale:        5878.0314        0.8178        0.8166        0.8247
Add:          6073.9815        1.1861        1.1854        1.1870
Triad:        5175.0300        1.3920        1.3913        1.3931
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   780756 microseconds
    (=   780756 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         9447.7536        0.5272        0.5081        0.6665
Scale:        5902.1595        0.8144        0.8133        0.8209
Add:          6096.9868        1.1818        1.1809        1.1825
Triad:        5179.7939        1.3907        1.3900        1.3912
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   780661 microseconds
    (=   780661 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         9457.4364        0.5110        0.5075        0.5116
Scale:        5898.7208        0.8154        0.8137        0.8229
Add:          6088.9977        1.1833        1.1825        1.1840
Triad:        5175.8864        1.3916        1.3911        1.3923
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Yoke_of_Oxen_967_000
Content-Type: TEXT/plain; name="pstx2-64.logx16.400x8.16"; charset=us-ascii; x-unix-mode=0644
Content-Description: pstx2-64.logx16.400x8.16
Content-MD5: vhxZkncx390T9JiP2FILLQ==

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   1423088 microseconds
    (=   1423088 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         5415.7614        0.8872        0.8863        0.8914
Scale:        3489.8197        1.3760        1.3754        1.3776
Add:          3581.2702        2.0126        2.0105        2.0216
Triad:        2788.4158        2.5837        2.5821        2.5846
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   1420296 microseconds
    (=   1420296 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         5427.8851        0.8868        0.8843        0.8899
Scale:        3479.8422        1.3805        1.3794        1.3834
Add:          3560.7318        2.0231        2.0221        2.0242
Triad:        2786.9876        2.5845        2.5834        2.5853
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   1422022 microseconds
    (=   1422022 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         5417.5998        0.8906        0.8860        0.9264
Scale:        3497.1673        1.3732        1.3725        1.3743
Add:          3593.3089        2.0056        2.0037        2.0117
Triad:        2790.1061        2.5825        2.5805        2.5836
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   1420779 microseconds
    (=   1420779 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         5385.5530        0.8929        0.8913        0.9047
Scale:        3468.2695        1.3848        1.3840        1.3862
Add:          3552.4322        2.0277        2.0268        2.0285
Triad:        2781.6282        2.5892        2.5884        2.5902
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   1422451 microseconds
    (=   1422451 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:         5426.0808        0.8864        0.8846        0.8881
Scale:        3492.3740        1.3755        1.3744        1.3764
Add:          3579.7885        2.0130        2.0113        2.0185
Triad:        2788.6280        2.5829        2.5819        2.5837
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

--Yoke_of_Oxen_967_000--

From Brian.Whitney@West.Sun.COM  Wed Jun 16 15:54:51 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/980728.SGI.AUTOCF) via ESMTP id PAA08479 for <mccalpin@frakir.engr.sgi.com>; Wed, 16 Jun 1999 15:54:51 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id PAA30980
	for <mccalpin@frakir.engr.sgi.com>;
	Wed, 16 Jun 1999 15:54:50 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1]) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id PAA09185
	for <mccalpin@frakir.engr.sgi.com>; Wed, 16 Jun 1999 15:54:49 -0700 (PDT)
	mail_from (Brian.Whitney@West.Sun.COM)
Received: from westmail2.West.Sun.COM ([129.153.100.30])
	by mercury.Sun.COM (8.9.3+Sun/8.9.3) with ESMTP id PAA16680
	for <mccalpin@frakir.engr.sgi.com>; Wed, 16 Jun 1999 15:54:48 -0700 (PDT)
Received: from oregon.West.Sun.COM (oregon.West.Sun.COM [129.153.37.10])
	by westmail2.West.Sun.COM (8.9.1b+Sun/8.9.1/ENSMAIL,v1.6) with SMTP id PAA28896
	for <mccalpin@frakir.engr.sgi.com>; Wed, 16 Jun 1999 15:54:47 -0700 (PDT)
Received: from sailfish by oregon.West.Sun.COM (SMI-8.6/SMI-SVR4)
	id PAA11108; Wed, 16 Jun 1999 15:54:47 -0700
Message-Id: <199906162254.PAA11108@oregon.West.Sun.COM>
Date: Wed, 16 Jun 1999 15:54:47 -0700 (PDT)
From: Brian Whitney <Brian.Whitney@West.Sun.COM>
Reply-To: Brian Whitney <Brian.Whitney@West.Sun.COM>
Subject: Re:  Stream Results - Sun E10000
To: mccalpin
MIME-Version: 1.0
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: lop+r9Zy2gBr5jVxCjJDyA==
X-Mailer: dtmail 1.3.0 CDE Version 1.3 SunOS 5.7 sun4u sparc 
X-Zm-Priority: Medium
Status: RO

Ran a slightly larger data set size (yes, 300,000,000)...

I think I like these results, they are making more sense.  Now
to see if smaller size make sense...

Brian



keeper@sae3:/home/keeper/stream% 208) setenv PARALLEL 64
keeper@sae3:/home/keeper/stream% 209) pstx2-64
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =  300000000
 Offset     =          0
 The total memory requirement is  6866 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity appears to be less than one microsecond
 Your clock granularity/precision appears to be      1 microseconds
 The tests below will each take a time on the order 
 of   605053 microseconds
    (=   605053 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        12071.9246        0.4192        0.3976        0.4464
Scale:        7967.1486        0.6185        0.6025        0.6578
Add:          8497.6855        0.8515        0.8473        0.8592
Triad:        8590.0299        0.8652        0.8382        0.8755
 Sum of a is =     3.4599023433963D+20
 Sum of b is =     6.9198046533463D+19
 Sum of c is =     9.2264062741574D+19
 Note: Nonstandard floating-point mode enabled 
 See the Numerical Computation Guide, ieee_sun(3M) 

From Daniel.S.Katz@jpl.nasa.gov  Fri Jun 25 13:59:25 1999
Received: from cthulhu.engr.sgi.com (cthulhu.engr.sgi.com [192.26.80.2]) by frakir.engr.sgi.com (980427.SGI.8.8.8/980728.SGI.AUTOCF) via ESMTP id NAA15867 for <mccalpin@frakir.engr.sgi.com>; Fri, 25 Jun 1999 13:59:23 -0700 (PDT)
Received: from sgi.com (sgi.engr.sgi.com [192.26.80.37])
	by cthulhu.engr.sgi.com (980427.SGI.8.8.8/970903.SGI.AUTOCF)
	via ESMTP id NAA97871
	for <mccalpin@engr.sgi.com>;
	Fri, 25 Jun 1999 13:59:22 -0700 (PDT)
	mail_from (Daniel.S.Katz@jpl.nasa.gov)
Received: from ares.cs.Virginia.EDU (ares.cs.Virginia.EDU [128.143.136.41] (may be forged)) 
	by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam:
       SGI does not authorize the use of its proprietary
       systems or networks for unsolicited or bulk email
       from the Internet.) 
	via ESMTP id NAA09060
	for <mccalpin@sgi.com>; Fri, 25 Jun 1999 13:59:20 -0700 (PDT)
	mail_from (Daniel.S.Katz@jpl.nasa.gov)
Received: from eis-msg-014.jpl.nasa.gov (eis-msg-014.jpl.nasa.gov [137.78.160.189])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id QAA21880
	for <mccalpin@cs.virginia.edu>; Fri, 25 Jun 1999 16:59:18 -0400 (EDT)
Received: from jpl.nasa.gov (kangaroo.jpl.nasa.gov [137.78.73.151])
	by eis-msg-014.jpl.nasa.gov (8.8.5/8.8.5) with ESMTP id NAA25417
	for <mccalpin@cs.virginia.edu>; Fri, 25 Jun 1999 13:59:46 -0700 (PDT)
Message-ID: <3773ED66.5C9394D9@jpl.nasa.gov>
Date: Fri, 25 Jun 1999 13:58:15 -0700
From: "Daniel S. Katz" <Daniel.S.Katz@jpl.nasa.gov>
Reply-To: Daniel.S.Katz@jpl.nasa.gov
Organization: Jet Propulsion Laboratory
X-Mailer: Mozilla 4.61 (Macintosh; U; PPC)
X-Accept-Language: en
MIME-Version: 1.0
To: mccalpin@cs.virginia.edu
Subject: STREAM results - Mac G3-400
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Status: RO

Hi,

I ran the benchmarks on my Mac G3-400 laptop:

PPC BASE.out:
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 400000, Offset = 0
Total memory required = 9.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 17 microseconds.
Each test below will take on the order of 28143 microseconds.
   (= 1655 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         125.6577       0.0513       0.0509       0.0528
Scale:        123.0485       0.0522       0.0520       0.0525
Add:          129.5651       0.0749       0.0741       0.0758
Triad:        129.4987       0.0745       0.0741       0.0748

PPC UNROLL.out:

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 400000, Offset = 0
Total memory required = 9.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 17 microseconds.
Each test below will take on the order of 28381 microseconds.
   (= 1669 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         125.5714       0.0516       0.0510       0.0537
Scale:        125.0464       0.0519       0.0512       0.0549
Add:          130.6958       0.0747       0.0735       0.0777
Triad:        129.5634       0.0753       0.0741       0.0779

PPC601 OPT.out:
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 400000, Offset = 0
Total memory required = 9.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 16 microseconds.
Each test below will take on the order of 28254 microseconds.
   (= 1765 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         151.5439       0.0427       0.0422       0.0436
Scale:        140.7305       0.0461       0.0455       0.0471
Add:          141.1848       0.0683       0.0680       0.0691
Triad:        138.2887       0.0697       0.0694       0.0706

PPC604 OPT.out:
-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 400000, Offset = 0
Total memory required = 9.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 17 microseconds.
Each test below will take on the order of 28644 microseconds.
   (= 1684 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time    Max time
Copy:         148.9758       0.0434       0.0430       0.0447
Scale:        145.2795       0.0447       0.0441       0.0455
Add:          148.4666       0.0650       0.0647       0.0659
Triad:        144.6480       0.0666       0.0664       0.0668

From fjohn@us.ibm.com Mon Sep 27 11:16:17 1999
X-Lotus-FromDomain: IBMUS
To: mccalpin@austin.ibm.com
Message-ID: <85256823.00724389.00@d54mta05.raleigh.ibm.com>
From: Frank Johnston <fjohn@us.ibm.com>
Date: Mon, 27 Sep 1999 11:16:01 -0500
Subject: STREAM on Power3smp
Mime-Version: 1.0
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
Status: RO




To whom it may concern,

I would like to submit STREAM benchmark results for an
IBM RS/6000 SP 222 MHz POWER3smp. Please add the following
summary to the web page of standard STREAM results:

Machine ID                   npus  COPY   SCALE  ADD    TRIAD
IBM-SP_222MHz-POWER3smp       1    790.4  794.1  951.0  953.3
IBM-SP_222MHz-POWER3smp       2   1549.2 1524.4 1843.5 1844.5
IBM-SP_222MHz-POWER3smp       4   2677.0 2630.9 3091.3 3101.2
IBM-SP_222MHz-POWER3smp       8   4332.9 4211.4 4843.3 4937.8

Each CPU on this machine has a private 4 MB L2 cache. The array
size at each CPU count exceeds the aggregate available L2. However
the arrays were kept as small as possible in order to give
system tables mapping virtual to real memory a chance to reside in
the L2. When data in these tables comes from main memory,
there is additional memory traffic which STREAM does not count.

In addition to changing the array size and offset, the following
changes were made to the Fortran STREAM code:

1) Increase "ntimes" to 1000 in order to reduce run-to-run fluctuations.

2) Change the "scalar" constant to sqrt(2) - 1 to prevent overflows (INFs).

3) Add compiler directives to allow the code to run in parallel on multiple
   CPUs and to allow certain arrays to be "prefetched" by the hardware.
   Here is an example (the COPY loop):

!smp$ parallel do private(j) , schedule(static)
          DO 30 j = 1,n
!ibm*   prefetch_by_load( c(j) )
              c(j) = a(j)
   30     CONTINUE

If you have any questions, please let me know.

Frank Johnston
(fjohn@us.ibm.com, xxx-xxx-xxxx)

P.S. Here are the actual outputs:

output for 1 CPU:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =     524300
 Offset     =        330
 The total memory requirement is   12 MB
 You are running each test 1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  8259  microseconds
    (=  1652  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        790.4472       .0107       .0106       .0116
Scale:       794.1492       .0106       .0106       .0109
Add:         951.0364       .0133       .0132       .0144
Triad:       953.3298       .0133       .0132       .0137
 Sum of a is =  1048600.00000001118
 Sum of b is =  434344.341503158561
 Sum of c is =  1482944.34150735638

output for 2 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1048600
 Offset     =        404
 The total memory requirement is   24 MB
 You are running each test  1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  15856  microseconds
    (=  3171  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       1549.2400       .0109       .0108       .0201
Scale:      1524.3722       .0111       .0110       .0120
Add:        1843.4750       .0137       .0137       .0147
Triad:      1844.5380       .0137       .0136       .0143
 Sum of a is =  2097200.00000001118
 Sum of b is =  868688.683004021645
 Sum of c is =  2965888.68302347837

output for 4 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    2097200
 Offset     =        260
 The total memory requirement is   48 MB
 You are running each test  1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  32019  microseconds
    (=  6404  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       2676.9512       .0133       .0125       .0329
Scale:      2630.9133       .0133       .0128       .0229
Add:        3091.3001       .0169       .0163       .0181
Triad:      3101.2452       .0168       .0162       .0180
 Sum of a is =  4194400.00000001118
 Sum of b is =  1737377.36602994637
 Sum of c is =  5931777.36605572235

output for 8 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    4194400
 Offset     =        468
 The total memory requirement is   96 MB
 You are running each test  1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  64196  microseconds
    (=  12839  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       4332.9165       .0166       .0155       .0576
Scale:      4211.3665       .0170       .0159       .0588
Add:        4843.2744       .0217       .0208       .0607
Triad:      4937.7796       .0213       .0204       .0486
 Sum of a is =  8388800.00000001118
 Sum of b is =  3474754.73209443502
 Sum of c is =  11863554.7321202103




From fjohn@us.ibm.com Tue Oct 12 16:49:16 1999
X-Lotus-FromDomain: IBMUS
To: mccalpin@austin.ibm.com
From: Frank Johnston <fjohn@us.ibm.com>
Message-ID: <85256823.0072A381.00@d54mta05.raleigh.ibm.com>
Date: Tue, 12 Oct 1999 16:49:16 -0500
Subject: STREAM (base) on POWER3smp
Status: RO


From: Frank Johnston on 10/12/99 04:49 PM
To:   John D Mccalpin/Austin/IBM@IBMUS

John,

Here are STREAM results without the compiler directive for a
Nighthawk1 (IBM RS/6000 SP 222 MHz POWER3smp).

Would it be possible to publish both these and the results
obtained with the directive on the table of "Standard Results",
using slightly different machine IDs? I still believe that use
of a simple Fortran compiler directive is much closer in spirit
to the "Standard Results", than "Experimental Results" obtained
with hand-coded assembler.

Machine ID                   npus  COPY   SCALE  ADD    TRIAD
IBM-SP_222MHz-POWER3smp       1    413.0  421.2  587.4  614.2
IBM-SP_222MHz-POWER3smp       2    820.7  800.4 1182.1 1165.4
IBM-SP_222MHz-POWER3smp       4   1603.5 1535.9 2218.3 2187.5
IBM-SP_222MHz-POWER3smp       8   2954.1 2821.0 3889.0 3872.2

Frank Johnston

output for 1 CPU:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =     524300
 Offset     =        260
 The total memory requirement is   12 MB
 You are running each test 1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  8319  microseconds
    (=  1664  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        412.9788       .0204       .0203       .0213
Scale:       421.1776       .0200       .0199       .0210
Add:         587.4248       .0216       .0214       .0226
Triad:       614.2449       .0205       .0205       .0216
 Sum of a is =  1048600.00000001118
 Sum of b is =  434344.341503158561
 Sum of c is =  1482944.34150735638

output for 2 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    1048600
 Offset     =        360
 The total memory requirement is   24 MB
 You are running each test  750 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  8704  microseconds
    (=  1741  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        820.6599       .0205       .0204       .0217
Scale:       800.4499       .0210       .0210       .0222
Add:        1182.0659       .0214       .0213       .0226
Triad:      1165.4323       .0217       .0216       .0229
 Sum of a is =  2097200.00000000373
 Sum of b is =  868688.683004021295
 Sum of c is =  2965888.68302347790

output for 4 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    2097200
 Offset     =        272
 The total memory requirement is   48 MB
 You are running each test 1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  11072  microseconds
    (=  2214  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       1603.5355       .0219       .0209       .0232
Scale:      1535.8922       .0225       .0218       .0235
Add:        2218.2522       .0235       .0227       .0249
Triad:      2187.5434       .0236       .0230       .0247
 Sum of a is =  4194400.00000001118
 Sum of b is =  1737377.36602994637
 Sum of c is =  5931777.36605572235

output for 8 CPUs:
----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    4194400
 Offset     =        224
 The total memory requirement is   96 MB
 You are running each test 1000 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be      5 microseconds
 The tests below will each take a time on the order
 of  13120  microseconds
    (=  2624  clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:       2954.0690       .0240       .0227       .0347
Scale:      2820.9498       .0247       .0238       .0724
Add:        3889.0287       .0271       .0259       .0456
Triad:      3872.2120       .0270       .0260       .0612



From jeppesen@mrl.ucsb.edu Thu Oct 14 21:10:42 1999
Message-ID: <0.711fc4b7.25388127@aol.com>
Date: Thu, 14 Oct 1999 21:10:42 -0700
From: Claus Jeppesen <jeppesen@mrl.ucsb.edu>
Subject: athlon
To: mccalpin@austin.ibm.com
MIME-Version: 1.0
Status: RO

Hi John,

A result for your streams table.

Thanx,

Claus Jeppesen

Computer: Polywell 800K7
CPU: 600Mhz AMD K7 (Athlon)
Memory: 256MB PC100 RAM
Compiler: Portland Group - pgf77 -fast streams_d.f

I used the version of second_cpu.f which implies etime(...) - results from
time and streams_d.f :

----------------------------------------------
 Double precision appears to have 16 digits of accuracy
 Assuming 8 bytes per DOUBLE PRECISION word
----------------------------------------------
 Array size =    8000000
 Offset     =          0
 The total memory requirement is  183 MB
 You are running each test  10 times
 The *best* time for each test is used
 ----------------------------------------------------
 Your clock granularity/precision appears to be  10000 microseconds
 The tests below will each take a time on the order 
 of       220000 microseconds
    (=           22 clock ticks)
 Increase the size of the arrays if this shows that
 you are not getting at least 20 clock ticks per test.
 ----------------------------------------------------
 WARNING -- The above is only a rough guideline.
 For best results, please be sure you know the
 precision of your system timer.
 ----------------------------------------------------
Function     Rate (MB/s)  RMS time   Min time  Max time
Copy:        387.8788      0.3390      0.3300      0.3400
Scale:       474.0741      0.2700      0.2700      0.2700
Add:         480.0000      0.4061      0.4000      0.4200
Triad:       468.2927      0.4150      0.4100      0.4200
 Sum of a is =   9.2264062494077470E+018
 Sum of b is =   1.8452812500593927E+018
 Sum of c is =   2.4603749999959350E+018

15.690u 0.870s 0:17.11 96.7%    0+0k 0+0io 103pf+0w

From mason.cabot@intel.com Wed Oct 27 16:03:57 1999
Received: from netmail.austin.ibm.com (netmail.austin.ibm.com [9.53.250.98]) by gmp246.austin.ibm.com (AIX4.3/UCB 8.8.8/8.7-client1.01) with ESMTP id QAA24800 for <mccalpin@gmp246.austin.ibm.com>; Wed, 27 Oct 1999 16:03:55 -0500
Received: from ausmail.austin.ibm.com (am00.austin.ibm.com [9.3.199.19])
        by netmail.austin.ibm.com (8.8.5/8.8.5) with ESMTP id QAA20356
        for <mccalpin@austin.ibm.com>; Wed, 27 Oct 1999 16:03:52 -0500
Received: from thalia.fm.intel.com (thalia.fm.intel.com [132.233.247.11])
	by ausmail.austin.ibm.com (8.9.1/8.8.5) with SMTP id QAA16920
	for <mccalpin@austin.ibm.com>; Wed, 27 Oct 1999 16:05:10 -0500
Received: from fmsmsx27.FM.INTEL.COM (fmsmsx27.fm.intel.com [132.233.42.27])
	by thalia.fm.intel.com (8.9.1a+p1/8.9.1/d: relay.m4,v 1.10 1999/10/20 18:19:05 spurcell Exp $) with ESMTP id RAA26752
	for <mccalpin@austin.ibm.com>; Wed, 27 Oct 1999 17:04:22 GMT
Received: by fmsmsx27.fm.intel.com with Internet Mail Service (5.5.2448.0)
	id <VVTN6X4W>; Wed, 27 Oct 1999 14:03:53 -0700
Message-ID: <438BA6CBABC5D111AC4100A0C96B75B302957EF4@fmsmsx41.fm.intel.com>
From: "Cabot, Mason" <mason.cabot@intel.com>
To: "'mccalpin@austin.ibm.com'" <mccalpin@austin.ibm.com>
Subject: RE: funny BW on 820-based system
Date: Wed, 27 Oct 1999 14:03:50 -0700
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2448.0)
Status: RO

John,

I don't think that there are any issues with the board they are using. There
is a newer BIOS (P04) available for the CC820 board that fixes some things,
but I don't think that these fixes are performance related.

I think the main problem here is that they are using the DOS version of
STREAM rather than recompiling to fit the hardware/OS. For the systems that
are reviewed in this article and the version of STREAM for NT posted on the
web site, I see:

*****i820 CuMine 733/133*****
Copy:         441.9930  
Scale:        438.3188 
Add:          553.0855 
Triad:        544.3054

*****i820 Katmai 600/133*****
Copy:         379.1829   
Scale:        386.3530   
Add:          448.4531  
Triad:        448.3660

*****BX Katmai 600/100*****  
Copy:         342.2239      
Scale:        340.2257   
Add:          411.9562   
Triad:        409.2117    

I've attached the full output from these tests. I haven't sent you any of my
Athlon tests because I need to recompile to optimize for their FPU. Do you
know if the latest versions of GCC optimize for K7?

thanks,
Mason

-----Original Message-----
From: John D. McCalpin, Ph.D. [mailto:mccalpin@austin.ibm.com]
Sent: Wednesday, October 27, 1999 11:46 AM
To: mason.cabot@intel.com
Subject: funny BW on 820-based system


Hi Mason

A hardware review at:
	http://www.aceshardware.com/Spades/read.php?article_id=84
shows funny results for the 733EB+820 system with the Intel motherboard.
Specifically, the 733EB+820 runs 30% slower than the PIII-600/440BX
and more than 30% slower than the 600B+820 on a different vendor's
motherboard.

Are there any config issues that the authors need to be aware of?

-- 
John D. McCalpin, Ph.D.           mccalpin@austin.ibm.com
Senior Scientist                  IBM Future Systems
    "I am willing to make mistakes as long as
     someone else is willing to learn from them."


-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 999936
Total memory required = 24.9 MB.
Each test is run 50 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 37238 microseconds.
   (= 37238 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         342.2239       0.0470       0.0468       0.0519
Scale:        340.2257       0.0472       0.0470       0.0495
Add:          411.9562       0.0585       0.0583       0.0588
Triad:        409.2117       0.0589       0.0586       0.0591

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 999936
Total memory required = 24.9 MB.
Each test is run 50 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 31814 microseconds.
   (= 31814 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         379.1829       0.0424       0.0422       0.0475
Scale:        386.3530       0.0416       0.0414       0.0443
Add:          448.4531       0.0536       0.0535       0.0540
Triad:        448.3660       0.0536       0.0535       0.0540

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 999936
Total memory required = 24.9 MB.
Each test is run 50 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 23162 microseconds.
   (= 23162 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         441.9930       0.0364       0.0362       0.0394
Scale:        438.3188       0.0366       0.0365       0.0382
Add:          553.0855       0.0435       0.0434       0.0437
Triad:        544.3054       0.0442       0.0441       0.0445


From john@mccalpin.com Fri Oct 29 06:39:17 1999
Received: from netmail2.austin.ibm.com (netmail2.austin.ibm.com [9.53.250.97]) by gmp246.austin.ibm.com (AIX4.3/UCB 8.8.8/8.7-client1.01) with ESMTP id GAA45158 for <mccalpin@gmp246.austin.ibm.com>; Fri, 29 Oct 1999 06:39:17 -0500
Received: from ausmail.austin.ibm.com (am00.austin.ibm.com [9.3.199.19])
        by netmail2.austin.ibm.com (8.8.5/8.8.5) with ESMTP id GAA22198
        for <mccalpin@austin.ibm.com>; Fri, 29 Oct 1999 06:39:19 -0500
Received: from Mail.austin.rr.com (sm2.texas.rr.com [24.93.35.55])
	by ausmail.austin.ibm.com (8.9.1/8.8.5) with SMTP id GAA33076
	for <mccalpin@austin.ibm.com>; Fri, 29 Oct 1999 06:40:33 -0500
Received: from austin.rr.com ([24.93.44.235]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1875.185.18);
	 Fri, 29 Oct 1999 06:32:24 -0500
Message-ID: <38198752.143D94F6@austin.rr.com>
Date: Fri, 29 Oct 1999 06:38:58 -0500
From: John McCalpin <john@mccalpin.com>
Reply-To: john@mccalpin.com
X-Mailer: Mozilla 4.08 (Macintosh; I; 68K)
MIME-Version: 1.0
To: mccalpin@austin.ibm.com
Subject: STREAM benchmark for various Macs
Content-Type: multipart/mixed; boundary="------------6AC1080B7408A9EA88878007"
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
Status: RO

This is a multi-part message in MIME format.
--------------6AC1080B7408A9EA88878007
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

http://www.cloudmaster.com/pulsar/stream/
--------------6AC1080B7408A9EA88878007
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Base: "http://www.cloudmaster.com/pulsar/stre
	am/"

<HTML>
<HEAD>
<TITLE>STREAM benchmark for various Macs</TITLE>
</HEAD>
<BODY BGCOLOR=#FEFEFE TEXT=#000011>
<BR>

<P> 
This page lists runs of the <A
HREF="http://www.cs.virginia.edu/stream/">STREAM benchmark</A> for testing
memory bandwidth. The version run on these machines is the "604opt" Mac
executable. If you would like to see the results for the other
executables, just <A HREF="mailto:pulsar@cloudmaster.com">email me</A> and
I'll send them to you. I might put them up on the page, but that'll be
later. 
</P>

<P> 
The PowerBook had MathLibMoto which may or may not have affected the
scores any. Maybe I'll find out if it actualy does have an affect. There
are LinuxPPC scores on the PowerBook as well, but I haven't gotten around
to putting them up yet. I might eventually put up a Dell 233MHz PPro (EDO
66MHz), a 75MHz EDO based 375MHz AMD K6-2 system, and the same system with
100MHz SDRAM too.  
</P>
<P>
I will rearrange the table so it looks better when I get other scores in. 
I just whipped this page up in a few minutes based on the relatively 
few scores I've collected.
</P>

<P>
<SMALL>
<CENTER>
<P>
Test values are in MB/s.
</P>

<TABLE BORDER=3 CELLPADDING=3>
<TR>
	<TD>Machine processor:bus</TD>
	<TD>
		PowerMac G3 400:100MHz
	</TD>
	<TD>
		PowerMac G3 266:66MHz
	</TD>
	<TD>
		PowerBook G3 266:66MHz
	</TD>
	<TD>
		iMac Rev C 266:66MHz
	</TD>
	<TD>
		iMac Rev A 233:66MHz
	</TD>
</TR>
<TR>
	<TD>
		Copy
	</TD>
	<TD>
		233.4914
	</TD>
	<TD>
		146.9103
	</TD>
	<TD>
		132.3599
	</TD>
	<TD>
		138.2230
	</TD>
	<TD>
		137.8894
	</TD>
</TR>
<TR>
	<TD>
		Scale
	</TD>
	<TD>
		222.5236
	</TD>
	<TD>
		143.3756
	</TD>
	<TD>
		126.6549
	</TD>
	<TD>
		138.1573
	</TD>
	<TD>
		135.1665
	</TD>
</TR>
<TR>
	<TD>
		Add
	</TD>
	<TD>
		230.6473
	</TD>
	<TD>
		132.2879
	</TD>
	<TD>
		130.2525
	</TD>
	<TD>
		128.8331
	</TD>
	<TD>
		128.8833
	</TD>
</TR>
<TR>
	<TD>
		Triad
	</TD>		
	<TD>
		212.9736
	</TD>		
	<TD>
		131.5087
	</TD>		
	<TD>
		121.2259
	</TD>		
	<TD>
		126.6056
	</TD>		
	<TD>
		125.6874
	</TD>
</TR>
</TABLE>
</CENTER>
</SMALL>
<BR>&nbsp;<BR>
<HR>
<P>
Send comments, suggestions, and criticisms to <A
HREF="mailto:pulsar@cloudmaster.com"> Ryan
Tokarek</A>
</P>
<CENTER>
<P>
<A HREF="../">Back to my home page.</A>

</P>
<IMG SRC="../macmade.gif" WIDTH=165 HEIGHT=37>
</CENTER>

</BODY>
</HTML>

--------------6AC1080B7408A9EA88878007--



From fjohn@us.ibm.com Wed Nov  3 11:57:31 1999
X-Lotus-FromDomain: IBMUS
To: mccalpin@austin.ibm.com
From: Frank Johnston <fjohn@us.ibm.com>
Message-ID: <85256823.007ACC33.00@d54mta05.raleigh.ibm.com>
Date: Wed, 3 Nov 1999 11:57:31 -0500
Subject: IBM 43P-260 base and T70 base
Status: RO

From: Frank Johnston on 11/03/99 11:57 AM

Here is the data:

(no pretech directive or hand-tuning)
Machine   CPUs    Copy  Scale   Add   Triad
43P-260    1     597.5  569.3  757.3  776.1
43P-260    2     960.9  965.7 1138.7 1112.3
T70        1     413.0  421.2  587.4  614.2
T70        2     820.7  800.4 1182.1 1165.4
T70        4    1603.5 1535.9 2218.3 2187.5
T70        8    2954.1 2821.0 3889.0 3872.2

Frank Johnston

From - Mon Dec 13 17:50:56 1999
Received: from aux153.plano.net ([209.217.36.11]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Mon, 13 Dec 1999 10:48:15 -0600
Received: (qmail 4823 invoked by uid 10000); 13 Dec 1999 16:53:32 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 4547 invoked from network); 13 Dec 1999 16:53:18 -0000
Received: from ares.cs.virginia.edu (128.143.136.41)
  by aux153.plano.net with SMTP; 13 Dec 1999 16:53:18 -0000
Received: from syseng.hstc.necsyl.com (root@syseng.hstc.necsyl.com [198.170.1.20])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with SMTP id LAA21573
	for <Mccalpin@cs.virginia.edu>; Mon, 13 Dec 1999 11:47:35 -0500 (EST)
Received: by syseng.hstc.necsyl.com (4.1/YDL1.7-940222.14)
	id AA04243(syseng.hstc.necsyl.com); Mon, 13 Dec 99 10:47:28 CST
Message-Id: <009b01bf4589$f81f9a40$2502aac6@hstc.necsyl.com>
Reply-To: "Philip Tannenbaum" <ptannenbaum@sx.nec.com>
From: "Philip Tannenbaum" <philt@ieee.org>
To: <Mccalpin@cs.virginia.edu>
Subject: SX-5 STREAM
Date: Mon, 13 Dec 1999 10:49:03 -0600
Mime-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-Msmail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-Mimeole: Produced By Microsoft MimeOLE V5.00.2919.6600
Return-Path: philt@ieee.org
X-Mozilla-Status: 9003
X-Mozilla-Status2: 00000000
X-UIDL: 5b000000.eml
Status: RO

Dear John,

Per your request at SC99, I am enclosing formal STREAM results
for the SX-5.  The formal machine name is SX-5/16A

Per the naming below, the digit after the "/" is the number of processors 
used in each run.  So you have 1, 2, 4, 8, and 16 cpus represented.  Remember
that the SX-5 is an SDRAM memory, so it is not directly comparable with the 
SX-4 original with SSRAM, but is comparable to the SX-4A which also had 
SDRAM but which was never reported.

BTW, I will put this into an HPCWire article in the next few days
unless you want to release it as the keeper of the stream ;)

Best Regards

Philip Tannenbaum
HNSX Supercomputers Inc.
---------------------------------------------
PA24-260C               N9312P
----- Original Message ----- 
Subject: Re: STREAM


> 
> Machine  SX5#4  16A 128GB 
> Date         Dec 7 ,1999
>  
> [1] SX-5/1A 
> ----------------------------------------------
>  Double precision appears to have 16 digits of accuracy
>  Assuming 8 bytes per DOUBLE PRECISION word
> ----------------------------------------------
>  Array size =   80000000
>  Offset     =          0
>  The total memory requirement is 1831 MB
>  You are running each test  10 times
>  The *best* time for each test is used
>  ----------------------------------------------------
>  Your clock granularity/precision appears to be     44 microseconds
>  The tests below will each take a time on the order
>  of   30108   microseconds
>     (=   684   clock ticks)
>  Increase the size of the arrays if this shows that
>  you are not getting at least 20 clock ticks per test.
>  ----------------------------------------------------
>  WARNING -- The above is only a rough guideline.
>  For best results, please be sure you know the
>  precision of your system timer.
>  ----------------------------------------------------
> Function     Rate (MB/s)  RMS time   Min time  Max time
> Copy:       42544.6479       0.0301       0.0301       0.0302
> Scale:      42546.1651       0.0301       0.0301       0.0301
> Add:        47780.3278       0.0402       0.0402       0.0402
> Triad:      47779.0521       0.0402       0.0402       0.0402
>  Sum of a is =   9.226406249984801D+19
>  Sum of b is =   1.845281249988019D+19
>  Sum of c is =   2.460375000016015D+19
> 
> 
> 
> [2] SX-5/2A 
> ----------------------------------------------
>  Double precision appears to have 16 digits of accuracy
>  Assuming 8 bytes per DOUBLE PRECISION word
> ----------------------------------------------
>  Array size =   80000000
>  Offset     =          0
>  The total memory requirement is 1831 MB
>  You are running each test  10 times
>  The *best* time for each test is used
>  ----------------------------------------------------
>  Your clock granularity/precision appears to be     44 microseconds
>  The tests below will each take a time on the order
>  of   15122   microseconds
>     (=   344   clock ticks)
>  Increase the size of the arrays if this shows that
>  you are not getting at least 20 clock ticks per test.
>  ----------------------------------------------------
>  WARNING -- The above is only a rough guideline.
>  For best results, please be sure you know the
>  precision of your system timer.
>  ----------------------------------------------------
> Function     Rate (MB/s)  RMS time   Min time  Max time
> Copy:       84852.6042       0.0151       0.0151       0.0151
> Scale:      84852.6042       0.0151       0.0151       0.0151
> Add:        95351.6151       0.0201       0.0201       0.0201
> Triad:      95327.9119       0.0201       0.0201       0.0202
>  Sum of a is =   9.226406249985602D+19
>  Sum of b is =   1.845281249991997D+19
>  Sum of c is =   2.460375000000000D+19
> 
> 
> 
> [4] SX-5/4A
> ----------------------------------------------
>  Double precision appears to have 16 digits of accuracy
>  Assuming 8 bytes per DOUBLE PRECISION word
> ----------------------------------------------
>  Array size =   80000000
>  Offset     =          0
>  The total memory requirement is 1831 MB
>  You are running each test  10 times
>  The *best* time for each test is used
>  ----------------------------------------------------
>  Your clock granularity/precision appears to be     44 microseconds
>  The tests below will each take a time on the order
>  of   7620   microseconds
>     (=   173   clock ticks)
>  Increase the size of the arrays if this shows that
>  you are not getting at least 20 clock ticks per test.
>  ----------------------------------------------------
>  WARNING -- The above is only a rough guideline.
>  For best results, please be sure you know the
>  precision of your system timer.
>  ----------------------------------------------------
> Function     Rate (MB/s)  RMS time   Min time  Max time
> Copy:      168485.5912       0.0076       0.0076       0.0076
> Scale:     168509.3886       0.0076       0.0076       0.0076
> Add:       189555.2133       0.0101       0.0101       0.0101
> Triad:     189517.2955       0.0101       0.0101       0.0101
>  Sum of a is =   9.226406249987201D+19
>  Sum of b is =   1.845281249999994D+19
>  Sum of c is =   2.460375000000000D+19
> 
> 
> 
> [8] SX-5/8A 
> ----------------------------------------------
>  Double precision appears to have 16 digits of accuracy
>  Assuming 8 bytes per DOUBLE PRECISION word
> ----------------------------------------------
>  Array size =   80000000
>  Offset     =          0
>  The total memory requirement is 1831 MB
>  You are running each test  10 times
>  The *best* time for each test is used
>  ----------------------------------------------------
>  Your clock granularity/precision appears to be     44 microseconds
>  The tests below will each take a time on the order
>  of   3869   microseconds
>     (=   88   clock ticks)
>  Increase the size of the arrays if this shows that
>  you are not getting at least 20 clock ticks per test.
>  ----------------------------------------------------
>  WARNING -- The above is only a rough guideline.
>  For best results, please be sure you know the
>  precision of your system timer.
>  ----------------------------------------------------
> Function     Rate (MB/s)  RMS time   Min time  Max time
> Copy:      332551.3578       0.0039       0.0038       0.0039
> Scale:     332551.3578       0.0039       0.0038       0.0039
> Add:       371160.2378       0.0053       0.0052       0.0054
> Triad:     366690.0567       0.0053       0.0052       0.0054
>  Sum of a is =   9.226406249990401D+19
>  Sum of b is =   1.845281249999999D+19
>  Sum of c is =   2.460375000000000D+19
> 
> 
> 
> [16] SX-5/16A 
> ----------------------------------------------
>  Double precision appears to have 16 digits of accuracy
>  Assuming 8 bytes per DOUBLE PRECISION word
> ----------------------------------------------
>  Array size =   80000000
>  Offset     =          0
>  The total memory requirement is 1831 MB
>  You are running each test  10 times
>  The *best* time for each test is used
>  ----------------------------------------------------
>  Your clock granularity/precision appears to be     45 microseconds
>  The tests below will each take a time on the order
>  of   2157   microseconds
>     (=   48   clock ticks)
>  Increase the size of the arrays if this shows that
>  you are not getting at least 20 clock ticks per test.
>  ----------------------------------------------------
>  WARNING -- The above is only a rough guideline.
>  For best results, please be sure you know the
>  precision of your system timer.
>  ----------------------------------------------------
> Function     Rate (MB/s)  RMS time   Min time  Max time
> Copy:      607491.8382       0.0021       0.0021       0.0022
> Scale:     590389.7421       0.0022       0.0022       0.0023
> Add:       607411.6518       0.0032       0.0032       0.0033
> Triad:     583069.4479       0.0034       0.0033       0.0034
>  Sum of a is =   9.226406249996797D+19
>  Sum of b is =   1.845281249999999D+19
>  Sum of c is =   2.460374999999999D+19
> 
> 
> 


From - Fri Dec 17 07:21:22 1999
Received: from aux153.plano.net ([209.217.36.11]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Fri, 17 Dec 1999 05:51:44 -0600
Received: (qmail 27295 invoked by uid 10000); 17 Dec 1999 12:05:40 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 27184 invoked from network); 17 Dec 1999 12:05:34 -0000
Received: from ares.cs.virginia.edu (128.143.136.41)
  by aux153.plano.net with SMTP; 17 Dec 1999 12:05:34 -0000
Received: from mta4.snfc21.pbi.net (mta4.snfc21.pbi.net [206.13.28.142])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id GAA06456
	for <mccalpin@cs.virginia.edu>; Fri, 17 Dec 1999 06:59:19 -0500 (EST)
Received: from photon ([63.195.90.12])
 by mta4.snfc21.pbi.net (Sun Internet Mail Server sims.3.5.1999.09.16.21.57.p8)
 with SMTP id <0FMV00H7YVYAKJ@mta4.snfc21.pbi.net> for
 mccalpin@cs.virginia.edu; Fri, 17 Dec 1999 03:59:13 -0800 (PST)
Date: Fri, 17 Dec 1999 04:43:31 -0800
From: Paul Hsieh <qed@pobox.com>
Subject: Stream score submission for Athlon system.
To: mccalpin@cs.virginia.edu
Cc: mccalpin@austin.ibm.com
Message-id: <0FMV00H80VYAKJ@mta4.snfc21.pbi.net>
MIME-version: 1.0
X-Mailer: Pegasus Mail for Win32 (v3.01b)
Content-type: Multipart/Mixed; boundary=Message-Boundary-10580
Priority: normal
Return-Path: qed@pobox.com
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
X-UIDL: 0d000000.eml
Status: RO


--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body

I performed this port to the WATCOM C/C++ compiler on my Athlon 500Mhz
system.  Here is a description of the files.

  6763 stream_d.c

    - My modifications to the stream_d.c source.  The most important
      modification was to change OFFSET from 0 to 70464.  This number was
      determined experimentally.  It also contains a conditionally compiled
      ASM hack to speed up just the COPY loop.

  1645 p55clock.c

    - A different port of the timer code.  It is far more accurate than
      previous timers, in particular the win32_clock.c timer code.

   219 make.bat

    - Just a batch file for compiling everything up.

 49152 stream.exe

    - The straight compile of the sources.

 49152 fastream.exe

    - A compile of the sources with the assembly hack turned on.

  1217 500.txt

    - The results without the assembly hack.

  1217 500f.txt

    - The results with the assembly hack.


--
Paul Hsieh
qed@pobox.com


--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Text from file '500.txt'

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 70464
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 36126 microseconds.
   (= 36126 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         373.5327       0.0435       0.0428       0.0460
Scale:        351.8294       0.0460       0.0455       0.0466
Add:          459.3388       0.0531       0.0522       0.0555
Triad:        453.4303       0.0533       0.0529       0.0539

--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Text from file '500f.txt'

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 1000000, Offset = 70464
Total memory required = 22.9 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 37978 microseconds.
   (= 37978 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:         452.9012       0.0358       0.0353       0.0363
Scale:        351.0894       0.0467       0.0456       0.0500
Add:          454.1782       0.0552       0.0528       0.0586
Triad:        454.6508       0.0533       0.0528       0.0539
--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  fastream.exe
     Date:  17 Dec 1999, 4:31
     Size:  49152 bytes.
     Type:  PCEXE

--Message-Boundary-10580
Content-type: Application/Octet-stream; name="fastream.exe"; type=PCEXE
Content-disposition: attachment; filename="fastream.exe"
Content-transfer-encoding: BASE64

TVqAAAEAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hdGhpcyBpcyBhIFdpbmRvd3MgTlQgY2hhcmFjdGVy
LW1vZGUgZXhlY3V0YWJsZQ0KJABQRQAATAEFADctWjgAAAAAAAAAAOAAggELAQISAJQAAAAe
AAAAFIgBYBYAAAAQAAAAsAAAAABAAAAQAAAAAgAAAQALAAAAAAADAAoAAAAAAAAQiQEABAAA
AAAAAAMAAAAAAAEAAAABAAAgAAAAEAAAAAAAABAAAAAAAAAAAAAAAACwAABkBgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACJAdwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFV
VE8AAAAAAAAAAAAQAAAAlAAAAAQAAAAAAAAAAAAAAAAAACAAAGAuaWRhdGEAAAAAAAAAsAAA
AAgAAACYAAAAAAAAAAAAAAAAAABAAADAREdST1VQAAAAAAAAAMAAAAAWAAAAoAAAAAAAAAAA
AAAAAAAAQAAAwC5ic3MAAAAAAAAAAADgAAAAFIgBAAAAAAAAAAAAAAAAAAAAAIAAAMAucmVs
b2MAAAAAAAAAAIkBAAoAAAC2AAAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
wuvpidhaW8MAAAAAAAAAAAAAAAAAAFFWV1WJxonRid0x/4XAdDiF7XZagDkAdBi7AgAAAInK
ifDoqQUAAIP4/3UMXV9eWcNmxwYAAOs2ichN6LDx//+DxgJHicHryL4CAAAAgDkAdByJ84nK
McDocwUAAIP4/3QOicjoh/H//0eJwevfifhdX15ZwwAAAAAAAAAAAAAAU1FSVldVg+wQicG6
AgAAAIlUJASJFCS6PQAAAOjPBQAAiceFwHUKuP/////pWgEAADnIdQ+4/////4PEEF1fXlpZ
W8MpyNH4jSxFAAAAAI1FAuhppf//icaJRCQIhcB1D7j/////g8QQXV9eWllbw4nricroh9r/
/41XAonQZscELgAA6Ffa//+FwHRCAcCJRCQMg8AC6CWl//+Jx4nFhcB1Fonw6Ga4//+4////
/4PEEF1fXlpZW8OLdCQMi1wkDAH36Dja//9mxwcAAOsCMe2LRCQIieroRAUAAInCi0QkCOgp
uP//iejoIrj//4XSdQ+4/////4PEEF1fXlpZW8ODPfjxyAEAdQXoEQYAAInI6IIAAACFwHQP
uP////+DxBBdX15aWVvDicjosNn//41YAYtEJAQPr8PogaT//4nGhcB1GbgFAAAA6C3h//+4
/////4PEEF1fXlpZW8MPrxwkicroN87//4P4/3UWifDom7f//7j/////g8QQXV9eWllbw4nw
6NH4//+DxBBdX15aWVvDjUAAU1FSVldVg+wIiceFwHUKuP/////pYwEAAGaDOAB0G41QAmaD
OgB0EmaDOj10DGaLcgKDwgJmhfZ17maDOgB1D7j/////g8QIXV9eWllbw2aDegIAD5TAMduL
DfjxyAGIw4XJdUGF2w+FDQEAALgJAAAA6LGj//+JwYXAdQ+4/////4PECF1fXlpZW8Oj+PHI
AYPACIlY+DH2iVj8o/DxyAHpyAAAAInaifjo2QAAAIXbD4XDAAAAhcAPj6wAAAD32Ist8PHI
AYnGQI0ctQAAAACJBCSNQwiLFCSJRCQEAdCF7XU+6D+j//+JxYnBhcB1D7j/////g8QIXV9e
Wllbw4sV+PHIAehd2P//i0QkBIscJAHoMdKj8PHIAeiYlv//6zmJwonI6C3V//+JwYXAdQ+4
/////4PECF1fXlpZW8OLbCQEixXw8cgBAcWJ84no6EMBAACJLfDxyAGJDfjxyAHHRLEEAAAA
AOsDjXD/ofDxyAGJPLHGBAYAMcCDxAhdX15aWVvDi8BTUVZXVYnHidWLNfjxyAHp1wAAAGaL
D4n7ZoXJD4TGAAAAMcBmiwLoNAQAAInBMcBmiwPoKAQAAGY5wQ+FpwAAAGaDOj0PhYoAAACL
FfjxyAGJ9ynXwf8Che0PhGwAAACLFonxhdJ0D4tBBIkBi1kEg8EEhdt18Ys18PHIAYX2dEOJ
8IA8BwB0B4nQ6GC1//+LLfjxyAGJzinuixXw8cgBwf4CiciJ8+hkAAAAiQ3w8cgBOfd9Do0E
D0CKEEeIUP8593z1McBdX15ZW8ONRwFdX15ZW8ODwgJmi0MCg8MCZoXAD4U6////g8YEixaF
0g+FH////6H48cgBKfDB+AJdX15ZW8MAAAAAAAAAAAAAAFFWV4nZOcJ0QHMojTwaOcd2IY13
/408GIzaTwaOwv1OT9HpZvOlEclGR2bzpAf8X15Zw4nWiceM2gaOwlHB6QLzpVmD4QPzpAdf
XlnDAAAAUoM9IPLIAQB0KDHSihCKkjHyyAGA4gGB4v8AAAB0EzHSihDB4giKQAEl/wAAAAnQ
WsOKACX/AAAAWsMAAAAAAFNRUoPsBInDieLoYQAAAIngMNLoePj//4gUBIE9ONNAAKQDAAB1
JoM9IPLIAQB0HTHAigQkioAx8sgBJAEl/wAAAHQJidjohQIAAOsVagGNRCQEUC7/FSyxQACJ
4Ohe////g8QEWllbwwAAAAAAAABTicOJ0PbH/3QMidqIWAHB6giIEFvDiBpbwwAAAAAAAFFW
V1WJ5YPsBInGhdJ1BzHA6YMAAACF2w+GdgAAAIA6AHUShfZ0BWbHBgAAMcCJ7F1fXlnDgz0g
8sgBAHQZMcCKAoqAMfLIASQBJf8AAAB0BoB6AQB0PYnQ6KL3//9qAY1N/InHUTnDcwKJ2FBS
agihONNAAFAu/xXIsUAAhcB0E4X2dAaLRfxmiQaJ+InsXV9eWcO4/////4nsXV9eWcNTUVdm
iwiJ02Y5ynQWicJmizqDwAJmhf90B2Y7GHQE6+wxwF9ZW8MAAAAAAAAAAABTUVZXVYPsBIkE
JInXZoE9Cc1AAACAcw5XUC7/FdSxQADpwwAAAOiV1P//AcCNSAGJyOhpn///icKJxYXAD4Sm
AAAAhf91BDH26yuJ+Ohu1P//AcCNSAGJyOhCn///icaFwHUSidDohbL//zHAg8QEXV9eWVvD
ixQkicuJ6Oj+yP//g/j/dR2J6Ohisv//hfZ0B4nw6Fey//8xwIPEBF1fXllbw4X2dCKJy4n6
ifDozcj//4P4/3USifDoMbL//zHAg8QEXV9eWVvDVlUu/xXQsUAAicKJ6OgUsv//hfZ0B4nw
6Amy//+J0IPEBF1fXllbwwAAAAAAAAAAAAAAAAAAU1FSVos19PHIAYX2dEGLFoPGBIXSdDiJ
0OgS+P//jVgBjQRdAAAAAOhznv//icGFwHTb6Cj4//+D+P90CYnI6DT6///ryInI6KOx///r
v15aWVvDAAAAAAAAAAAAAAAAZj1hAHIJZj16AHcDg+ggw1KJwugYAAAAhcB0A4PqIYnQWsMA
AAAAAAAAAAAAAAAAUonC6EgAAACFwHQfgfqBggAAchGB+pqCAAB3CboBAAAAidBawzHSidBa
w4jQ/sAl/wAAAIqAEM9AADHSJICIwonQWsMAAAAAAAAAAAAAAABSgz0g8sgBAHQxicLB6giB
4v8AAACKkjHyyAGA4gGB4v8AAAB0FSX/AAAA6BAAAACFwHQHuAEAAABawzHAWsMAgz0g8sgB
AHQpgT0400AApAMAAHQKhcB0G7gBAAAAwyX/AAAAioBB1EAAJAgl/wAAAMMxwMMAAAAAAAAA
AAAAAP8loLFAAP8lbLFAAP8laLFAAP8lmLFAAP8ltLFAAP8lgLFAAP8lULFAAP8llLFAAP8l
1LFAAP8lLLFAAP8l0LFAAP8lVLFAAP8lDLJAAP8lQLFAAP8lfLFAAP8l2LFAAP8lSLFAAP8l
cLFAAP8ljLFAAP8lxLFAAP8lhLFAAP8lZLFAAP8lpLFAAP8lYLFAAP8liLFAAP8lzLFAAP8l
PLFAAP8lXLFAAP8lBLJAAP8ldLFAAP8lALJAAP8lWLFAAP8l3LFAAP8lELJAAP8l6LFAAP8l
/LFAAP8lqLFAAP8lwLFAAP8lCLJAAP8lyLFAAP8lnLFAAP8l8LFAAP8lNLFAAP8l+LFAAP8l
7LFAAP8l4LFAAP8l9LFAAP8lkLFAAP8lvLFAAP8lTLFAAP8leLFAAP8lRLFAAP8luLFAAP8l
OLFAAP8lrLFAAP8l5LFAAP8lFLJAAP8lsLFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8sAAAAAAAAAAAAAAcsgAALLEAAESw
AAAAAAAAAAAAACeyAAA0sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0sgAAAAAAAEayAABUsgAA
ZLIAAHKyAACCsgAAmrIAAKiyAADAsgAAzrIAANyyAADwsgAACrMAABSzAAAgswAAMrMAAESz
AABcswAAcrMAAIizAACcswAAtLMAAMqzAADYswAA7LMAAPyzAAAMtAAAIrQAADi0AABMtAAA
WLQAAGq0AAB6tAAAlLQAAKK0AAC+tAAA1rQAAOa0AADytAAACLUAACC1AAA6tQAAVLUAAGC1
AABytQAAgrUAAJK1AACwtQAAvLUAAMa1AADUtQAA4rUAAP61AAAOtgAAHLYAACy2AABCtgAA
WLYAAAAAAAA0sgAAAAAAAEayAABUsgAAZLIAAHKyAACCsgAAmrIAAKiyAADAsgAAzrIAANyy
AADwsgAACrMAABSzAAAgswAAMrMAAESzAABcswAAcrMAAIizAACcswAAtLMAAMqzAADYswAA
7LMAAPyzAAAMtAAAIrQAADi0AABMtAAAWLQAAGq0AAB6tAAAlLQAAKK0AAC+tAAA1rQAAOa0
AADytAAACLUAACC1AAA6tQAAVLUAAGC1AABytQAAgrUAAJK1AACwtQAAvLUAAMa1AADUtQAA
4rUAAP61AAAOtgAAHLYAACy2AABCtgAAWLYAAAAAAABVU0VSMzIuZGxsAEtFUk5FTDMyLmRs
bAABAENoYXJVcHBlckJ1ZmZBAAABAENsb3NlSGFuZGxlAAIAQ3JlYXRlRXZlbnRBAAADAENy
ZWF0ZUZpbGVBAAQAQ3JlYXRlVGhyZWFkAAAFAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgAGAERl
bGV0ZUZpbGVBAAcARW50ZXJDcml0aWNhbFNlY3Rpb24AAAgARXhpdFByb2Nlc3MACQBFeGl0
VGhyZWFkAAAKAEZsdXNoRmlsZUJ1ZmZlcnMAAAsARnJlZUVudmlyb25tZW50U3RyaW5nc0EA
DABHZXRBQ1AAAA0AR2V0Q1BJbmZvAA4AR2V0Q29tbWFuZExpbmVBAA8AR2V0Q29tbWFuZExp
bmVXABAAR2V0Q3VycmVudERpcmVjdG9yeUEAABEAR2V0Q3VycmVudFByb2Nlc3NJZAASAEdl
dEN1cnJlbnRUaHJlYWRJZAAAEwBHZXRDdXJyZW50VGhyZWFkAAAUAEdldEVudmlyb25tZW50
U3RyaW5ncwAVAEdldEZpbGVBdHRyaWJ1dGVzQQAAFgBHZXRGaWxlVHlwZQAXAEdldEZ1bGxQ
YXRoTmFtZUEAABgAR2V0TGFzdEVycm9yAAAZAEdldExvY2FsVGltZQAAGgBHZXRNb2R1bGVG
aWxlTmFtZUEAABsAR2V0TW9kdWxlRmlsZU5hbWVXAAAcAEdldE1vZHVsZUhhbmRsZUEAAB0A
R2V0T0VNQ1AAAB4AR2V0UHJvY0FkZHJlc3MAAB8AR2V0U3RkSGFuZGxlAAAgAEdldFRpbWVa
b25lSW5mb3JtYXRpb24AACEAR2V0VmVyc2lvbgAAIgBJbml0aWFsaXplQ3JpdGljYWxTZWN0
aW9uACMATGVhdmVDcml0aWNhbFNlY3Rpb24AACQATG9hZExpYnJhcnlBAAAlAE1vdmVGaWxl
QQAmAE11bHRpQnl0ZVRvV2lkZUNoYXIAJwBTZXRDb25zb2xlQ3RybEhhbmRsZXIAKABTZXRF
bnZpcm9ubWVudFZhcmlhYmxlQQApAFNldEVudmlyb25tZW50VmFyaWFibGVXACoAU2V0RXZl
bnQAACsAU2V0RmlsZVBvaW50ZXIAACwAU2V0TGFzdEVycm9yAAAtAFNldFN0ZEhhbmRsZQAA
LgBTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIALwBUbHNBbGxvYwAAMABUbHNGcmVlADEA
VGxzR2V0VmFsdWUAMgBUbHNTZXRWYWx1ZQAzAFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAA
NABWaXJ0dWFsQWxsb2MAADUAVmlydHVhbEZyZWUANgBWaXJ0dWFsUXVlcnkAADcAV2FpdEZv
clNpbmdsZU9iamVjdAA4AFdpZGVDaGFyVG9NdWx0aUJ5dGUAOQBXcml0ZUZpbGUAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQBDb3B5OiAgICAgIABTY2FsZTogICAg
IABBZGQ6ICAgICAgIABUcmlhZDogICAgIAAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgAAVGhpcyBzeXN0ZW0gdXNlcyAl
ZCBieXRlcyBwZXIgRE9VQkxFIFBSRUNJU0lPTiB3b3JkLgoAAABBcnJheSBzaXplID0gJWQs
IE9mZnNldCA9ICVkCgAAAFRvdGFsIG1lbW9yeSByZXF1aXJlZCA9ICUuMWYgTUIuCgAAAEVh
Y2ggdGVzdCBpcyBydW4gJWQgdGltZXMsIGJ1dCBvbmx5CgAAAAB0aGUgKmJlc3QqIHRpbWUg
Zm9yIGVhY2ggaXMgdXNlZC4KAABZb3VyIGNsb2NrIGdyYW51bGFyaXR5L3ByZWNpc2lvbiBh
cHBlYXJzIHRvIGJlICVkIG1pY3Jvc2Vjb25kcy4KAAAAAFlvdXIgY2xvY2sgZ3JhbnVsYXJp
dHkgYXBwZWFycyB0byBiZSBsZXNzIHRoYW4gb25lIG1pY3Jvc2Vjb25kLgoAAAAARWFjaCB0
ZXN0IGJlbG93IHdpbGwgdGFrZSBvbiB0aGUgb3JkZXIgb2YgJWQgbWljcm9zZWNvbmRzLgoA
ICAgKD0gJWQgY2xvY2sgdGlja3MpCgAASW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIGFycmF5
cyBpZiB0aGlzIHNob3dzIHRoYXQKAHlvdSBhcmUgbm90IGdldHRpbmcgYXQgbGVhc3QgMjAg
Y2xvY2sgdGlja3MgcGVyIHRlc3QuCgAAV0FSTklORyAtLSBUaGUgYWJvdmUgaXMgb25seSBh
IHJvdWdoIGd1aWRlbGluZS4KAAAAAEZvciBiZXN0IHJlc3VsdHMsIHBsZWFzZSBiZSBzdXJl
IHlvdSBrbm93IHRoZQoAAHByZWNpc2lvbiBvZiB5b3VyIHN5c3RlbSB0aW1lci4KAAAAAEZ1
bmN0aW9uICAgICAgUmF0ZSAoTUIvcykgICBSTVMgdGltZSAgICAgTWluIHRpbWUgICAgIE1h
eCB0aW1lCgAlcyUxMS40ZiAgJTExLjRmICAlMTEuNGYgICUxMS40ZgoAAAAAAAAAAAAAAAAA
AEAAAAAAgIQuQQAAAAAAAAhAmpmZmZmZuT+N7bWg98awPgAAAACAhC5Bje21oPfGsD4AAAAA
AAAQQE5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZpbGUgc3RydWN0dXJlcw0KAAAA
AABGbG9hdGluZy1wb2ludCBzdXBwb3J0IG5vdCBsb2FkZWQNCgBUWgAAVW5hYmxlIHRvIGFs
bG9jYXRlIHNlbWFwaG9yZSBkYXRhDQoAVW5hYmxlIHRvIGFsbG9jYXRlIHNlbWFwaG9yZSBk
YXRhDQoAVVNFUjMyLkRMTAAAR2V0QWN0aXZlV2luZG93AFRoZSBpbnN0cnVjdGlvbiBhdCAw
eDAwMDAwMDAwIGNhdXNlZCBhIHN0YWNrIG92ZXJmbG93IGZsb2F0aW5nIHBvaW50CmV4Y2Vw
dGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBhIHN0YWNr
IHVuZGVyZmxvdyBmbG9hdGluZyBwb2ludApleGNlcHRpb24uCgAAAFRoZSBpbnN0cnVjdGlv
biBhdCAweDAwMDAwMDAwIGNhdXNlZCBhIGRlbm9ybWFsIG9wZXJhbmQgZmxvYXRpbmcgcG9p
bnQKZXhjZXB0aW9uLgoAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBh
IGRpdmlzaW9uIGJ5IHplcm8gZmxvYXRpbmcgcG9pbnQKZXhjZXB0aW9uLgoAAFRoZSBpbnN0
cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBhbiBpbmV4YWN0IHZhbHVlIGZsb2F0aW5n
IHBvaW50CmV4Y2VwdGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNh
dXNlZCBhbiBvdmVyZmxvdyBmbG9hdGluZyBwb2ludCBleGNlcHRpb24uCgBUaGUgaW5zdHJ1
Y3Rpb24gYXQgMHgwMDAwMDAwMCBjYXVzZWQgYW4gdW5kZXJmbG93IGZsb2F0aW5nIHBvaW50
IGV4Y2VwdGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBh
biBpbnZhbGlkIG9wZXJhdGlvbiBmbG9hdGluZyBwb2ludApleGNlcHRpb24uCgAAAABUaGUg
aW5zdHJ1Y3Rpb24gYXQgMHgwMDAwMDAwMCByZWZlcmVuY2VkIG1lbW9yeSAAAAAAYXQgMHgw
MDAwMDAwMC4KVGhlIG1lbW9yeSBjb3VsZCBub3QgYmUgAHJlYWQuCgAAd3JpdHRlbi4KAAAA
QSBwcml2aWxlZ2VkIGluc3RydWN0aW9uIHdhcyBleGVjdXRlZCBhdCBhZGRyZXNzIDB4MDAw
MDAwMDAuCgAAAEFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gd2FzIGV4ZWN1dGVkIGF0IGFkZHJl
c3MgMHgwMDAwMDAwMC4KAEFuIGludGVnZXIgZGl2aWRlIGJ5IHplcm8gd2FzIGVuY291bnRl
cmVkIGF0IGFkZHJlc3MgMHgwMDAwMDAwMC4KAAAAQSBzdGFjayBvdmVyZmxvdyB3YXMgZW5j
b3VudGVyZWQgYXQgYWRkcmVzcyAweDAwMDAwMDAwLgoAAAAAVGhlIHByb2dyYW0gZW5jb3Vu
dGVyZWQgZXhjZXB0aW9uIDB4MDAwMDAwMDAgYXQgAAAAAGFkZHJlc3MgMHgwMDAwMDAwMCBh
bmQKY2Fubm90IGNvbnRpbnVlLgoAAAAAVGhyZWFkIGhhcyBubyB0aHJlYWQtc3BlY2lmaWMg
ZGF0YQ0KAAAAAFVuYWJsZSB0byByZXNpemUgdGhyZWFkLXNwZWNpZmljIGRhdGENCgBVbmFi
bGUgdG8gcmVzaXplIHRocmVhZC1zcGVjaWZpYyBkYXRhDQoAVE1QAFRFTVAAAAAAVE1QRElS
AABURU1QRElSAAAAAAB3YisAY29uaW4kAABjb25vdXQkAGNvbgBDX0ZJTEVfSU5GTwBDX0ZJ
TEVfSU5GTz0AAAAAQUJOT1JNQUwgVEVSTUlOQVRJT04NCgAAX19iZ250aGQAAAAAY29uAAAA
HwA7AFoAeACXALUA1ADzABEBMAFOAW0BAAAfADwAWwB5AJgAtgDVAPQAEgExAU8BbgEAAAAA
AADwfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADVw8N///+9HNXDw3///70c1cPDf///vRzVw8N///+9H
BMBAABDAQAAcwEAAKMBAAAAAAACAhG5BAAAAAICEbkEAAAAAYON2QQAAAABg43ZBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwGUAAAP/////cHUAA5B1AAOQd
QADoHUAA8B1AAOQdQADkHUAA5B1AAOQdQADkHUAA5B1AAOQdQADkHUAA5B1AAOQdQADkHUAA
5B1AAOQdQAAAAAAA9AAAAGAzQABgM0AAgDNAAIAzQAB/EgAAAAAAAAAAAAACAAAAAQAAAAMA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAA
RVNUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAARURUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzUAAUc5AAFBG
AAABAAAAEA4AAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICARUAAgEVAAIBFQAAAAQEB
AQEBAQEBAwMDAwMBAQEBAQEBAQEBAQEBAQEBAQEKDAwMDAwMDAwMDAwMDAwMODg4ODg4ODg4
OAwMDAwMDAxYWFhYWFhISEhISEhISEhISEhISEhISEhISAwMDAwMDJiYmJiYmIiIiIiIiIiI
iIiIiIiIiIiIiIiIDAwMDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEyMzQ1
Njc4OWFiY2RlZgAAAAAwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoAAAAA
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6AAAAADAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAABTdGFjayBPdmVyZmxvdyENCgAAAFBaQABQWkAA
AAAAAAAAAKACQAAAAAAAAADIBUAAAAAAAABAnAxAAAAAAAAgvL4ZQAAAAAS/yRuONECetXAr
qK3FnWlA1abP/0kfeMLTQOCM6YDJR7qTqEGO3vmd++t+qlFDx5EOpq6gGeOjRhcMdYGGdXbJ
SE3lXT3FXTuLnpJam5cgigJSYMQldQAAAAAAAACA/38AAAAAUMlAAFTJQABcyUAAZMlAAGzJ
QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAABAAAA
AgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDSQAD//////////wEAAAD/////AgAAAP////8BAAAA
/////wIAAAAdAADAAgAAADoBAMACAAAABQAAwAIAAAA6AQDAAgAAADoBAMABAAAA/////wEA
AAD/////AQAAAP////8CAAAAlAAAwAEAAACVAADAAAAAAAEAAAAACQEBCwYEBQUFAgP//wcJ
BggB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAJIhAABCJQABwe0AAAQAAAAAAAQAoh0AAAAAAAP///39VVVVV
////PzMzMzOqqqoqJEmSJP///x8cx3EcmZmZGXTRRRdVVVUVEzuxE5IkSRIRERER////Dw8P
Dw+O4zgOXkN5DczMzAwMwzAMuuiiCyxkIQuqqqoKo3A9Comd2AleQnsJSZIkCbDc0wiIiIgI
hBBCCP///wd88MEHh4eHBwd1UAfHcRwHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAoKCgoKCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMAAAAAAAgwBhAAAAB4BZAAAACLBlAAAAgbBdAAAAgoBtAAAAgGHJAAAAg
8FRAAAAgwFlAAAAgAHhAAAAB4RZAAAAgQBxAAAAgwCBAAAAfXEVAAAAKvEpAAAAg/HJAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAeAEAAB0w
LDA5MFAwZDBzMIUwnzClMKswsTC3ML0wyjDnMAMxCTEUMTAxUDGGMZMxoDGtMboxxzHUMeEx
/jEEMigyLjI5MmQyajJzMqIyqDKwMrky9TL7MgEzEzMgMzQzQTNHM1kzZjOAM5AzqjO8M8Iz
yjPQM9Yz3DPiM+kz8DP3M/4zBTQSNBg0QDStNOw0RzVNNWU1azVwNXY1fDWbNaE1pjWsNbI1
vjXHNdE15DXvNfU1+jUANgY2DDYzNmU2JTcxN243czefN7c3CDhJOHQ4hTiROMM4yDjOONQ4
8Dj4OP04AzkJORE5IjkvOTk5WzlkOWo5jjkMOmI6CjsmO1I7pjuxO7o7wDvFO/E7/zslPDc8
ZTxuPJM8vDzUPAI9Yz2iPbY90j3dPQM+DT4iPi4+NT47PkI+Sz5ePmw+cT52Pog+kD6YPqI+
qT6vPrY+uz7BPs0+2D7fPu0+ID87P0Y/TT9kP6k/yz/XP9w/6j/wP/w/ACAAADQAAAABMAcw
DjAZMDUwRTBLMGcwgDCJMJkwsjC6MMYw2TDfMPIw5jjnPv0+zT8AAAAwAADcAAAAxDDyMPkw
GTEhMUExSjFqMXIxljGcMaQxrzHmMQAyEzIaMiUyKjJnMyY0LTQ5NEA0TDVdNWI1dzV8NYM1
iDWpNa81tzW9Nak2sjfvOAk5bjmDOYg5lDmfOac5rTm7OdA55DnwOfc5ETotOjU6PzpgOmU6
dzqBOo86oTqrOr062zriOug67ToEOwo7EDtYPV09Yz19PYk9kz2jPbA9uz3PPew9/D0CPgo+
Dz4VPmI+bz53PoU+iz6YPqE+vj7GPgI/CD9CP04/hz+NP6Q/rz+1P90/AAAAQAAAyAEAABAw
GTAhMDUwSjBuMHMwgzCLMJgwtjC7MMUw4DD7MWcydDKVMqoyvjLdMvUy+jIAMxAzJTM7M0wz
UjNnM3YzizORM58zpDOwM7YzuzPSM+UzFDQaNCc0RDR1NHs0gzSJNI80oTSrNLo0xzTXNPU0
EzU9NUk1UDVgNXM1ijWbNak1zDXXNd016jX4NQI2CDYUNhw2LjY5NkI2SDZgNm02eDZ9Now2
mTbBNs023zbvNgo3HTclNzE3OTdFN003VTdmN3o3mDenN7k33jfvN/U3/zchODs4TDhtOHk4
gDiPOKI4qTi+OM04BjkOOSU5MjlPOVc5ZzmEOZE5lzmrObA5tTm6Ob85xDnJOc851TnbOeE5
5zntOfI59zn8OQE6BjoLOhA6FTobOiE6JzotOjM6OTo+OkM6TTpSOlc6XTpoOm06czp5On86
izqWOpw6pDqqOq46vzrEOso62zrkOuo6/joEOwk7DzsUOxo7HzslO007ZTuIO6o7eTyHPKE8
1DzbPOY87jxQPSM+LT43PkE+Sz5VPl8+aT5zPoI+lz6iPq0+tD67PsI+yT7XPgo/FT8sPzA/
ND84Pzw/QD9EP3Q/AAAAUAAA0AAAAFQwcDCRMKUwwDDGMMww8DD9MBYxJjExMT0xQzFOMVUx
XzFzMZAxljHgMR4yPDJTMlkyYzJvMncyfTLwMvgyNjPeM5s04jQhNT01RzVgNW01gDWLNZc1
oTW8Ncg17DUMNiY2SjZWNmA2jjaqNq82ujbQNvI2+jYKNyQ3KzcxN0w3ZDd2N4s3wDfLN903
4zf5NzU4OzhHOFs4YThmOJg4ozioOL84zTizOd458jlaOmA6hTqLOpE6mjrBOsk7zTvRO9U7
2TtsPAAAAGAAAFgAAAAtMjEyNTI5Mj40aTd4N4A32jgVOz07lTulO9c7dzzCPPU8DT0SPXU9
tj0XPiM+VD5rPnc+nT61Ps4+Dz8uP04/Zz9tP34/jD+UP6I/5z8AAABwAAAQAQAAADAiMCww
QjBQMBoxRjFLMXExkTGiMa4xtTG7McAxxjHQMfMxIDIuMlUydDLKMtAy2zLvMggzGzMhMzQz
OjNGM84z1DPuM/Uz+jMANBo0ITQmNC40PjRKNHc0fTSPNJk0uDTANNw05DSwNbo1wTXLNdM1
4DXqNfE1/TUENo42kjboNuw28Db0Nvg2/DYANwQ3CDcMNxA3FDcwN5Q3pDezN7g3vjfENwM4
CDgOOBQ4JzgtODg4RDhSOF04ajh7OKI4tTjLONw44jj2OAs5IDk3OTw5VTlxOYQ5jjmnOc45
0znkOT47WTt2O347hjuWO5w7qjuvO707wjtGPUw9Uj1YPXg90D3QPgAAAIAAAMgAAAArMDAw
UzBkMHkwfjCGMKAwzTDTMN4wFTEyMT4xVjG9Mewx/TE5Mtsy9jL/Mg0zFzM2M2wzcTOPMww0
GTR6NLw0+jQQNUo1ajVtNoY2ljafNqk2zDblNv02CzciNy83TTejN7Q3wzfPN+Y3+TcHODI4
WDhnOHo4kziuOL443jjyOP44FDkfOTU5TzlcOeM58DkSOvA6+DoOOx87TTvSO/w7FzwfPC08
kDwUPUw9jD3bPSY+Xj5wPs8+1T77Pmk/AAAAkAAAfAAAAAQwEjJZMiAzVjNkM5szyDPsMx40
LzRCNGY0hzTDNO80CDUSNSQ1ZjWDNZA1wjXSNUo2VzZzOWM6lTqlOss6CjsfO047XztlO3c7
mzvdOwk8IjwsPD48hjzzPAA9TT1ZPWc9hz33PQQ+MT45PqA+rT5fP5Y/AKAAAIgAAABWMHMw
hzCyMLsw1jBIMkIyPDI2MjAyKjIkMh4yGDISMgwyBjIAMvox9DHuMegx4jHcMdYx0DHKMcQx
vjG4MbIxrDGmMaAxmjGUMY4xiDGCMXwxdjFwMWoxZDFeMVgxUjFMMUYxQDE6MTQxLjEoMSIx
HDEWMRAxCjEEMf4w+DDyMADAAABIAAAAcDp0Ong6fDobPSQ9KD0sPTA9ND04PTw9QD1EPUg9
TD1QPVQ9WD1cPWA9ZD1oPXQ9eD18PYA91D7YPgQ/CD8MPwDQAABAAAAARDVKNXo1UDVWNYA1
XDWGNYw1kjWYNWI1aDVuNbwwwDBUMVgxXDFgMWQxwDJ0NZQzmDOcM6gzAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA

--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Text from file 'make.bat'

wcl386 /zq /otexan stream_d.c p55clock.c
@copy stream_d.exe stream.exe > nul
stream.exe > 500.txt
wcl386 /zq /otexan stream_d.c p55clock.c /dASMHACK=1
@copy stream_d.exe fastream.exe > nul
fastream.exe > 500f.txt
--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  p55clock.c
     Date:  17 Dec 1999, 4:30
     Size:  1645 bytes.
     Type:  Program-source

--Message-Boundary-10580
Content-type: Application/Octet-stream; name="p55clock.c"; type=Program-source
Content-disposition: attachment; filename="p55clock.c"
Content-transfer-encoding: BASE64

Ly8jaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDx0aW1lLmg+DQoNCnN0YXRpYyBkb3Vi
bGUgdGltZXJhdGlvOw0Kc3RhdGljIGludCBmdG1wWzJdOw0Kc3RhdGljIGludCB0dG1wWzJd
Ow0KDQojaWZkZWYgX19XQVRDT01DX18NCg0KLyogR2V0IGluaXRpYWwgVFNDIHZhbHVlICov
DQp2b2lkIHJkdHNjMCgpOw0KI3ByYWdtYSBhdXggcmR0c2MwID0gCQlcDQoiIC41ODZwICIJ
CQlcDQoiIHJkdHNjICIJCQlcDQoiIG1vdiBkd29yZCBwdHIgdHRtcFswXSxlYXggIglcDQoi
IG1vdiBkd29yZCBwdHIgdHRtcFs0XSxlZHggIiBtb2RpZnkgW2VheCBlZHhdOw0KDQovKiBT
dWJ0cmFjdCBpbml0aWFsIFRTQyB2YWx1ZSwgdGhlbiBjb252ZXJ0IHRvIGRvdWJsZSAqLw0K
ZG91YmxlIHJkdHNjKCk7DQojcHJhZ21hIGF1eCByZHRzYyA9IAkJXA0KIiAuNTg2cCAiCQkJ
XA0KIiByZHRzYyAiCQkJXA0KIiBzdWIgZWF4LCB0dG1wWzBdCSAiCVwNCiIgc2JiIGVkeCwg
dHRtcFs0XQkgIglcDQoiIG1vdiBkd29yZCBwdHIgZnRtcFswXSxlYXggIglcDQoiIG1vdiBk
d29yZCBwdHIgZnRtcFs0XSxlZHggIglcDQoiIGZpbGQgcXdvcmQgcHRyIGZ0bXAgIgkJXA0K
bW9kaWZ5IFtlYXggZWR4XSB2YWx1ZSBbODA4N107DQoNCiNlbHNlDQoNCi8qIEdldCBpbml0
aWFsIFRTQyB2YWx1ZSAqLw0Kc3RhdGljIHZvaWQgcmR0c2MwKCkgew0KICAgIF9hc20gew0K
CXJkdHNjDQogICAgICAgIG1vdiBkd29yZCBwdHIgdHRtcFswXSxlYXgNCiAgICAgICAgbW92
IGR3b3JkIHB0ciB0dG1wWzRdLGVkeA0KICAgIH0NCn0NCg0KLyogU3VidHJhY3QgaW5pdGlh
bCBUU0MgdmFsdWUsIHRoZW4gY29udmVydCB0byBkb3VibGUgKi8NCnN0YXRpYyBkb3VibGUg
cmR0c2MoKSB7DQpkb3VibGUgZnRtcDsNCiAgICBfYXNtIHsNCglyZHRzYw0KICAgICAgICBz
dWIgZWF4LCB0dG1wWzBdCSANCiAgICAgICAgc2JiIGVkeCwgdHRtcFs0XQkgDQogICAgICAg
IG1vdiBkd29yZCBwdHIgZnRtcFswXSxlYXgNCiAgICAgICAgbW92IGR3b3JkIHB0ciBmdG1w
WzRdLGVkeA0KICAgICAgICBmaWxkIHF3b3JkIHB0ciBmdG1wDQogICAgICAgIGZzdHAgZnRt
cA0KICAgIH0NCiAgICByZXR1cm4gZnRtcDsNCn0NCg0KI2VuZGlmDQoNCnN0YXRpYyBpbnQg
Y2FsaWJyYXRlZCA9IDA7DQoNCnN0YXRpYyB2b2lkIGNhbGlicmF0ZSgpIHsNCmludCB0Ow0K
ZG91YmxlIHQwOw0KICAgIHJkdHNjMCgpOw0KDQojaWYgMQ0KICAgIHQgPSBjbG9jaygpOw0K
ICAgIHdoaWxlKCBjbG9jaygpID09IHQgKSA7DQogICAgdDAgPSByZHRzYygpOw0KICAgIHQg
PSBjbG9jaygpICsgNCpDTE9DS1NfUEVSX1NFQzsNCiAgICB3aGlsZSggY2xvY2soKTx0ICkg
Ow0KICAgIHQwID0gcmR0c2MoKSAtIHQwOw0KI2Vsc2UNCiAgICB0MCA9IDUwMCo0MDAwMDAw
LjA7DQojZW5kaWYNCg0KICAgIHRpbWVyYXRpbyA9IDQuMC90MDsNCg0KLy8gICAgcHJpbnRm
KCJcbk1hY2hpbmUgc3BlZWQgKGNsb2Nrcy9zZWNvbmQpID0gJTEwZyBNaHpcblxuIix0MC80
MDAwMDAwLjApOw0KDQogICAgY2FsaWJyYXRlZCA9IDE7DQp9DQoNCmRvdWJsZSBzZWNvbmQo
KSB7DQogICAgaWYoICFjYWxpYnJhdGVkICkgY2FsaWJyYXRlKCk7DQoNCiAgICByZXR1cm4g
cmR0c2MoKSp0aW1lcmF0aW87DQp9DQoNCg==

--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Text from file 'readme.txt'

I performed this port to the WATCOM C/C++ compiler on my Athlon 500Mhz
system.  Here is a description of the files.

  6763 stream_d.c

    - My minor modifications to the stream_d.c source.  The most important
      modification was to change OFFSET from 0 to 70464.  This number was
      determined experimentally.  It also contains a conditionally compiled
      ASM hack to speed up just the COPY loop.

  1645 p55clock.c

    - A different port of the timer code.  It is far more accurate than
      previous timers, in particular the win32_clock.c timer code.

   219 make.bat

    - Just a batch file for compiling everything up.

 49152 stream.exe

    - The straight compile of the sources.

 49152 fastream.exe

    - A compile of the sources with the assembly hack turned on.

  1217 500.txt

    - The results without the assembly hack.

  1217 500f.txt

    - The results with the assembly hack.

--
Paul Hsieh
qed@pobox.com


--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  stream.exe
     Date:  17 Dec 1999, 4:31
     Size:  49152 bytes.
     Type:  PCEXE

--Message-Boundary-10580
Content-type: Application/Octet-stream; name="stream.exe"; type=PCEXE
Content-disposition: attachment; filename="stream.exe"
Content-transfer-encoding: BASE64

TVqAAAEAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hdGhpcyBpcyBhIFdpbmRvd3MgTlQgY2hhcmFjdGVy
LW1vZGUgZXhlY3V0YWJsZQ0KJABQRQAATAEFADAtWjgAAAAAAAAAAOAAggELAQISAJQAAAAe
AAAAFIgBcBYAAAAQAAAAsAAAAABAAAAQAAAAAgAAAQALAAAAAAADAAoAAAAAAAAQiQEABAAA
AAAAAAMAAAAAAAEAAAABAAAgAAAAEAAAAAAAABAAAAAAAAAAAAAAAACwAABkBgAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACJAeAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFV
VE8AAAAAAAAAAAAQAAAAlAAAAAQAAAAAAAAAAAAAAAAAACAAAGAuaWRhdGEAAAAAAAAAsAAA
AAgAAACYAAAAAAAAAAAAAAAAAABAAADAREdST1VQAAAAAAAAAMAAAAAWAAAAoAAAAAAAAAAA
AAAAAAAAQAAAwC5ic3MAAAAAAAAAAADgAAAAFIgBAAAAAAAAAAAAAAAAAAAAAIAAAMAucmVs
b2MAAAAAAAAAAIkBAAoAAAC2AAAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
i8BRuQEAAADolf7//1nDjUAAUjwwcg48OXcKJf8AAACD6DBawyX/AAAA6FP5//+Jwjxhcg08
aXcJMcCI0IPoV1rDPGpyDjxydwol/wAAAIPoV1rDPHNyDjx6dwol/wAAAIPoV1rDuCUAAABa
wwAAAAAAU1FSVldVg+wYicW6AgAAALsBAAAAiRQkuj0AAACJXCQE6CoGAACJw4XAdQq4////
/+l8AQAAOeh1D7j/////g8QYXV9eWllbwynoiUQkEEDoy6z//4nCiUQkCIXAdQ+4/////4PE
GF1fXlpZW8OLTCQQie6JxwaM2I7AV4nIwekC8qWKyIDhA/KkXweLRCQQjXMBxgQCAInw6BIG
AACJRCQUhcB0S0DodKz//4nDiUQkDIXAdRaJ0Oizv///uP////+DxBhdX15aWVvDi0wkFInH
BozYjsBXicjB6QLypYrIgOED8qRfBwNcJBTGAwDrBIlEJAyLRCQMUItUJAxSLv8V0LFAAInC
i0QkCOhfv///i0QkDOhWv///hdJ1D7j/////g8QYXV9eWllbw4no6IgAAACFwHQPuP////+D
xBhdX15aWVvDgz348cgBAHRiiejoWQUAAI1YAYsEJA+vw+i7q///icGFwHUZuAUAAADoZ+j/
/7j/////g8QYXV9eWllbww+vXCQEieroUAUAAIP4/3UWicjo1L7//7j/////g8QYXV9eWllb
w4nI6EYHAACDxBhdX15aWVvDU1FSVldVg+wMiUQkBIXAdQq4/////+mJAQAAgDgAdBWNUAGA
OgB0DYA6PXQIikoBQoTJdfOAOgB1D7j/////g8QMXV9eWllbw4B6AQAPlMAPtuih9PHIAYlE
JAiFwHVBhe0PhTwBAAC4CQAAAOjyqv//iUQkCIXAdQ+4/////4PEDF1fXlpZW8Oj9PHIAYPA
CIlo+Ilo/KPw8cgB6eUAAACLRCQEieroBAEAAIXtD4XuAAAAhcAPj8cAAACJxffdjV0BjQyt
AAAAAI1BCIs18PHIAYkEJAHYhfZ1T+iDqv//icKJRCQIhcB1D7j/////g8QMXV9eWllbw4s1
9PHIAYnHBozYjsBXicjB6QLypYrIgOED8qRfB4sEJAHQMdKj8PHIAejLnf//6zyJwotEJAjo
Xtz//4lEJAiFwHUPuP////+DxAxdX15aWVvDiwwkixXw8cgBAcGJ64nI6HMIAACJDfDxyAGL
fCQIjQStAAAAAAH4iT308cgBx0AEAAAAAOsDjWj/i1QkCI0ErQAAAAAB0ItUJASJEKHw8cgB
xgQoADHAg8QMXV9eWllbw4vAU1FWV1WJx4nVizX08cgB6csAAACKJ4n7hOQPhLwAAAAxwIoC
6FvA//+JwTHAigPoUMD//znBD4WgAAAAgDo9D4WKAAAAixX08cgBifcp18H/AoXtD4RsAAAA
ixaJ8YXSdA+LQQSJAYtZBIPBBIXbdfGLNfDxyAGF9nRDifCAPAcAdAeJ0Oh6vP//iy308cgB
ic4p7osV8PHIAcH+AonIifPofgcAAIkN8PHIATn3fQ6NBA9AihBHiFD/Ofd89THAXV9eWVvD
jUcBXV9eWVvDQopLAUOEyQ+FRP///4PGBIsWhdIPhSv///+h9PHIASnwwfgCXV9eWVvDAAAA
AAAAAAAAAABTgz0g8sgBAHQhMduKGoqbMfLIAYDjAYHj/wAAAHQMihqIGIpSAYhQAVvDihKI
EFvDAAAAAAAAAAAAAAAAAAAAgz0g8sgBAHQcigAl/wAAAIqAMfLIASQBJf8AAAB0BrgCAAAA
w7gBAAAAwwAAAAAAU1FSg+wEicGJw4nY6D/z//+FwHUxidiJ4ujiBgAA6B0HAADoiAcAAIng
MNLon////4gUBIniidjoU////4nY6Kzz///rwonIg8QEWllbwwBTUYoYOhp1QYM9IPLIAQB0
HzHbihiKmzHyyAGA4wGB4/8AAAB0CopYAYpKATjLdQUxwFlbw4jYJf8AAACIyoHi/wAAACnQ
WVvDMduKGDHAigIpw4nYWVvDAAAAAAAAAACoAXQOxwIAAACAxwMBAAAA6wzHAgAAAMDHA4AA
AACoAnQDgAsCqAR0A4ALBMONQACD+AJ1DccCAAAAwMcDgAAAAMOD+AF1DccCAAAAQMcDgAAA
AMPHAgAAAIDHAwEAAADDjUAAU4nDg+Bwg+MHg/ggchB2OIP4MHJBdimD+EB0NFvDhcB2B4P4
EHQRW8PHAgEAAACF23UjgAoCW8PHAgAAAABbw8cCAgAAAFvDxwIBAAAAW8PHAgMAAABbwwAA
AABTUYPsBInDidGJ4onI6C4GAACJ4DDS6EX+//+IFASJ2Oi78f//hcB1GIniidjorv7//4XA
dAuJ2OhD8v//icPr3YnY6Jjx//+FwHQEhcl1BInY6wIxwIPEBFlbwwAAAABTUonCMduJ0Ohz
8f//hcB1DInQ6Ajy//9DicLr6YnYWlvDAAAAAAAAAAAAAAAAAABRVldVicaJ0YndMf+FwHQ4
he12WoA5AHQYuwIAAACJyonw6KkFAACD+P91DF1fXlnDZscGAADrNonITeiw8f//g8YCR4nB
68i+AgAAAIA5AHQcifOJyjHA6HMFAACD+P90DonI6Ifx//9HicHr34n4XV9eWcMAAAAAAAAA
AAAAAFNRUlZXVYPsEInBugIAAACJVCQEiRQkuj0AAADozwUAAInHhcB1Crj/////6VoBAAA5
yHUPuP////+DxBBdX15aWVvDKcjR+I0sRQAAAACNRQLoaaX//4nGiUQkCIXAdQ+4/////4PE
EF1fXlpZW8OJ64nK6Ifa//+NVwKJ0GbHBC4AAOhX2v//hcB0QgHAiUQkDIPAAuglpf//iceJ
xYXAdRaJ8OhmuP//uP////+DxBBdX15aWVvDi3QkDItcJAwB9+g42v//ZscHAADrAjHti0Qk
CInq6EQFAACJwotEJAjoKbj//4no6CK4//+F0nUPuP////+DxBBdX15aWVvDgz348cgBAHUF
6BEGAACJyOiCAAAAhcB0D7j/////g8QQXV9eWllbw4nI6LDZ//+NWAGLRCQED6/D6IGk//+J
xoXAdRm4BQAAAOgt4f//uP////+DxBBdX15aWVvDD68cJInK6DfO//+D+P91Fonw6Ju3//+4
/////4PEEF1fXlpZW8OJ8OjR+P//g8QQXV9eWllbw41AAFNRUlZXVYPsCInHhcB1Crj/////
6WMBAABmgzgAdBuNUAJmgzoAdBJmgzo9dAxmi3ICg8ICZoX2de5mgzoAdQ+4/////4PECF1f
XlpZW8Nmg3oCAA+UwDHbiw348cgBiMOFyXVBhdsPhQ0BAAC4CQAAAOixo///icGFwHUPuP//
//+DxAhdX15aWVvDo/jxyAGDwAiJWPgx9olY/KPw8cgB6cgAAACJ2on46NkAAACF2w+FwwAA
AIXAD4+sAAAA99iLLfDxyAGJxkCNHLUAAAAAiQQkjUMIixQkiUQkBAHQhe11Pug/o///icWJ
wYXAdQ+4/////4PECF1fXlpZW8OLFfjxyAHoXdj//4tEJASLHCQB6DHSo/DxyAHomJb//+s5
icKJyOgt1f//icGFwHUPuP////+DxAhdX15aWVvDi2wkBIsV8PHIAQHFifOJ6OhDAQAAiS3w
8cgBiQ348cgBx0SxBAAAAADrA41w/6Hw8cgBiTyxxgQGADHAg8QIXV9eWllbw4vAU1FWV1WJ
x4nVizX48cgB6dcAAABmiw+J+2aFyQ+ExgAAADHAZosC6DQEAACJwTHAZosD6CgEAABmOcEP
hacAAABmgzo9D4WKAAAAixX48cgBifcp18H/AoXtD4RsAAAAixaJ8YXSdA+LQQSJAYtZBIPB
BIXbdfGLNfDxyAGF9nRDifCAPAcAdAeJ0Ohgtf//iy348cgBic4p7osV8PHIAcH+AonIifPo
ZAAAAIkN8PHIATn3fQ6NBA9AihBHiFD/Ofd89THAXV9eWVvDjUcBXV9eWVvDg8ICZotDAoPD
AmaFwA+FOv///4PGBIsWhdIPhR////+h+PHIASnwwfgCXV9eWVvDAAAAAAAAAAAAAABRVleJ
2TnCdEBzKI08GjnHdiGNd/+NPBiM2k8GjsL9Tk/R6WbzpRHJRkdm86QH/F9eWcOJ1onHjNoG
jsJRwekC86VZg+ED86QHX15ZwwAAAFKDPSDyyAEAdCgx0ooQipIx8sgBgOIBgeL/AAAAdBMx
0ooQweIIikABJf8AAAAJ0FrDigAl/wAAAFrDAAAAAABTUVKD7ASJw4ni6GEAAACJ4DDS6Hj4
//+IFASBPTjTQACkAwAAdSaDPSDyyAEAdB0xwIoEJIqAMfLIASQBJf8AAAB0CYnY6IUCAADr
FWoBjUQkBFAu/xUssUAAieDoXv///4PEBFpZW8MAAAAAAAAAU4nDidD2x/90DInaiFgBweoI
iBBbw4gaW8MAAAAAAABRVldVieWD7ASJxoXSdQcxwOmDAAAAhdsPhnYAAACAOgB1EoX2dAVm
xwYAADHAiexdX15Zw4M9IPLIAQB0GTHAigKKgDHyyAEkASX/AAAAdAaAegEAdD2J0Oii9///
agGNTfyJx1E5w3MCidhQUmoIoTjTQABQLv8VyLFAAIXAdBOF9nQGi0X8ZokGifiJ7F1fXlnD
uP////+J7F1fXlnDU1FXZosIidNmOcp0FonCZos6g8ACZoX/dAdmOxh0BOvsMcBfWVvDAAAA
AAAAAAAAU1FWV1WD7ASJBCSJ12aBPQnNQAAAgHMOV1Au/xXUsUAA6cMAAADoldT//wHAjUgB
icjoaZ///4nCicWFwA+EpgAAAIX/dQQx9usrifjobtT//wHAjUgBicjoQp///4nGhcB1EonQ
6IWy//8xwIPEBF1fXllbw4sUJInLiejo/sj//4P4/3UdiejoYrL//4X2dAeJ8OhXsv//McCD
xARdX15ZW8OF9nQiicuJ+onw6M3I//+D+P91Eonw6DGy//8xwIPEBF1fXllbw1ZVLv8V0LFA
AInCiejoFLL//4X2dAeJ8OgJsv//idCDxARdX15ZW8MAAAAAAAAAAAAAAAAAAFNRUlaLNfTx
yAGF9nRBixaDxgSF0nQ4idDoEvj//41YAY0EXQAAAADoc57//4nBhcB02+go+P//g/j/dAmJ
yOg0+v//68iJyOijsf//679eWllbwwAAAAAAAAAAAAAAAGY9YQByCWY9egB3A4PoIMNSicLo
GAAAAIXAdAOD6iGJ0FrDAAAAAAAAAAAAAAAAAFKJwuhIAAAAhcB0H4H6gYIAAHIRgfqaggAA
dwm6AQAAAInQWsMx0onQWsOI0P7AJf8AAACKgBDPQAAx0iSAiMKJ0FrDAAAAAAAAAAAAAAAA
UoM9IPLIAQB0MYnCweoIgeL/AAAAipIx8sgBgOIBgeL/AAAAdBUl/wAAAOgQAAAAhcB0B7gB
AAAAWsMxwFrDAIM9IPLIAQB0KYE9ONNAAKQDAAB0CoXAdBu4AQAAAMMl/wAAAIqAQdRAACQI
Jf8AAADDMcDDAAAAAAAAAAAAAAD/JaCxQAD/JWyxQAD/JWixQAD/JZixQAD/JbSxQAD/JYCx
QAD/JVCxQAD/JZSxQAD/JdSxQAD/JSyxQAD/JdCxQAD/JVSxQAD/JQyyQAD/JUCxQAD/JXyx
QAD/JdixQAD/JUixQAD/JXCxQAD/JYyxQAD/JcSxQAD/JYSxQAD/JWSxQAD/JaSxQAD/JWCx
QAD/JYixQAD/JcyxQAD/JTyxQAD/JVyxQAD/JQSyQAD/JXSxQAD/JQCyQAD/JVixQAD/Jdyx
QAD/JRCyQAD/JeixQAD/JfyxQAD/JaixQAD/JcCxQAD/JQiyQAD/JcixQAD/JZyxQAD/JfCx
QAD/JTSxQAD/JfixQAD/JeyxQAD/JeCxQAD/JfSxQAD/JZCxQAD/JbyxQAD/JUyxQAD/JXix
QAD/JUSxQAD/JbixQAD/JTixQAD/JayxQAD/JeSxQAD/JRSyQAD/JbCxQAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8sAAAAAAAAAAAAAAcsgAALLEAAESw
AAAAAAAAAAAAACeyAAA0sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0sgAAAAAAAEayAABUsgAA
ZLIAAHKyAACCsgAAmrIAAKiyAADAsgAAzrIAANyyAADwsgAACrMAABSzAAAgswAAMrMAAESz
AABcswAAcrMAAIizAACcswAAtLMAAMqzAADYswAA7LMAAPyzAAAMtAAAIrQAADi0AABMtAAA
WLQAAGq0AAB6tAAAlLQAAKK0AAC+tAAA1rQAAOa0AADytAAACLUAACC1AAA6tQAAVLUAAGC1
AABytQAAgrUAAJK1AACwtQAAvLUAAMa1AADUtQAA4rUAAP61AAAOtgAAHLYAACy2AABCtgAA
WLYAAAAAAAA0sgAAAAAAAEayAABUsgAAZLIAAHKyAACCsgAAmrIAAKiyAADAsgAAzrIAANyy
AADwsgAACrMAABSzAAAgswAAMrMAAESzAABcswAAcrMAAIizAACcswAAtLMAAMqzAADYswAA
7LMAAPyzAAAMtAAAIrQAADi0AABMtAAAWLQAAGq0AAB6tAAAlLQAAKK0AAC+tAAA1rQAAOa0
AADytAAACLUAACC1AAA6tQAAVLUAAGC1AABytQAAgrUAAJK1AACwtQAAvLUAAMa1AADUtQAA
4rUAAP61AAAOtgAAHLYAACy2AABCtgAAWLYAAAAAAABVU0VSMzIuZGxsAEtFUk5FTDMyLmRs
bAABAENoYXJVcHBlckJ1ZmZBAAABAENsb3NlSGFuZGxlAAIAQ3JlYXRlRXZlbnRBAAADAENy
ZWF0ZUZpbGVBAAQAQ3JlYXRlVGhyZWFkAAAFAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgAGAERl
bGV0ZUZpbGVBAAcARW50ZXJDcml0aWNhbFNlY3Rpb24AAAgARXhpdFByb2Nlc3MACQBFeGl0
VGhyZWFkAAAKAEZsdXNoRmlsZUJ1ZmZlcnMAAAsARnJlZUVudmlyb25tZW50U3RyaW5nc0EA
DABHZXRBQ1AAAA0AR2V0Q1BJbmZvAA4AR2V0Q29tbWFuZExpbmVBAA8AR2V0Q29tbWFuZExp
bmVXABAAR2V0Q3VycmVudERpcmVjdG9yeUEAABEAR2V0Q3VycmVudFByb2Nlc3NJZAASAEdl
dEN1cnJlbnRUaHJlYWRJZAAAEwBHZXRDdXJyZW50VGhyZWFkAAAUAEdldEVudmlyb25tZW50
U3RyaW5ncwAVAEdldEZpbGVBdHRyaWJ1dGVzQQAAFgBHZXRGaWxlVHlwZQAXAEdldEZ1bGxQ
YXRoTmFtZUEAABgAR2V0TGFzdEVycm9yAAAZAEdldExvY2FsVGltZQAAGgBHZXRNb2R1bGVG
aWxlTmFtZUEAABsAR2V0TW9kdWxlRmlsZU5hbWVXAAAcAEdldE1vZHVsZUhhbmRsZUEAAB0A
R2V0T0VNQ1AAAB4AR2V0UHJvY0FkZHJlc3MAAB8AR2V0U3RkSGFuZGxlAAAgAEdldFRpbWVa
b25lSW5mb3JtYXRpb24AACEAR2V0VmVyc2lvbgAAIgBJbml0aWFsaXplQ3JpdGljYWxTZWN0
aW9uACMATGVhdmVDcml0aWNhbFNlY3Rpb24AACQATG9hZExpYnJhcnlBAAAlAE1vdmVGaWxl
QQAmAE11bHRpQnl0ZVRvV2lkZUNoYXIAJwBTZXRDb25zb2xlQ3RybEhhbmRsZXIAKABTZXRF
bnZpcm9ubWVudFZhcmlhYmxlQQApAFNldEVudmlyb25tZW50VmFyaWFibGVXACoAU2V0RXZl
bnQAACsAU2V0RmlsZVBvaW50ZXIAACwAU2V0TGFzdEVycm9yAAAtAFNldFN0ZEhhbmRsZQAA
LgBTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIALwBUbHNBbGxvYwAAMABUbHNGcmVlADEA
VGxzR2V0VmFsdWUAMgBUbHNTZXRWYWx1ZQAzAFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAA
NABWaXJ0dWFsQWxsb2MAADUAVmlydHVhbEZyZWUANgBWaXJ0dWFsUXVlcnkAADcAV2FpdEZv
clNpbmdsZU9iamVjdAA4AFdpZGVDaGFyVG9NdWx0aUJ5dGUAOQBXcml0ZUZpbGUAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQBDb3B5OiAgICAgIABTY2FsZTogICAg
IABBZGQ6ICAgICAgIABUcmlhZDogICAgIAAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgAAVGhpcyBzeXN0ZW0gdXNlcyAl
ZCBieXRlcyBwZXIgRE9VQkxFIFBSRUNJU0lPTiB3b3JkLgoAAABBcnJheSBzaXplID0gJWQs
IE9mZnNldCA9ICVkCgAAAFRvdGFsIG1lbW9yeSByZXF1aXJlZCA9ICUuMWYgTUIuCgAAAEVh
Y2ggdGVzdCBpcyBydW4gJWQgdGltZXMsIGJ1dCBvbmx5CgAAAAB0aGUgKmJlc3QqIHRpbWUg
Zm9yIGVhY2ggaXMgdXNlZC4KAABZb3VyIGNsb2NrIGdyYW51bGFyaXR5L3ByZWNpc2lvbiBh
cHBlYXJzIHRvIGJlICVkIG1pY3Jvc2Vjb25kcy4KAAAAAFlvdXIgY2xvY2sgZ3JhbnVsYXJp
dHkgYXBwZWFycyB0byBiZSBsZXNzIHRoYW4gb25lIG1pY3Jvc2Vjb25kLgoAAAAARWFjaCB0
ZXN0IGJlbG93IHdpbGwgdGFrZSBvbiB0aGUgb3JkZXIgb2YgJWQgbWljcm9zZWNvbmRzLgoA
ICAgKD0gJWQgY2xvY2sgdGlja3MpCgAASW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIGFycmF5
cyBpZiB0aGlzIHNob3dzIHRoYXQKAHlvdSBhcmUgbm90IGdldHRpbmcgYXQgbGVhc3QgMjAg
Y2xvY2sgdGlja3MgcGVyIHRlc3QuCgAAV0FSTklORyAtLSBUaGUgYWJvdmUgaXMgb25seSBh
IHJvdWdoIGd1aWRlbGluZS4KAAAAAEZvciBiZXN0IHJlc3VsdHMsIHBsZWFzZSBiZSBzdXJl
IHlvdSBrbm93IHRoZQoAAHByZWNpc2lvbiBvZiB5b3VyIHN5c3RlbSB0aW1lci4KAAAAAEZ1
bmN0aW9uICAgICAgUmF0ZSAoTUIvcykgICBSTVMgdGltZSAgICAgTWluIHRpbWUgICAgIE1h
eCB0aW1lCgAlcyUxMS40ZiAgJTExLjRmICAlMTEuNGYgICUxMS40ZgoAAAAAAAAAAAAAAAAA
AEAAAAAAgIQuQQAAAAAAAAhAmpmZmZmZuT+N7bWg98awPgAAAACAhC5Bje21oPfGsD4AAAAA
AAAQQE5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIGZpbGUgc3RydWN0dXJlcw0KAAAA
AABGbG9hdGluZy1wb2ludCBzdXBwb3J0IG5vdCBsb2FkZWQNCgBUWgAAVW5hYmxlIHRvIGFs
bG9jYXRlIHNlbWFwaG9yZSBkYXRhDQoAVW5hYmxlIHRvIGFsbG9jYXRlIHNlbWFwaG9yZSBk
YXRhDQoAVVNFUjMyLkRMTAAAR2V0QWN0aXZlV2luZG93AFRoZSBpbnN0cnVjdGlvbiBhdCAw
eDAwMDAwMDAwIGNhdXNlZCBhIHN0YWNrIG92ZXJmbG93IGZsb2F0aW5nIHBvaW50CmV4Y2Vw
dGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBhIHN0YWNr
IHVuZGVyZmxvdyBmbG9hdGluZyBwb2ludApleGNlcHRpb24uCgAAAFRoZSBpbnN0cnVjdGlv
biBhdCAweDAwMDAwMDAwIGNhdXNlZCBhIGRlbm9ybWFsIG9wZXJhbmQgZmxvYXRpbmcgcG9p
bnQKZXhjZXB0aW9uLgoAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBh
IGRpdmlzaW9uIGJ5IHplcm8gZmxvYXRpbmcgcG9pbnQKZXhjZXB0aW9uLgoAAFRoZSBpbnN0
cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBhbiBpbmV4YWN0IHZhbHVlIGZsb2F0aW5n
IHBvaW50CmV4Y2VwdGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNh
dXNlZCBhbiBvdmVyZmxvdyBmbG9hdGluZyBwb2ludCBleGNlcHRpb24uCgBUaGUgaW5zdHJ1
Y3Rpb24gYXQgMHgwMDAwMDAwMCBjYXVzZWQgYW4gdW5kZXJmbG93IGZsb2F0aW5nIHBvaW50
IGV4Y2VwdGlvbi4KAAAAAFRoZSBpbnN0cnVjdGlvbiBhdCAweDAwMDAwMDAwIGNhdXNlZCBh
biBpbnZhbGlkIG9wZXJhdGlvbiBmbG9hdGluZyBwb2ludApleGNlcHRpb24uCgAAAABUaGUg
aW5zdHJ1Y3Rpb24gYXQgMHgwMDAwMDAwMCByZWZlcmVuY2VkIG1lbW9yeSAAAAAAYXQgMHgw
MDAwMDAwMC4KVGhlIG1lbW9yeSBjb3VsZCBub3QgYmUgAHJlYWQuCgAAd3JpdHRlbi4KAAAA
QSBwcml2aWxlZ2VkIGluc3RydWN0aW9uIHdhcyBleGVjdXRlZCBhdCBhZGRyZXNzIDB4MDAw
MDAwMDAuCgAAAEFuIGlsbGVnYWwgaW5zdHJ1Y3Rpb24gd2FzIGV4ZWN1dGVkIGF0IGFkZHJl
c3MgMHgwMDAwMDAwMC4KAEFuIGludGVnZXIgZGl2aWRlIGJ5IHplcm8gd2FzIGVuY291bnRl
cmVkIGF0IGFkZHJlc3MgMHgwMDAwMDAwMC4KAAAAQSBzdGFjayBvdmVyZmxvdyB3YXMgZW5j
b3VudGVyZWQgYXQgYWRkcmVzcyAweDAwMDAwMDAwLgoAAAAAVGhlIHByb2dyYW0gZW5jb3Vu
dGVyZWQgZXhjZXB0aW9uIDB4MDAwMDAwMDAgYXQgAAAAAGFkZHJlc3MgMHgwMDAwMDAwMCBh
bmQKY2Fubm90IGNvbnRpbnVlLgoAAAAAVGhyZWFkIGhhcyBubyB0aHJlYWQtc3BlY2lmaWMg
ZGF0YQ0KAAAAAFVuYWJsZSB0byByZXNpemUgdGhyZWFkLXNwZWNpZmljIGRhdGENCgBVbmFi
bGUgdG8gcmVzaXplIHRocmVhZC1zcGVjaWZpYyBkYXRhDQoAVE1QAFRFTVAAAAAAVE1QRElS
AABURU1QRElSAAAAAAB3YisAY29uaW4kAABjb25vdXQkAGNvbgBDX0ZJTEVfSU5GTwBDX0ZJ
TEVfSU5GTz0AAAAAQUJOT1JNQUwgVEVSTUlOQVRJT04NCgAAX19iZ250aGQAAAAAY29uAAAA
HwA7AFoAeACXALUA1ADzABEBMAFOAW0BAAAfADwAWwB5AJgAtgDVAPQAEgExAU8BbgEAAAAA
AADwfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADVw8N///+9HNXDw3///70c1cPDf///vRzVw8N///+9H
BMBAABDAQAAcwEAAKMBAAAAAAACAhG5BAAAAAICEbkEAAAAAYON2QQAAAABg43ZBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAGUAAAP/////sHUAA9B1AAPQd
QAD4HUAAAB5AAPQdQAD0HUAA9B1AAPQdQAD0HUAA9B1AAPQdQAD0HUAA9B1AAPQdQAD0HUAA
9B1AAPQdQAAAAAAA9AAAAHAzQABwM0AAkDNAAJAzQAB/EgAAAAAAAAAAAAACAAAAAQAAAAMA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAkAAAAAAAAAAAAAAAAAAAAAAAAA
RVNUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAARURUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzUAAUc5AAFBG
AAABAAAAEA4AAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICQRUAAkEVAAJBFQAAAAQEB
AQEBAQEBAwMDAwMBAQEBAQEBAQEBAQEBAQEBAQEKDAwMDAwMDAwMDAwMDAwMODg4ODg4ODg4
OAwMDAwMDAxYWFhYWFhISEhISEhISEhISEhISEhISEhISAwMDAwMDJiYmJiYmIiIiIiIiIiI
iIiIiIiIiIiIiIiIDAwMDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEyMzQ1
Njc4OWFiY2RlZgAAAAAwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoAAAAA
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6AAAAADAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAABTdGFjayBPdmVyZmxvdyENCgAAAGBaQABgWkAA
AAAAAAAAAKACQAAAAAAAAADIBUAAAAAAAABAnAxAAAAAAAAgvL4ZQAAAAAS/yRuONECetXAr
qK3FnWlA1abP/0kfeMLTQOCM6YDJR7qTqEGO3vmd++t+qlFDx5EOpq6gGeOjRhcMdYGGdXbJ
SE3lXT3FXTuLnpJam5cgigJSYMQldQAAAAAAAACA/38AAAAAUMlAAFTJQABcyUAAZMlAAGzJ
QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAABAAAA
AgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDSQAD//////////wEAAAD/////AgAAAP////8BAAAA
/////wIAAAAdAADAAgAAADoBAMACAAAABQAAwAIAAAA6AQDAAgAAADoBAMABAAAA/////wEA
AAD/////AQAAAP////8CAAAAlAAAwAEAAACVAADAAAAAAAEAAAAACQEBCwYEBQUFAgP//wcJ
BggB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAANIhAACCJQACAe0AAAQAAAAAAAQA4h0AAAAAAAP///39VVVVV
////PzMzMzOqqqoqJEmSJP///x8cx3EcmZmZGXTRRRdVVVUVEzuxE5IkSRIRERER////Dw8P
Dw+O4zgOXkN5DczMzAwMwzAMuuiiCyxkIQuqqqoKo3A9Comd2AleQnsJSZIkCbDc0wiIiIgI
hBBCCP///wd88MEHh4eHBwd1UAfHcRwHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgICAgICAgICAgICAgI
CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAoKCgoKCQkJCQkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMAAAAAAAg0BhAAAAB8BZAAAACPBlAAAAgfBdAAAAgsBtAAAAgKHJAAAAg
AFVAAAAg0FlAAAAgEHhAAAAB8RZAAAAgUBxAAAAg0CBAAAAfbEVAAAAKzEpAAAAgDHNAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAeAEAAB0w
LDA5MFAwZDBzMIUwnzClMKswsTC3ML0wyjDnMAMxCTEUMTAxUDGGMZMxoDGtMboxxzHUMeEx
ADIGMgwyEjI2MjwyRzJyMngygTKwMrYyvjLHMgMzCTMPMyEzLjNCM08zVTNnM3QzjjOeM7gz
yjPQM9gz3jPkM+oz8DP3M/4zBTQMNBM0IDQmNE40vTT8NFc1XTV1NXs1gDWGNYw1qzWxNbY1
vDXCNc411zXhNfQ1/zUFNgo2EDYWNhw2QzZ1NjU3QTd+N4M3rzfHNxg4WTiEOJU4oTjTONg4
3jjkOAA5CDkNORM5GTkhOTI5PzlJOWs5dDl6OZ45HDpyOho7NjtiO7Y7wTvKO9A71TsBPA88
NTxHPHU8fjyjPMw85DwSPXM9sj3GPeI97T0TPh0+Mj4+PkU+Sz5SPls+bj58PoE+hj6YPqA+
qD6yPrk+vz7GPss+0T7dPug+7z79PjA/Sz9WP10/dD+5P9s/5z/sP/o/ACAAADgAAAAAMAww
ETAXMB4wKTBFMFUwWzB3MJAwmTCpMMIwyjDWMOkw7zACMfY49z4NP90/AAAAMAAA3AAAANQw
AjEJMSkxMTFRMVoxejGCMaYxrDG0Mb8x9jEQMiMyKjI1MjoydzM2ND00STRQNFw1bTVyNYc1
jDWTNZg1uTW/Ncc1zTW5NsI3/zgZOX45kzmYOaQ5rzm3Ob05yzngOfQ5ADoHOiE6PTpFOk86
cDp1Ooc6kTqfOrE6uzrNOus68jr4Ov06FDsaOyA7aD1tPXM9jT2ZPaM9sz3APcs93z38PQw+
Ej4aPh8+JT5yPn8+hz6VPps+qD6xPs4+1j4SPxg/Uj9eP5c/nT+0P78/xT/tPwAAAEAAAMgB
AAAgMCkwMTBFMFowfjCDMJMwmzCoMMYwyzDVMPAwCzJ3MoQypTK6Ms4y7TIFMwozEDMgMzUz
SzNcM2IzdzOGM5szoTOvM7QzwDPGM8sz4jP1MyQ0KjQ3NFQ0hTSLNJM0mTSfNLE0uzTKNNc0
5zQFNSM1TTVZNWA1cDWDNZo1qzW5Ndw15zXtNfo1CDYSNhg2JDYsNj42STZSNlg2cDZ9Nog2
jTacNqk20TbdNu82/zYaNy03NTdBN0k3VTddN2U3djeKN6g3tzfJN+43/zcFOA84MThLOFw4
fTiJOJA4nziyOLk4zjjdOBY5Hjk1OUI5XzlnOXc5lDmhOac5uznAOcU5yjnPOdQ52TnfOeU5
6znxOfc5/TkCOgc6DDoROhY6GzogOiU6KzoxOjc6PTpDOkk6TjpTOl06YjpnOm06eDp9OoM6
iTqPOps6pjqsOrQ6ujq+Os861DraOus69Dr6Og47FDsZOx87JDsqOy87NTtdO3U7mDu6O4k8
lzyxPOQ86zz2PP48YD0zPj0+Rz5RPls+ZT5vPnk+gz6SPqc+sj69PsQ+yz7SPtk+5z4aPyU/
PD9AP0Q/SD9MP1A/VD+EPwAAAFAAANAAAABkMIAwoTC1MNAw1jDcMAAxDTEmMTYxQTFNMVMx
XjFlMW8xgzGgMaYx8DEuMkwyYzJpMnMyfzKHMo0yADMIM0Yz7jOrNPI0MTVNNVc1cDV9NZA1
mzWnNbE1zDXYNfw1HDY2Nlo2ZjZwNp42uja/Nso24DYCNwo3Gjc0Nzs3QTdcN3Q3hjebN9A3
2zftN/M3CThFOEs4VzhrOHE4djioOLM4uDjPON04wznuOQI6ajpwOpU6mzqhOqo60TrZO907
4TvlO+k7fDwAAABgAABYAAAAPTJBMkUySTJONHk3iDeQN+o4JTtNO6U7tTvnO4c80jwFPR09
Ij2FPcY9Jz4zPmQ+ez6HPq0+xT7ePh8/Pj9eP3c/fT+OP5w/pD+yP/c/AAAAcAAAEAEAABAw
MjA8MFIwYDAqMVYxWzGBMaExsjG+McUxyzHQMdYx4DEDMjAyPjJlMoQy2jLgMusy/zIYMysz
MTNEM0ozVjPeM+Qz/jMFNAo0EDQqNDE0NjQ+NE40WjSHNI00nzSpNMg00DTsNPQ0wDXKNdE1
2zXjNfA1+jUBNg02FDaeNqI2+Db8NgA3BDcINww3EDcUNxg3HDcgNyQ3QDekN7Q3wzfIN843
1DcTOBg4HjgkODc4PThIOFQ4YjhtOHo4iziyOMU42zjsOPI4BjkbOTA5RzlMOWU5gTmUOZ45
tzneOeM59DlOO2k7hjuOO5Y7pjusO7o7vzvNO9I7Vj1cPWI9aD2IPeA94D4AAACAAADIAAAA
OzBAMGMwdDCJMI4wljCwMN0w4zDuMCUxQjFOMWYxzTH8MQ0ySTLrMgYzDzMdMyczRjN8M4Ez
nzMcNCk0ijTMNAo1IDVaNXo1fTaWNqY2rza5Ntw29TYNNxs3Mjc/N103szfEN9M33zf2Nwk4
FzhCOGg4dziKOKM4vjjOOO44AjkOOSQ5LzlFOV85bDnzOQA6IjoAOwg7HjsvO1074jsMPCc8
Lzw9PKA8JD1cPZw96z02Pm4+gD7fPuU+Cz95PwAAAJAAAHwAAAAUMCIyaTIwM2YzdDOrM9gz
/DMuND80UjR2NJc00zT/NBg1IjU0NXY1kzWgNdI14jVaNmc2gzlzOqU6tTrbOho7LzteO287
dTuHO6s77TsZPDI8PDxOPJY8Az0QPV09aT13PZc9Bz4UPkE+ST6wPr0+bz+mPwCgAACIAAAA
ZjCDMJcwwjDLMOYwWDJSMkwyRjJAMjoyNDIuMigyIjIcMhYyEDIKMgQy/jH4MfIx7DHmMeAx
2jHUMc4xyDHCMbwxtjGwMaoxpDGeMZgxkjGMMYYxgDF6MXQxbjFoMWIxXDFWMVAxSjFEMT4x
ODEyMSwxJjEgMRoxFDEOMQgxAjEAwAAASAAAAHA6dDp4Onw6Gz0kPSg9LD0wPTQ9OD08PUA9
RD1IPUw9UD1UPVg9XD1gPWQ9aD10PXg9fD2APdQ+2D4EPwg/DD8A0AAAQAAAAEQ1SjV6NVA1
VjWANVw1hjWMNZI1mDViNWg1bjW8MMAwVDFYMVwxYDFkMcAydDWUM5gznDOoMwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA
--Message-Boundary-10580
Content-type: text/plain; charset=US-ASCII
Content-disposition: inline
Content-description: Attachment information.

The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  stream_d.c
     Date:  17 Dec 1999, 4:31
     Size:  6763 bytes.
     Type:  Program-source

--Message-Boundary-10580
Content-type: Application/Octet-stream; name="stream_d.c"; type=Program-source
Content-disposition: attachment; filename="stream_d.c"
Content-transfer-encoding: BASE64

IyBpbmNsdWRlIDxzdGRpby5oPg0KIyBpbmNsdWRlIDxtYXRoLmg+DQojIGluY2x1ZGUgPGZs
b2F0Lmg+DQojIGluY2x1ZGUgPGxpbWl0cy5oPg0KIyBpbmNsdWRlIDx0aW1lLmg+DQoNCi8q
DQogKiBQcm9ncmFtOiBTdHJlYW0NCiAqIFByb2dyYW1tZXI6IEpvZSBSLiBaYWdhcg0KICog
UmV2aXNpb246IDQuMC1CRVRBLCBPY3RvYmVyIDI0LCAxOTk1DQogKiBPcmlnaW5hbCBjb2Rl
IGRldmVsb3BlZCBieSBKb2huIEQuIE1jQ2FscGluDQogKg0KICogVGhpcyBwcm9ncmFtIG1l
YXN1cmVzIG1lbW9yeSB0cmFuc2ZlciByYXRlcyBpbiBNQi9zIGZvciBzaW1wbGUgDQogKiBj
b21wdXRhdGlvbmFsIGtlcm5lbHMgY29kZWQgaW4gQy4gIFRoZXNlIG51bWJlcnMgcmV2ZWFs
IHRoZSBxdWFsaXR5DQogKiBvZiBjb2RlIGdlbmVyYXRpb24gZm9yIHNpbXBsZSB1bmNhY2hl
YWJsZSBrZXJuZWxzIGFzIHdlbGwgYXMgc2hvd2luZw0KICogdGhlIGNvc3Qgb2YgZmxvYXRp
bmctcG9pbnQgb3BlcmF0aW9ucyByZWxhdGl2ZSB0byBtZW1vcnkgYWNjZXNzZXMuDQogKg0K
ICogSU5TVFJVQ1RJT05TOg0KICoNCiAqCTEpIFN0cmVhbSByZXF1aXJlcyBhIGdvb2QgYml0
IG9mIG1lbW9yeSB0byBydW4uICBBZGp1c3QgdGhlDQogKiAgICAgICAgICB2YWx1ZSBvZiAn
TicgKGJlbG93KSB0byBnaXZlIGEgJ3RpbWluZyBjYWxpYnJhdGlvbicgb2YgDQogKiAgICAg
ICAgICBhdCBsZWFzdCAyMCBjbG9jay10aWNrcy4gIFRoaXMgd2lsbCBwcm92aWRlIHJhdGUg
ZXN0aW1hdGVzDQogKiAgICAgICAgICB0aGF0IHNob3VsZCBiZSBnb29kIHRvIGFib3V0IDUl
IHByZWNpc2lvbi4NCiAqLw0KDQojIGRlZmluZSBOTgkoMTAwMDAwMCBeIDQwOTYgXiAxMDI0
IF4gNTEyIF4gMjU2IF4gMTI4IF4gNjQpDQojIGRlZmluZSBOCSgxMDAwMDAwKQ0KIyBkZWZp
bmUgTlRJTUVTCTEwDQojIGRlZmluZSBPRkZTRVQJKE5OLU4rNjU1MzYpDQoNCi8qDQogKgkz
KSBDb21waWxlIHRoZSBjb2RlIHdpdGggZnVsbCBvcHRpbWl6YXRpb24uICBNYW55IGNvbXBp
bGVycw0KICoJICAgZ2VuZXJhdGUgdW5yZWFzb25hYmx5IGJhZCBjb2RlIGJlZm9yZSB0aGUg
b3B0aW1pemVyIHRpZ2h0ZW5zDQogKgkgICB0aGluZ3MgdXAuICBJZiB0aGUgcmVzdWx0cyBh
cmUgdW5yZWFzb25hYmx5IGdvb2QsIG9uIHRoZQ0KICoJICAgb3RoZXIgaGFuZCwgdGhlIG9w
dGltaXplciBtaWdodCBiZSB0b28gc21hcnQgZm9yIG1lIQ0KICoNCiAqICAgICAgICAgVHJ5
IGNvbXBpbGluZyB3aXRoOg0KICogICAgICAgICAgICAgICBjYyAtTyBzdHJlYW1fZC5jIHNl
Y29uZC5jIC1vIHN0cmVhbV9kIC1sbQ0KICoNCiAqICAgICAgICAgVGhpcyBpcyBrbm93biB0
byB3b3JrIG9uIENyYXksIFNHSSwgSUJNLCBhbmQgU3VuIG1hY2hpbmVzLg0KICoNCiAqDQog
Kgk0KSBNYWlsIHRoZSByZXN1bHRzIHRvIG1jY2FscGluQGNzLnZpcmdpbmlhLmVkdQ0KICoJ
ICAgQmUgc3VyZSB0byBpbmNsdWRlOg0KICoJCWEpIGNvbXB1dGVyIGhhcmR3YXJlIG1vZGVs
IG51bWJlciBhbmQgc29mdHdhcmUgcmV2aXNpb24NCiAqCQliKSB0aGUgY29tcGlsZXIgZmxh
Z3MNCiAqCQljKSBhbGwgb2YgdGhlIG91dHB1dCBmcm9tIHRoZSB0ZXN0IGNhc2UuDQogKiBU
aGFua3MhDQogKg0KICovDQoNCiMgZGVmaW5lIEhMSU5FICItLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iDQoNCiMgaWZu
ZGVmIE1JTg0KIyBkZWZpbmUgTUlOKHgseSkgKCh4KTwoeSk/KHgpOih5KSkNCiMgZW5kaWYN
CiMgaWZuZGVmIE1BWA0KIyBkZWZpbmUgTUFYKHgseSkgKCh4KT4oeSk/KHgpOih5KSkNCiMg
ZW5kaWYNCg0KLypzdGF0aWMqLyBkb3VibGUJYVtOK09GRlNFVF0sDQoJCWJbTitPRkZTRVRd
LA0KCQljW04rT0ZGU0VUXTsNCg0Kc3RhdGljIGRvdWJsZQlybXN0aW1lWzRdID0gezB9LCBt
YXh0aW1lWzRdID0gezB9LA0KCQltaW50aW1lWzRdID0ge0ZMVF9NQVgsRkxUX01BWCxGTFRf
TUFYLEZMVF9NQVh9Ow0KDQpzdGF0aWMgY2hhcgkqbGFiZWxbNF0gPSB7IkNvcHk6ICAgICAg
IiwgIlNjYWxlOiAgICAgIiwNCiAgICAiQWRkOiAgICAgICAiLCAiVHJpYWQ6ICAgICAifTsN
Cg0Kc3RhdGljIGRvdWJsZQlieXRlc1s0XSA9IHsNCiAgICAyICogc2l6ZW9mKGRvdWJsZSkg
KiBOLA0KICAgIDIgKiBzaXplb2YoZG91YmxlKSAqIE4sDQogICAgMyAqIHNpemVvZihkb3Vi
bGUpICogTiwNCiAgICAzICogc2l6ZW9mKGRvdWJsZSkgKiBODQogICAgfTsNCg0KZXh0ZXJu
IGRvdWJsZSBzZWNvbmQoKTsNCg0KaW50DQptYWluKCkNCiAgICB7DQogICAgaW50CQkJcXVh
bnR1bSwgY2hlY2t0aWNrKCk7DQogICAgaW50CQkJQnl0ZXNQZXJXb3JkOw0KICAgIHJlZ2lz
dGVyIGludAlqLCBrOw0KICAgIGRvdWJsZQkJc2NhbGFyLCB0Ow0KICAgIHZvbGF0aWxlIGRv
dWJsZQl0aW1lc1s0XVtOVElNRVNdOw0KDQovLyAgICBwcmludGYoImEgPSAlMDh4XG5iID0g
JTA4eFxuYyA9ICUwOHhcbiIsIGEsIGIsIGMgKTsNCg0KICAgIC8qIC0tLSBTRVRVUCAtLS0g
ZGV0ZXJtaW5lIHByZWNpc2lvbiBhbmQgY2hlY2sgdGltaW5nIC0tLSAqLw0KDQogICAgcHJp
bnRmKEhMSU5FKTsNCiAgICBCeXRlc1BlcldvcmQgPSBzaXplb2YoZG91YmxlKTsNCiAgICBw
cmludGYoIlRoaXMgc3lzdGVtIHVzZXMgJWQgYnl0ZXMgcGVyIERPVUJMRSBQUkVDSVNJT04g
d29yZC5cbiIsDQoJQnl0ZXNQZXJXb3JkKTsNCg0KICAgIHByaW50ZihITElORSk7DQogICAg
cHJpbnRmKCJBcnJheSBzaXplID0gJWQsIE9mZnNldCA9ICVkXG4iICwgTiwgT0ZGU0VUKTsN
CiAgICBwcmludGYoIlRvdGFsIG1lbW9yeSByZXF1aXJlZCA9ICUuMWYgTUIuXG4iLA0KCSgz
ICogTiAqIEJ5dGVzUGVyV29yZCkgLyAxMDQ4NTc2LjApOw0KICAgIHByaW50ZigiRWFjaCB0
ZXN0IGlzIHJ1biAlZCB0aW1lcywgYnV0IG9ubHlcbiIsIE5USU1FUyk7DQogICAgcHJpbnRm
KCJ0aGUgKmJlc3QqIHRpbWUgZm9yIGVhY2ggaXMgdXNlZC5cbiIpOw0KDQogICAgLyogR2V0
IGluaXRpYWwgdmFsdWUgZm9yIHN5c3RlbSBjbG9jay4gKi8NCg0KICAgIGZvciAoaj0wOyBq
PE47IGorKykgew0KCWFbal0gPSAxLjA7DQoJYltqXSA9IDIuMDsNCgljW2pdID0gMC4wOw0K
CX0NCg0KICAgIHByaW50ZihITElORSk7DQoNCiAgICBpZiAgKCAocXVhbnR1bSA9IGNoZWNr
dGljaygpKSA+PSAxKSANCglwcmludGYoIllvdXIgY2xvY2sgZ3JhbnVsYXJpdHkvcHJlY2lz
aW9uIGFwcGVhcnMgdG8gYmUgIg0KCSAgICAiJWQgbWljcm9zZWNvbmRzLlxuIiwgcXVhbnR1
bSk7DQogICAgZWxzZQ0KCXByaW50ZigiWW91ciBjbG9jayBncmFudWxhcml0eSBhcHBlYXJz
IHRvIGJlICINCgkgICAgImxlc3MgdGhhbiBvbmUgbWljcm9zZWNvbmQuXG4iKTsNCg0KICAg
IHQgPSBzZWNvbmQoKTsNCiAgICBmb3IgKGogPSAwOyBqIDwgTjsgaisrKQ0KCWFbal0gPSAy
LjBFMCAqIGFbal07DQogICAgdCA9IDEuMEU2ICogKHNlY29uZCgpIC0gdCk7DQoNCiAgICBw
cmludGYoIkVhY2ggdGVzdCBiZWxvdyB3aWxsIHRha2Ugb24gdGhlIG9yZGVyIg0KCSIgb2Yg
JWQgbWljcm9zZWNvbmRzLlxuIiwgKGludCkgdCAgKTsNCiAgICBwcmludGYoIiAgICg9ICVk
IGNsb2NrIHRpY2tzKVxuIiwgKGludCkgKHQvcXVhbnR1bSkgKTsNCiAgICBwcmludGYoIklu
Y3JlYXNlIHRoZSBzaXplIG9mIHRoZSBhcnJheXMgaWYgdGhpcyBzaG93cyB0aGF0XG4iKTsN
CiAgICBwcmludGYoInlvdSBhcmUgbm90IGdldHRpbmcgYXQgbGVhc3QgMjAgY2xvY2sgdGlj
a3MgcGVyIHRlc3QuXG4iKTsNCg0KICAgIHByaW50ZihITElORSk7DQoNCiAgICBwcmludGYo
IldBUk5JTkcgLS0gVGhlIGFib3ZlIGlzIG9ubHkgYSByb3VnaCBndWlkZWxpbmUuXG4iKTsN
CiAgICBwcmludGYoIkZvciBiZXN0IHJlc3VsdHMsIHBsZWFzZSBiZSBzdXJlIHlvdSBrbm93
IHRoZVxuIik7DQogICAgcHJpbnRmKCJwcmVjaXNpb24gb2YgeW91ciBzeXN0ZW0gdGltZXIu
XG4iKTsNCiAgICBwcmludGYoSExJTkUpOw0KICAgIA0KICAgIC8qCS0tLSBNQUlOIExPT1Ag
LS0tIHJlcGVhdCB0ZXN0IGNhc2VzIE5USU1FUyB0aW1lcyAtLS0gKi8NCg0KICAgIC8qIFRo
aXMgbWFpbiBsb29wIGlzIGEgcGllY2Ugb2Ygc2hpdCAtLSB0aGUgV0FUQ09NIEMvQysrIGNv
bXBpbGVyIGhhcyBhDQogICAgICAgZmllbGQgZGF5IHdpdGggaXQuICAqLw0KDQogICAgc2Nh
bGFyID0gMy4wOw0KICAgIGZvciAoaz0wOyBrPE5USU1FUzsgaysrKQ0KCXsNCg0KICAgICAg
ICAvKiBEZXBlbmRpbmcgb24gdGhlIG9wdGltaXphdGlvbiBzZXR0aW5ncywgV0FUQ09NIEMv
QysrIHdpbGwgamFtDQogICAgICAgICAgIGVpdGhlciB0aGF0IGZpcnN0IHRoZSBsb29wIHdp
dGggdGhlIHNlY29uZCBvciB2aWNlIHZlcnNhLiAgVGhlDQogICAgICAgICAgIHJlc3VsdCBp
cyB0aGF0IHRoZSAic2Vjb25kKCkiIGNhbGwgaXMgc2ltcGx5IGluc3RhbnRseSBzdWNjZXNz
aXZlDQogICAgICAgICAgIGNhdXNpbmcgYSBkaXZpZGUgYnkgMC4gIEFsbCBiZWNhdXNlIGEs
YixjIHdlcmUgZGVjbGFyZWQgc3RhdGljLiAgDQogICAgICAgICAgIFJlYWwgZnVja2luZyB1
c2VmdWwgKi8NCg0KCXRpbWVzWzBdW2tdID0gc2Vjb25kKCk7DQoNCiNpZmRlZiBBU01IQUNL
DQogICAgICAgIF9hc20gew0KICAgICAgICAgICAgIHhvciAgICAgICBlY3gsZWN4DQogICAg
ICAgICAgTDE6DQogICAgICAgICAgICAgYWRkICAgICAgIGVjeCw4DQogICAgICAgICAgICAg
ZmxkICAgICAgIHF3b3JkIHB0ciBhW2VjeC04XQ0KICAgICAgICAgICAgIGZzdHAgICAgICBx
d29yZCBwdHIgY1tlY3gtOF0NCiAgICAgICAgICAgICBjbXAgICAgICAgZWN4LDB4MDA3YTEy
MDANCiAgICAgICAgICAgICBqbmUgICAgICAgTDENCiAgICAgICAgfTsNCiNlbHNlDQoJZm9y
IChqPTA7IGo8TjsgaisrKQ0KCSAgICBjW2pdID0gYVtqXTsNCiNlbmRpZg0KCXRpbWVzWzBd
W2tdID0gc2Vjb25kKCkgLSB0aW1lc1swXVtrXTsNCgkNCgl0aW1lc1sxXVtrXSA9IHNlY29u
ZCgpOw0KCWZvciAoaj0wOyBqPE47IGorKykNCgkgICAgYltqXSA9IHNjYWxhcipjW2pdOw0K
CXRpbWVzWzFdW2tdID0gc2Vjb25kKCkgLSB0aW1lc1sxXVtrXTsNCgkNCgl0aW1lc1syXVtr
XSA9IHNlY29uZCgpOw0KCWZvciAoaj0wOyBqPE47IGorKykNCgkgICAgY1tqXSA9IGFbal0r
YltqXTsNCgl0aW1lc1syXVtrXSA9IHNlY29uZCgpIC0gdGltZXNbMl1ba107DQoJDQoJdGlt
ZXNbM11ba10gPSBzZWNvbmQoKTsNCglmb3IgKGo9MDsgajxOOyBqKyspDQoJICAgIGFbal0g
PSBiW2pdK3NjYWxhcipjW2pdOw0KCXRpbWVzWzNdW2tdID0gc2Vjb25kKCkgLSB0aW1lc1sz
XVtrXTsNCgl9DQogICAgDQogICAgLyoJLS0tIFNVTU1BUlkgLS0tICovDQoNCiAgICBmb3Ig
KGs9MDsgazxOVElNRVM7IGsrKykNCgl7DQoJZm9yIChqPTA7IGo8NDsgaisrKQ0KCSAgICB7
DQoJICAgIHJtc3RpbWVbal0gPSBybXN0aW1lW2pdICsgKHRpbWVzW2pdW2tdICogdGltZXNb
al1ba10pOw0KCSAgICBtaW50aW1lW2pdID0gTUlOKG1pbnRpbWVbal0sIHRpbWVzW2pdW2td
KTsNCgkgICAgbWF4dGltZVtqXSA9IE1BWChtYXh0aW1lW2pdLCB0aW1lc1tqXVtrXSk7DQoJ
ICAgIH0NCgl9DQoNCi8vICAgIHQgPSAwOw0KDQogICAgcHJpbnRmKCJGdW5jdGlvbiAgICAg
IFJhdGUgKE1CL3MpICAgUk1TIHRpbWUgICAgIE1pbiB0aW1lICAgICBNYXggdGltZVxuIik7
DQogICAgZm9yIChqPTA7IGo8NDsgaisrKSB7DQoJcm1zdGltZVtqXSA9IHNxcnQocm1zdGlt
ZVtqXS8oZG91YmxlKU5USU1FUyk7DQoNCi8vICAgICAgICB0ICs9IDEuMEUtMDYgKiBieXRl
c1tqXS9taW50aW1lW2pdOw0KDQoJcHJpbnRmKCIlcyUxMS40ZiAgJTExLjRmICAlMTEuNGYg
ICUxMS40ZlxuIiwgbGFiZWxbal0sDQoJICAgICAgIDEuMEUtMDYgKiBieXRlc1tqXS9taW50
aW1lW2pdLA0KCSAgICAgICBybXN0aW1lW2pdLA0KCSAgICAgICBtaW50aW1lW2pdLA0KCSAg
ICAgICBtYXh0aW1lW2pdKTsNCiAgICB9DQoNCi8vICAgIHByaW50ZigiQXZlcmFnZSBvZiBT
dHJlYW0gc2NvcmVzOiAlMTEuNGZcbiIsdC80LjApOw0KICAgIHJldHVybiAwOw0KfQ0KDQoj
IGRlZmluZQlNCTIwDQoNCmludA0KY2hlY2t0aWNrKCkNCiAgICB7DQogICAgaW50CQlpLCBt
aW5EZWx0YSwgRGVsdGE7DQogICAgZG91YmxlCXQxLCB0MiwgdGltZXNmb3VuZFtNXTsNCg0K
LyogIENvbGxlY3QgYSBzZXF1ZW5jZSBvZiBNIHVuaXF1ZSB0aW1lIHZhbHVlcyBmcm9tIHRo
ZSBzeXN0ZW0uICovDQoNCiAgICBmb3IgKGkgPSAwOyBpIDwgTTsgaSsrKSB7DQoJdDEgPSBz
ZWNvbmQoKTsNCgl3aGlsZSggKCh0Mj1zZWNvbmQoKSkgLSB0MSkgPCAxLjBFLTYgKQ0KCSAg
ICA7DQoJdGltZXNmb3VuZFtpXSA9IHQxID0gdDI7DQoJfQ0KDQovKg0KICogRGV0ZXJtaW5l
IHRoZSBtaW5pbXVtIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVzZSBNIHZhbHVlcy4NCiAqIFRo
aXMgcmVzdWx0IHdpbGwgYmUgb3VyIGVzdGltYXRlIChpbiBtaWNyb3NlY29uZHMpIGZvciB0
aGUNCiAqIGNsb2NrIGdyYW51bGFyaXR5Lg0KICovDQoNCiAgICBtaW5EZWx0YSA9IDEwMDAw
MDA7DQogICAgZm9yIChpID0gMTsgaSA8IE07IGkrKykgew0KCURlbHRhID0gKGludCkoIDEu
MEU2ICogKHRpbWVzZm91bmRbaV0tdGltZXNmb3VuZFtpLTFdKSk7DQoJbWluRGVsdGEgPSBN
SU4obWluRGVsdGEsIE1BWChEZWx0YSwwKSk7DQoJfQ0KDQogICAgcmV0dXJuKG1pbkRlbHRh
KTsNCiAgICB9DQoNCg==

--Message-Boundary-10580--

From - Sun Nov 21 09:30:22 1999
Received: from aux153.plano.net ([209.217.36.11]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Wed, 17 Nov 1999 10:49:08 -0600
Received: (qmail 24374 invoked by uid 10000); 17 Nov 1999 16:54:43 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 24370 invoked from network); 17 Nov 1999 16:54:42 -0000
Received: from ares.cs.virginia.edu (128.143.136.41)
  by aux153.plano.net with SMTP; 17 Nov 1999 16:54:42 -0000
Received: from mailgw2a.lmco.com (mailgw2a.lmco.com [192.91.147.7])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id LAA05993
	for <mccalpin@cs.virginia.edu>; Wed, 17 Nov 1999 11:48:36 -0500 (EST)
Received: from emss03g01.ems.lmco.com (emss03g01.ems.lmco.com [141.240.4.144])
	by mailgw2a.lmco.com (8.8.8/8.8.8) with ESMTP id LAA22922
	for <mccalpin@cs.virginia.edu>; Wed, 17 Nov 1999 11:48:31 -0500 (EST)
Return-receipt-to: larry.albertelli@lmco.com
Received: from CONVERSION-DAEMON by lmco.com (PMDF V5.2-32 #38888) id <0FLC00001MLR0A@lmco.com> for mccalpin@cs.virginia.edu;
 Wed, 17 Nov 1999 11:47:15 -0500 (EST)
Received: from emss35m01.ems.lmco.com ([158.187.107.140]) by lmco.com (PMDF V5.2-32 #38888)
 with ESMTP id <0FLC00J20ND0MI@lmco.com> for mccalpin@cs.virginia.edu; Wed, 17 Nov 1999 11:05:34 -0500 (EST)
Received: by emss35m01.owg.fs.lmco.com with Internet Mail Service (5.5.2580.0)	id <XA4AGDTZ>; Wed, 17 Nov 1999 11:06:29 -0500
Content-return: allowed
Date: Wed, 17 Nov 1999 11:05:18 -0500
From: "Albertelli, Larry" <larry.albertelli@lmco.com>
Subject: STREAM Results
To: "'mccalpin@cs.virginia.edu'" <mccalpin@cs.virginia.edu>
Message-id: <99AA2270B1E6D111BCE10000F805F17F058F33C5@emss35m02.owg.fs.lmco.com>
MIME-version: 1.0
X-Mailer: Internet Mail Service (5.5.2580.0)
Content-type: MULTIPART/MIXED; BOUNDARY="Boundary_(ID_QOFUfqR6ADb64esGL987iw)"
Return-Path: larry.albertelli@lmco.com
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00400000
X-UIDL: 35000000.eml
Status: RO

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--Boundary_(ID_QOFUfqR6ADb64esGL987iw)
Content-type: text/plain
Content-transfer-encoding: 7BIT

The text file contains results for the new NT version of streamd run under
DOS with 1000 reps. Intel Outrigger motherboard with dual Rambus, 2x600MHz
EB CPUs, 256MB 133MHz RAM.

 <<STREAM.TXT>> 


Larry Albertelli
Lockheed-Martin Federal Systems Division
M/S 0315
1801 Rte.17C
Owego, NY 13827
Phone (607)751-2027
FAX (607)751-3621




--Boundary_(ID_QOFUfqR6ADb64esGL987iw)
Content-type: text/plain; name=STREAM.TXT
Content-disposition: attachment; filename=STREAM.TXT
Content-transfer-encoding: 7BIT


STREAM for DOS v2 by Dennis Lee
===============================
1 MB = 1000000 Bytes in the following measurements.

For accurate results, this benchmark should be executed
in a true DOS session, and not a DOS shell under another OS.

   Time        Operation      Mem Speed       Error
   ----        ---------      ---------       -----
 14.12 sec      COPY32       453.26 MB/s       0.4%
 15.05 sec      COPY64       425.25 MB/s       0.4%
 15.54 sec       SCALE       411.84 MB/s       0.4%
 16.86 sec         ADD       569.40 MB/s       0.4%
 22.52 sec       TRIAD       426.29 MB/s       0.3%

These results are comparable with those on the STREAM website.
See <http://www.cs.virginia.edu/stream> for info on STREAM.

Type 'streamd ?' for help

--Boundary_(ID_QOFUfqR6ADb64esGL987iw)--

From - Sat Dec 11 07:32:41 1999
Received: from aux153.plano.net ([209.217.36.11]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Wed, 24 Nov 1999 18:54:20 -0600
Received: (qmail 15668 invoked by uid 10000); 25 Nov 1999 00:59:50 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 15658 invoked from network); 25 Nov 1999 00:59:50 -0000
Received: from ares.cs.virginia.edu (128.143.136.41)
  by aux153.plano.net with SMTP; 25 Nov 1999 00:59:50 -0000
Received: from gatekeeper.collins.rockwell.com (firewall-user@gatekeeper.collins.rockwell.com [205.175.225.1])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id TAA17176
	for <mccalpin@cs.virginia.edu>; Wed, 24 Nov 1999 19:54:04 -0500 (EST)
From: rgvande5@collins.rockwell.com
Received: by gatekeeper.collins.rockwell.com; id SAA24098; Wed, 24 Nov 1999 18:54:04 -0600 (CST)
Received: from mnpcl1.collins.rockwell.com(131.198.67.150) by gatekeeper.collins.rockwell.com via smap (V4.2)
	id xma023963; Wed, 24 Nov 99 18:53:10 -0600
Received: from psnotes.collins.rockwell.com (psnotes [131.198.17.8])
	by mnpcl1.collins.rockwell.com (8.9.1/8.9.1) with SMTP id SAA18525
	for <mccalpin@cs.virginia.edu>; Wed, 24 Nov 1999 18:53:08 -0600 (CST)
Received: by psnotes.collins.rockwell.com(Lotus SMTP MTA Internal build v4.6.2  (651.2 6-10-1998))  id 88256834.00056A22 ; Wed, 24 Nov 1999 16:59:08 -0800
X-Lotus-FromDomain: ROCKWELL
To: mccalpin@cs.virginia.edu
Message-ID: <88256834.00056951.00@psnotes.collins.rockwell.com>
Date: Wed, 24 Nov 1999 16:49:38 -0800
Subject: Embedded PowerPC Benchmark
Mime-Version: 1.0
Content-type: multipart/mixed; 
	Boundary="0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa"
Content-Disposition: inline
Return-Path: rgvande5@collins.rockwell.com
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
X-UIDL: 57000000.eml
Status: RO

--0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline



The raw data is for a single Motorola MPC860 (a PowerPC with embedded
peripherals) at 40MHz, believed to be running with no wait states and no
non-clock events under OS-9000.  The benchmark was ported to an N of 10,000
to fit into the embedded system's small memory.  The port may help
characterize CPU cores of embedded systems.

-------------------------------------------------------------
This system uses 8 bytes per DOUBLE PRECISION word.
-------------------------------------------------------------
Array size = 10000, Offset = 0
Total memory required = 0.2 MB.
Each test is run 10 times, but only
the *best* time for each is used.
-------------------------------------------------------------
Your clock granularity/precision appears to be 29999 microseconds.
Each test below will take on the order of 5739999 microseconds.
   (= 191 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function      Rate (MB/s)   RMS time     Min time     Max time
Copy:          12.9032       1.2581       1.2400       1.2800
Scale:          2.3599       7.0577       6.7800       7.8000
Add:            4.6784       5.4139       5.1300       5.7000
Triad:          2.6002       9.6532       9.2300      10.8200

(See attached file: wstream.c)(See attached file: second_e.c)(See attached
file: wstream.mak)

--0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa
Content-type: application/octet-stream; 
	name="wstream.c"
Content-Disposition: attachment; filename="wstream.c"
Content-transfer-encoding: x-uuencode

begin 644 wstream.c
M(VEN8VQU9&4@/'1I;64N:#X-"B,@:6YC;'5D92`\<W1D:6\N:#X-"B,@:6YC
M;'5D92`\;6%T:"YH/@T*(R!I;F-L=61E(#QF;&]A="YH/@T*(R!I;F-L=61E
M(#QL:6UI=',N:#X-"@T*9&]U8FQE('-E8V]N9"AV;VED*3L-"@T*+RH-"B`J
M(%!R;V=R86TZ(%-T<F5A;0T*("H@4')O9W)A;6UE<CH@2F]E(%(N(%IA9V%R
M.R!P;W)T960@=&\@3U,M.3`P,#H@4F%Y(%9A;B!$92!786QK97(-"B`J(%)E
M=FES:6]N.B`T+C`M0D5402P@3V-T;V)E<B`R-"P@,3DY-0T*("H@3W)I9VEN
M86P@8V]D92!D979E;&]P960@8GD@2F]H;B!$+B!-8T-A;'!I;@T*("H-"B`J
M(%1H:7,@<')O9W)A;2!M96%S=7)E<R!M96UO<GD@=')A;G-F97(@<F%T97,@
M:6X@34(O<R!F;W(@<VEM<&QE(`T*("H@8V]M<'5T871I;VYA;"!K97)N96QS
M(&-O9&5D(&EN($,N("!4:&5S92!N=6UB97)S(')E=F5A;"!T:&4@<75A;&ET
M>0T*("H@;V8@8V]D92!G96YE<F%T:6]N(&9O<B!S:6UP;&4@=6YC86-H96%B
M;&4@:V5R;F5L<R!A<R!W96QL(&%S('-H;W=I;F<-"B`J('1H92!C;W-T(&]F
M(&9L;V%T:6YG+7!O:6YT(&]P97)A=&EO;G,@<F5L871I=F4@=&\@;65M;W)Y
M(&%C8V5S<V5S+@T*("H-"B`J($E.4U1254-424].4SH-"B`J#0H@*B`@("`@
M(#$I(%-T<F5A;2!R97%U:7)E<R!A(&=O;V0@8FET(&]F(&UE;6]R>2!T;R!R
M=6XN("!!9&IU<W0@=&AE#0H@*B`@("`@("`@("!V86QU92!O9B`G3B<@*&)E
M;&]W*2!T;R!G:79E(&$@)W1I;6EN9R!C86QI8G)A=&EO;B<@;V8@#0H@*B`@
M("`@("`@("!A="!L96%S="`R,"!C;&]C:RUT:6-K<RX@(%1H:7,@=VEL;"!P
M<F]V:61E(')A=&4@97-T:6UA=&5S#0H@*B`@("`@("`@("!T:&%T('-H;W5L
M9"!B92!G;V]D('1O(&%B;W5T(#4E('!R96-I<VEO;BX-"B`J+PT*(R!D969I
M;F4@3B`@("`@(#$P,#`P("\J('=A<R!A(&UI;&QI;VX[('1H92!I.#8P(&1A
M=&$@8V%C:&4@:7,@-&L@*B\-"B,@9&5F:6YE(%1/34)95$4@*#$P,#`P,#`O
M3BD-"B,@9&5F:6YE($Y424U%4R`Q,"`@+RH@9&]N92`Q,"!T:6UE<R`J+PT*
M(R!D969I;F4@3T9&4T54(#`-"@T*+RH-"B`J("`@("`@,RD@0V]M<&EL92!T
M:&4@8V]D92!W:71H(&9U;&P@;W!T:6UI>F%T:6]N+B`@36%N>2!C;VUP:6QE
M<G,-"B`J("`@("`@("`@9V5N97)A=&4@=6YR96%S;VYA8FQY(&)A9"!C;V1E
M(&)E9F]R92!T:&4@;W!T:6UI>F5R('1I9VAT96YS#0H@*B`@("`@("`@('1H
M:6YG<R!U<"X@($EF('1H92!R97-U;'1S(&%R92!U;G)E87-O;F%B;'D@9V]O
M9"P@;VX@=&AE#0H@*B`@("`@("`@(&]T:&5R(&AA;F0L('1H92!O<'1I;6EZ
M97(@;6EG:'0@8F4@=&]O('-M87)T(&9O<B!M92$-"B`J#0H@*B`@("`@("`@
M(%1R>2!C;VUP:6QI;F<@=VET:#H-"B`J("`@("`@("`@("`@("`@8V,@+4\@
M<W1R96%M7V0N8R!S96-O;F0N8R`M;R!S=')E86U?9"`M;&T-"B`J#0H@*B`@
M("`@("`@(%1H:7,@:7,@:VYO=VX@=&\@=V]R:R!O;B!#<F%Y+"!31TDL($E"
M32P@86YD(%-U;B!M86-H:6YE<RX-"B`J#0H@*@T*("H@("`@("`T*2!-86EL
M('1H92!R97-U;'1S('1O(&UC8V%L<&EN0&-S+G9I<F=I;FEA+F5D=0T*("H@
M("`@("`@("!"92!S=7)E('1O(&EN8VQU9&4Z#0H@*B`@("`@("`@("`@("`@
M82D@8V]M<'5T97(@:&%R9'=A<F4@;6]D96P@;G5M8F5R(&%N9"!S;V9T=V%R
M92!R979I<VEO;@T*("H@("`@("`@("`@("`@(&(I('1H92!C;VUP:6QE<B!F
M;&%G<PT*("H@("`@("`@("`@("`@(&,I(&%L;"!O9B!T:&4@;W5T<'5T(&9R
M;VT@=&AE('1E<W0@8V%S92X-"B`J(%1H86YK<R$-"B`J#0H@*B\-"@T*(R!D
M969I;F4@2$Q)3D4@(BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2U<;B(-"@T*(R!I9FYD968@
M34E.#0HC(&1E9FEN92!-24XH>"QY*2`H*'@I/"AY*3\H>"DZ*'DI*0T*(R!E
M;F1I9@T*(R!I9FYD968@34%8#0HC(&1E9FEN92!-05@H>"QY*2`H*'@I/BAY
M*3\H>"DZ*'DI*0T*(R!E;F1I9@T*#0IS=&%T:6,@9&]U8FQE("`@85M.*T]&
M1E-%5%TL#0H@("`@("`@("`@("`@("`@8EM.*T]&1E-%5%TL#0H@("`@("`@
M("`@("`@("`@8UM.*T]&1E-%5%T[#0H-"G-T871I8R!D;W5B;&4@("!R;7-T
M:6UE6S1=(#T@>S!]+"!M87AT:6UE6S1=(#T@>S!]+`T*("`@("`@("`@("`@
M("`@(&UI;G1I;65;-%T@/2![1DQ47TU!6"Q&3%1?34%8+$9,5%]-05@L1DQ4
M7TU!6'T[#0H-"G-T871I8R!C:&%R("`@("`J;&%B96Q;-%T@/2![(D-O<'DZ
M("`@("`@(BP@(E-C86QE.B`@("`@(BP-"B`@("`B061D.B`@("`@("`B+"`B
M5')I860Z("`@("`B?3L-"@T*<W1A=&EC(&1O=6)L92`@(&)Y=&5S6S1=(#T@
M>PT*("`@(#(@*B!S:7IE;V8H9&]U8FQE*2`J($XL#0H@("`@,B`J('-I>F5O
M9BAD;W5B;&4I("H@3BP-"B`@("`S("H@<VEZ96]F*&1O=6)L92D@*B!.+`T*
M("`@(#,@*B!S:7IE;V8H9&]U8FQE*2`J($X-"B`@("!].PT*#0II;G0@;6%I
M;BAV;VED*0T*("`@('L-"B`@("!I;G0@("`@("`@("`@("`@("`@('%U86YT
M=6TL(&-H96-K=&EC:RAV;VED*3L-"B`@("!I;G0@("`@("`@("`@("`@("`@
M($)Y=&5S4&5R5V]R9#L-"B`@("!R96=I<W1E<B!I;G0@("`@("`@(&HL(&L[
M#0H@("`@9&]U8FQE("`@("`@("`@("`@("!S8V%L87(L('0L('1I;65S6S1=
M6TY424U%4UT[#0H-"B`@("`O*B`M+2T@4T5455`@+2TM(&1E=&5R;6EN92!P
M<F5C:7-I;VX@86YD(&-H96-K('1I;6EN9R`M+2T@*B\-"@T*("`@('!R:6YT
M9BA(3$E.12D[#0H@("`@0GET97-097)7;W)D(#T@<VEZ96]F*&1O=6)L92D[
M#0H@("`@<')I;G1F*")4:&ES('-Y<W1E;2!U<V5S("5D(&)Y=&5S('!E<B!$
M3U5"3$4@4%)%0TE324].('=O<F0N7&XB+`T*("`@("`@("!">71E<U!E<E=O
M<F0I.PT*#0H@("`@<')I;G1F*$A,24Y%*3L-"B`@("!P<FEN=&8H(D%R<F%Y
M('-I>F4@/2`E9"P@3V9F<V5T(#T@)61<;B(@+"!.+"!/1D93150I.PT*("`@
M('!R:6YT9B@B5&]T86P@;65M;W)Y(')E<75I<F5D(#T@)2XQ9B!-0BY<;B(L
M#0H@("`@("`@("@S("H@3B`J($)Y=&5S4&5R5V]R9"D@+R`Q,#0X-3<V+C`I
M.PT*("`@('!R:6YT9B@B16%C:"!T97-T(&ES(')U;B`E9"!T:6UE<RP@8G5T
M(&]N;'E<;B(L($Y424U%4RD[#0H@("`@<')I;G1F*")T:&4@*F)E<W0J('1I
M;64@9F]R(&5A8V@@:7,@=7-E9"Y<;B(I.PT*#0H@("`@+RH@1V5T(&EN:71I
M86P@=F%L=64@9F]R('-Y<W1E;2!C;&]C:RX@*B\-"@T*("`@(&9O<B`H:CTP
M.R!J/$X[(&HK*RD@>PT*("`@("`@("!A6VI=(#T@,2XP.PT*("`@("`@("!B
M6VI=(#T@,BXP.PT*("`@("`@("!C6VI=(#T@,"XP.PT*("`@("`@("!]#0H-
M"B`@("!P<FEN=&8H2$Q)3D4I.PT*#0H@("`@:68@("@@*'%U86YT=6T@/2!C
M:&5C:W1I8VLH*2D@/CT@,2D@#0H@("`@("`@('!R:6YT9B@B66]U<B!C;&]C
M:R!G<F%N=6QA<FET>2]P<F5C:7-I;VX@87!P96%R<R!T;R!B92`B#0H@("`@
M("`@("`@("`B)60@;6EC<F]S96-O;F1S+EQN(BP@<75A;G1U;2D[#0H@("`@
M96QS90T*("`@("`@("!P<FEN=&8H(EEO=7(@8VQO8VL@9W)A;G5L87)I='D@
M87!P96%R<R!T;R!B92`B#0H@("`@("`@("`@("`B;&5S<R!T:&%N(&]N92!M
M:6-R;W-E8V]N9"Y<;B(I.PT*#0H@("`@="`]('-E8V]N9"@I.PT*("`@(&9O
M<B`H:B`](#`[(&H@/"!..R!J*RLI#0H@("`@("`@(&%;:ET@/2`R+C!%,"`J
M(&%;:ET[#0H@("`@="`](#$N,$4V("H@*'-E8V]N9"@I("T@="D[#0H-"B`@
M("!P<FEN=&8H(D5A8V@@=&5S="!B96QO=R!W:6QL('1A:V4@;VX@=&AE(&]R
M9&5R(@T*("`@("`@("`B(&]F("5D(&UI8W)O<V5C;VYD<RY<;B(L("AI;G0I
M('0@("D[#0H@("`@<')I;G1F*"(@("`H/2`E9"!C;&]C:R!T:6-K<RE<;B(L
M("AI;G0I("AT+W%U86YT=6TI("D[#0H@("`@<')I;G1F*"));F-R96%S92!T
M:&4@<VEZ92!O9B!T:&4@87)R87ES(&EF('1H:7,@<VAO=W,@=&AA=%QN(BD[
M#0H@("`@<')I;G1F*")Y;W4@87)E(&YO="!G971T:6YG(&%T(&QE87-T(#(P
M(&-L;V-K('1I8VMS('!E<B!T97-T+EQN(BD[#0H-"B`@("!P<FEN=&8H2$Q)
M3D4I.PT*#0H@("`@<')I;G1F*")705).24Y'("TM(%1H92!A8F]V92!I<R!O
M;FQY(&$@<F]U9V@@9W5I9&5L:6YE+EQN(BD[#0H@("`@<')I;G1F*")&;W(@
M8F5S="!R97-U;'1S+"!P;&5A<V4@8F4@<W5R92!Y;W4@:VYO=R!T:&5<;B(I
M.PT*("`@('!R:6YT9B@B<')E8VES:6]N(&]F('EO=7(@<WES=&5M('1I;65R
M+EQN(BD[#0H@("`@<')I;G1F*$A,24Y%*3L-"B`@("`-"B`@("`O*B`@+2TM
M($U!24X@3$]/4"`M+2T@<F5P96%T('1E<W0@8V%S97,@3E1)3453('1I;65S
M("TM+2`J+PT*#0H@("`@<V-A;&%R(#T@,RXP.PT*("`@(&9O<B`H:STP.R!K
M/$Y424U%4SL@:RLK*0T*("`@("`@("![#0H@("`@("`@('1I;65S6S!=6VM=
M(#T@<V5C;VYD*"D[#0H@("`@("`@(&9O<B`H:CTP.R!J/$X[(&HK*RD-"B`@
M("`@("`@("`@(&-;:ET@/2!A6VI=.PT*("`@("`@("!T:6UE<ULP75MK72`]
M('-E8V]N9"@I("T@=&EM97-;,%U;:UT[#0H@("`@("`@(`T*("`@("`@("!T
M:6UE<ULQ75MK72`]('-E8V]N9"@I.PT*("`@("`@("!F;W(@*&H],#L@:CQ.
M.R!J*RLI#0H@("`@("`@("`@("!B6VI=(#T@<V-A;&%R*F-;:ET[#0H@("`@
M("`@('1I;65S6S%=6VM=(#T@<V5C;VYD*"D@+2!T:6UE<ULQ75MK73L-"B`@
M("`@("`@#0H@("`@("`@('1I;65S6S)=6VM=(#T@<V5C;VYD*"D[#0H@("`@
M("`@(&9O<B`H:CTP.R!J/$X[(&HK*RD-"B`@("`@("`@("`@(&-;:ET@/2!A
M6VI=*V);:ET[#0H@("`@("`@('1I;65S6S)=6VM=(#T@<V5C;VYD*"D@+2!T
M:6UE<ULR75MK73L-"B`@("`@("`@#0H@("`@("`@('1I;65S6S-=6VM=(#T@
M<V5C;VYD*"D[#0H@("`@("`@(&9O<B`H:CTP.R!J/$X[(&HK*RD-"B`@("`@
M("`@("`@(&%;:ET@/2!B6VI=*W-C86QA<BIC6VI=.PT*("`@("`@("!T:6UE
M<ULS75MK72`]('-E8V]N9"@I("T@=&EM97-;,UU;:UT[#0H@("`@("`@('T-
M"B`@("`-"B`@("`O*B`@+2TM(%-534U!4ED@+2TM("HO#0H-"B`@("!F;W(@
M*&L],#L@:SQ.5$E-15,[(&LK*RD-"B`@("`@("`@>PT*("`@("`@("!F;W(@
M*&H],#L@:CPT.R!J*RLI#0H@("`@("`@("`@("![#0H@("`@("`@("`@("!R
M;7-T:6UE6VI=(#T@<FUS=&EM95MJ72`K("AT:6UE<UMJ75MK72`J('1I;65S
M6VI=6VM=*3L-"B`@("`@("`@("`@(&UI;G1I;65;:ET@/2!-24XH;6EN=&EM
M95MJ72P@=&EM97-;:EU;:UTI.PT*("`@("`@("`@("`@;6%X=&EM95MJ72`]
M($U!6"AM87AT:6UE6VI=+"!T:6UE<UMJ75MK72D[#0H@("`@("`@("`@("!]
M#0H@("`@("`@('T-"B`@("`-"B`@("!P<FEN=&8H(D9U;F-T:6]N("`@("`@
M4F%T92`H34(O<RD@("!235,@=&EM92`@("`@36EN('1I;64@("`@($UA>"!T
M:6UE7&XB*3L-"B`@("!F;W(@*&H],#L@:CPT.R!J*RLI('L-"B`@("`@("`@
M<FUS=&EM95MJ72`]('-Q<G0H<FUS=&EM95MJ72\H9&]U8FQE*4Y424U%4RD[
M#0H-"B`@("`@("`@<')I;G1F*"(E<R4Q,2XT9B`@)3$Q+C1F("`E,3$N-&8@
M("4Q,2XT9EQN(BP@;&%B96Q;:ETL#0H@("`@("`@("`@("`@("`H5$]-0EE4
M12\Q938I("H@*&)Y=&5S6VI=+VUI;G1I;65;:ETI+`T*("`@("`@("`@("`@
M("`@<FUS=&EM95MJ72P-"B`@("`@("`@("`@("`@(&UI;G1I;65;:ETL#0H@
M("`@("`@("`@("`@("!M87AT:6UE6VI=*3L-"B`@("!]#0H@("`@<F5T=7)N
M(#`[#0I]#0H-"B,@9&5F:6YE("`@("`@("!-("`@("`@(#(P#0H-"FEN=`T*
M8VAE8VMT:6-K*'9O:60I#0H@("`@>PT*("`@(&EN="`@("`@("`@(&DL(&UI
M;D1E;'1A+"!$96QT83L-"B`@("!D;W5B;&4@("`@("!T,2P@=#(L('1I;65S
M9F]U;F1;35T[#0H-"B\J("!#;VQL96-T(&$@<V5Q=65N8V4@;V8@32!U;FEQ
M=64@=&EM92!V86QU97,@9G)O;2!T:&4@<WES=&5M+B`J+PT*#0H@("`@9F]R
M("AI(#T@,#L@:2`\($T[(&DK*RD@>PT*("`@("`@("!T,2`]('-E8V]N9"@I
M.PT*("`@("`@("!W:&EL92@@*"AT,CUS96-O;F0H*2D@+2!T,2D@/"`Q+C!%
M+38@*0T*("`@("`@("`@("`@.PT*("`@("`@("!T:6UE<V9O=6YD6VE=(#T@
M=#$@/2!T,CL-"B`@("`@("`@?0T*#0HO*@T*("H@1&5T97)M:6YE('1H92!M
M:6YI;75M(&1I9F9E<F5N8V4@8F5T=V5E;B!T:&5S92!-('9A;'5E<RX-"B`J
M(%1H:7,@<F5S=6QT('=I;&P@8F4@;W5R(&5S=&EM871E("AI;B!M:6-R;W-E
M8V]N9',I(&9O<B!T:&4-"B`J(&-L;V-K(&=R86YU;&%R:71Y+@T*("HO#0H-
M"B`@("!M:6Y$96QT82`](#$P,#`P,#`[#0H@("`@9F]R("AI(#T@,3L@:2`\
M($T[(&DK*RD@>PT*("`@("`@("!$96QT82`]("AI;G0I*"`Q+C!%-B`J("AT
M:6UE<V9O=6YD6VE=+71I;65S9F]U;F1;:2TQ72DI.PT*("`@("`@("!M:6Y$
M96QT82`]($U)3BAM:6Y$96QT82P@34%8*$1E;'1A+#`I*3L-"B`@("`@("`@
M?0T*#0H@("`@<F5T=7)N*&UI;D1E;'1A*3L-"B`@("!]#0H-"B\J(&5N9"!O
-9B!F:6QE("HO#0H-"OZ_
`
end

--0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa
Content-type: application/octet-stream; 
	name="second_e.c"
Content-Disposition: attachment; filename="second_e.c"
Content-transfer-encoding: x-uuencode

begin 644 second_e.c
M+RH@<V5C;VYD7V4N8RP@82!S96-O;F0@<F]U=&EN92!U<VEN9R!T:&4@<F5A
M;"UT:6UE+6-L;V-K(&EN=&5R9F%C92!O9B!T:&4-"B`@($,@<W1A;F1A<F0@
M;&EB<F%R>2X-"B`@(%1H:7,@:7,@82!V86QU86)L92!P;W)T(&9O<B!E;6)E
M9&1E9"!S>7-T96US(&)E8V%U<V4@82!R96%L+71I;64M8VQO8VL@#0H@("!I
M<R!U<W5A;&QY(&%V86EL86)L92P@86YD('1H92!B96YC:&UA<FL@<&5R;6ET
M<R!O;F4@=&\@=&5S="!T:&4@#0H@("!#4%4@8V]R92!O;B!A('!R;W1O='EP
M92!T;R!S964@:68@:70@:7,@=V5L;"UT=6YE9"!T;R!T:&4@;65M;W)Y+@T*
M("`@3F]T92!T:&%T(&]N('-O;64@3U-S(&-L;V-K*"D@<F5T=7)N<R!W86QL
M+71I;64@=&EC:W,@<VEN8V4@<F5S970N("!/;B`-"B`@(&]T:&5R<RP@*'-U
M8V@@87,@3U,M.3`P,"D@:70@<F5T=7)N<R!T:&4@<')O8V5S<R=S($-052!T
M:6UE('5T:6QI>F5D('-I;F-E(`T*("`@<F5S970N("!">2!C;VYV96YT:6]N
M+"!I9B!C;&]C:R@I(')E='5R;G,@+3$L(&ET(&ES(&YO="!I;7!L96UE;G1E
M9"X-"B`@(%!R;V=R86UM97(Z(%)A>2!686X@1&4@5V%L:V5R("@W,30I-#0T
M+38Y,#,-"B`J+PT*#0HC:6YC;'5D92`\=&EM92YH/@T*#0ID;W5B;&4@<V5C
M;VYD*'9O:60I#0I[#0H@("`@9&]U8FQE('-E8W@[#0H-"B`@("!S96-X(#T@
M*&1O=6)L92EC;&]C:R@I("\@*&1O=6)L92E#3$]#2U-?4$527U-%0SL-"B`@
J("!R971U<FX@<V5C>#L-"GT-"@T*+RH@96YD(&]F(&9I;&4@*B\-"@T*
`
end

--0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa
Content-type: application/octet-stream; 
	name="wstream.mak"
Content-Disposition: attachment; filename="wstream.mak"
Content-transfer-encoding: x-uuencode

begin 644 wstream.mak
M(R`-"B,@1F%S5')A:R!'96YE<F%T960@36%K969I;&4@+2!697)S:6]N(#(N
M,2XP#0HC(`T*(R!#<F5A=&5D.B!4=64@36%R(#`S(#$P.C(X.C0U(#$Y.3@-
M"B,@3&%S="!-;V1I9FEE9#H@36]N($]C="`Q.2`Q-3HU-SHS."`Q.3DX#0HC
M(`T*(R!&:6QE;F%M93H@4&AO;F5<8F)T7'=S=')E86TN;6%K#0HC(`T*(R!4
M:&ES(&UA:V5F:6QE(&-R96%T97,@82!0<F]G<F%M($UO9'5L92!N86UE9"`B
M=W-T<F5A;2(-"B,@5&AE($QI;FL@:7,@9&]N92!A="!T:&4@3V)J96-T+4-O
M9&4@3&5V96P-"B,@5&AI<R!P<F]G<F%M(&ES(&-O;7!I;&5D(&9O<B!/4RTY
M,#`P#0HC(`T*#0HC(`T*(R!-86-R;W,-"B,@#0HC(%-405)4(%5315(@1$5&
M24Y%1"!"3$]#2PT*(R!%3D0@55-%4B!$149)3D5$($),3T-+#0I#0R`)/2!X
M8V,-"D]55%!55`D]('=S=')E86T-"DE.4%54"3T@=W-T<F5A;2YC#0I)0T1)
M4@D](`T*4D5,4PD]('=S=')E86TN8R!S96-O;F1?92YC#0HC(&-C(&]P=',Z
M("UD/4E00U]!1$(@+78]+B`M=CTN+EQI;F,@+78]+BY<+BX@+78]8SI<;7=O
M<UQS<F-<9&5F<R`M=CUC.EQ?<')O:F5C='-<861B+6%C8R`M='`].#8P("US
M/3$@+70],3`@+7<]8SI<;7=O<UQO<SDP,#!<<'!C7&QI8B`M=STN+EQL:6(@
M+6D@+6P]<WES7V-L:6(N;"`M;#UI=&5M+FP@+6P];6%U:2YL#0HC("LK(&]P
M=',Z("UC=R`M='`].#8P+&QD+&QC9`T*0T]05%,)/2`M=&\];W,Y:R`M9#U)
M4$-?041"("UV/2X@+78]+BY<:6YC("UV/2XN7"XN("UV/6,Z7&UW;W-<<W)C
M7&1E9G,@7`T*"2`@("UV/6,Z7%]P<F]J96-T<UQA9&(M86-C("UT<#TX-C`@
M+7,],2`M=#TQ,"`M<B!<#0H)("`@+7<]8SI<;7=O<UQO<SDP,#!<<'!C7&QI
M8B`M=STN+EQL:6(@+6D@+6P]<WES7V-L:6(N;"`M;#UI=&5M+FP@7`T*"2`@
M("UL/6UA=6DN;"`M8W<@+71P/3@V,"QL9"QL8V0-"DQ/4%13"3T@+71O/6]S
M.6L@+60]25!#7T%$0B`M=CTN("UV/2XN7&EN8R`M=CTN+EPN+B`M=CUC.EQM
M=V]S7'-R8UQD969S(%P-"@D@("`M=CUC.EQ?<')O:F5C='-<861B+6%C8R`M
M='`].#8P("US/3$@+70],3`@+7(@7`T*"2`@("UW/6,Z7&UW;W-<;W,Y,#`P
M7'!P8UQL:6(@+7<]+BY<;&EB("UI("UL/7-Y<U]C;&EB+FP@+6P]:71E;2YL
M(%P-"@D@("`M;#UM875I+FP@+6-W("UT<#TX-C`L;&0L;&-D#0HC(%-405)4
M(%5315(@1$5&24Y%1"!"3$]#2PT*(R!%3D0@55-%4B!$149)3D5$($),3T-+
M#0H-"B,@#0HC($Q)3DL@0V]M;6%N9`T*(R`-"B0H3U544%54*2`Z("0H4D5,
M4RD-"@DD*$-#*2`D*%)%3%,I("UF9#TD*$]55%!55"D@)"A,3U!44RD-"@T*
M(R!35$%25"!54T52($1%1DE.140@0DQ/0TL-"B,@14Y$(%5315(@1$5&24Y%
M1"!"3$]#2PT*#0HC(`T*(R!#;VUP:6QE($-O;6UA;F1S#0HC(`T*#0IS96-O
M;F1?92YR(#H@<V5C;VYD7V4N8PT*"20H0T,I('-E8V]N9%]E+F,@+65A<STN
M("UF9#US96-O;F1?92YR("0H0T]05%,I#0HC('=S=')E86T@+2!W<W1R96%M
M+F,-"G=S=')E86TN<B`Z('=S=')E86TN8PT*"20H0T,I('=S=')E86TN8R`M
>96%S/2X@+69D/7=S=')E86TN<B`D*$-/4%13*0T*
`
end

--0__=4za5ycH8FfCO9J1jGWZqghcs6d5ZNrzOGDH7RCM9dSm8K3W3fppxEuJa--


From - Sun Nov 21 09:30:22 1999
Received: from aux153.plano.net ([209.217.36.11]) by mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1877.197.19);
	 Wed, 17 Nov 1999 12:15:55 -0600
Received: (qmail 24519 invoked by uid 10000); 17 Nov 1999 18:21:30 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 24501 invoked from network); 17 Nov 1999 18:21:30 -0000
Received: from ares.cs.virginia.edu (128.143.136.41)
  by aux153.plano.net with SMTP; 17 Nov 1999 18:21:30 -0000
Received: from gatekeeper.collins.rockwell.com (firewall-user@gatekeeper.collins.rockwell.com [205.175.225.1])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id NAA09689
	for <mccalpin@cs.virginia.edu>; Wed, 17 Nov 1999 13:15:37 -0500 (EST)
From: rgvande5@collins.rockwell.com
Received: by gatekeeper.collins.rockwell.com; id MAA19458; Wed, 17 Nov 1999 12:15:33 -0600 (CST)
Received: from mnpcl1.collins.rockwell.com(131.198.67.150) by gatekeeper.collins.rockwell.com via smap (V4.2)
	id xma018742; Wed, 17 Nov 99 12:14:48 -0600
Received: from psnotes.collins.rockwell.com (psnotes [131.198.17.8])
	by mnpcl1.collins.rockwell.com (8.9.1/8.9.1) with SMTP id MAA03043
	for <mccalpin@cs.virginia.edu>; Wed, 17 Nov 1999 12:14:45 -0600 (CST)
Received: by psnotes.collins.rockwell.com(Lotus SMTP MTA Internal build v4.6.2  (651.2 6-10-1998))  id 8825682C.0064BFF5 ; Wed, 17 Nov 1999 10:20:27 -0800
X-Lotus-FromDomain: ROCKWELL
To: mccalpin@cs.virginia.edu
Message-ID: <8825682C.0064BF62.00@psnotes.collins.rockwell.com>
Date: Wed, 17 Nov 1999 10:11:25 -0800
Subject: wstream code
Mime-Version: 1.0
Content-type: multipart/mixed; 
	Boundary="0__=wUNbNeufhEQb8CZ74eftjSFnPsk3Te9ipgUm5wynCpB3W6Q8OTcm83rU"
Content-Disposition: inline
Return-Path: rgvande5@collins.rockwell.com
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
X-UIDL: 45000000.eml
Status: RO

--0__=wUNbNeufhEQb8CZ74eftjSFnPsk3Te9ipgUm5wynCpB3W6Q8OTcm83rU
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline



I ported it to OS-9000 (A real-time, POSIX-compliant OS).  My benchmarks
are for crippled embedded systems with slow memory and low power
requirements, so I don't submit them.  The second routine seems worthy of
preservation because it uses a more restricted set of the C library.  It
should port easily to most embedded systems.
(See attached file: second_e.c)

--0__=wUNbNeufhEQb8CZ74eftjSFnPsk3Te9ipgUm5wynCpB3W6Q8OTcm83rU
Content-type: application/octet-stream; 
	name="second_e.c"
Content-Disposition: attachment; filename="second_e.c"
Content-transfer-encoding: x-uuencode

begin 644 second_e.c
M+RH@<V5C;VYD7V4N8RP@82!S96-O;F0@<F]U=&EN92!U<VEN9R!T:&4@<F5A
M;"UT:6UE+6-L;V-K(&EN=&5R9F%C92!O9B!T:&4-"B`@($,@<W1A;F1A<F0@
M;&EB<F%R>2X-"B`@(%1H:7,@:7,@82!V86QU86)L92!P;W)T(&9O<B!E;6)E
M9&1E9"!S>7-T96US(&)E8V%U<V4@82!R96%L+71I;64M8VQO8VL@#0H@("!I
M<R!U<W5A;&QY(&%V86EL86)L92P@86YD('1H92!B96YC:&UA<FL@<&5R;6ET
M<R!O;F4@=&\@=&5S="!T:&4@#0H@("!#4%4@8V]R92!O;B!A('!R;W1O='EP
M92!T;R!S964@:68@:70@:7,@=V5L;"UT=6YE9"!T;R!T:&4@;65M;W)Y+@T*
M("`@3F]T92!T:&%T(&]N('-O;64@3U-S(&-L;V-K*"D@<F5T=7)N<R!W86QL
M+71I;64@=&EC:W,@<VEN8V4@<F5S970N("!/;B`-"B`@(&]T:&5R<RP@*'-U
M8V@@87,@3U,M.3`P,"D@:70@<F5T=7)N<R!T:&4@<')O8V5S<R=S($-052!T
M:6UE('5T:6QI>F5D('-I;F-E(`T*("`@<F5S970N("!">2!C;VYV96YT:6]N
M+"!I9B!C;&]C:R@I(')E='5R;G,@+3$L(&ET(&ES(&YO="!I;7!L96UE;G1E
M9"X-"B`@(%!R;V=R86UM97(Z(%)A>2!686X@1&4@5V%L:V5R("@W,30I-#0T
M+38Y,#,-"B`J+PT*#0HC:6YC;'5D92`\=&EM92YH/@T*#0ID;W5B;&4@<V5C
M;VYD*'9O:60I#0I[#0H@("`@9&]U8FQE('-E8W@[#0H-"B`@("!S96-X(#T@
M*&1O=6)L92EC;&]C:R@I("\@*&1O=6)L92E#3$]#2U-?4$527U-%0SL-"B`@
J("!R971U<FX@<V5C>#L-"GT-"@T*+RH@96YD(&]F(&9I;&4@*B\-"@T*
`
end

--0__=wUNbNeufhEQb8CZ74eftjSFnPsk3Te9ipgUm5wynCpB3W6Q8OTcm83rU--


From - Sun Nov 21 09:30:05 1999
Received: from aux153.plano.net ([209.217.36.11]) by Mail.austin.rr.com  with Microsoft SMTPSVC(5.5.1875.185.18);
	 Thu, 28 Oct 1999 17:02:31 -0500
Received: (qmail 4736 invoked by uid 10000); 28 Oct 1999 22:15:12 -0000
Delivered-To: mccalpin.com-john@mccalpin.com
Received: (qmail 4682 invoked from network); 28 Oct 1999 22:15:07 -0000
Received: from ftp.cs.virginia.edu (HELO ares.cs.Virginia.EDU) (128.143.137.19)
  by aux153.plano.net with SMTP; 28 Oct 1999 22:15:07 -0000
Received: from mail.span.ch (mail.span.ch [144.85.10.50])
	by ares.cs.Virginia.EDU (8.9.2/8.9.2/UVACS-1999030200) with ESMTP id SAA27117
	for <mccalpin@cs.virginia.edu>; Thu, 28 Oct 1999 18:09:06 -0400 (EDT)
Received: from super-7 (mp2-c82-p239.span.ch [195.15.82.239])
	by mail.span.ch (8.9.3/8.9.3) with SMTP id AAA27583
	for <mccalpin@cs.virginia.edu>; Fri, 29 Oct 1999 00:08:59 +0200 (MET DST)
Message-ID: <001301bf219a$03776620$ef520fc3@super-7>
From: "Armand Hirt" <armand.hirt@span.ch>
To: <mccalpin@cs.virginia.edu>
Subject: wstream
Date: Fri, 29 Oct 1999 00:13:14 +0100
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0010_01BF21A2.64693BE0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 4.72.3110.1
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Return-Path: armand.hirt@span.ch
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
X-UIDL: 70000000.eml
Status: RO

This is a multi-part message in MIME format.

------=_NextPart_000_0010_01BF21A2.64693BE0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi,

I got considerably lower results with wstream (your binary) than with =
streamd2 on my computer (a K6-2 400, on a VIA-MVP 3 motherboard using =
100 MHZ SDRAM).

Here are the figures:

Johan,

Here are the results with write allocation on:

streamd (DOS) / wstream (W98)

copy  145 / 138
scale 145 / 138
add   163 / 96
triad 163 / 78

And with write allocation off:

Here are the results with WA off:

streamd / wstream

copy  104 / 101
scale 155 / 101
add   194 / 131
triad 194 / 130

In both cases, wstream figures are significantly lower. Why do you think =
it is so?

Regards,

--
"S'arreter sur l'autoroute, c'est courrir un danger mortel. L'apparente =
securite donne par la bande d'arret d'urgence est illusoire".

Armand Hirt / 021 624 32 41

------=_NextPart_000_0010_01BF21A2.64693BE0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>

<META content=3Dtext/html;charset=3Diso-8859-1 =
http-equiv=3DContent-Type>
<META content=3D'"MSHTML 4.72.3110.7"' name=3DGENERATOR>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT color=3D#000000 size=3D2>Hi,</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I got considerably lower results with wstream (your =
binary)=20
than with streamd2 on my computer (a K6-2 400, on a VIA-MVP 3 =
motherboard using=20
100 MHZ SDRAM).</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Here are the figures:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>Johan,</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Here are the results with write allocation =
on:</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>streamd (DOS) / wstream =
(W98)</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>copy&nbsp; 145 / 138<BR>scale 145 /=20
138<BR>add&nbsp;&nbsp; 163 / 96<BR>triad 163 / 78</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>And with write allocation off:</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>Here are the results with WA =
off:</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>streamd / wstream</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>copy&nbsp; 104 / 101<BR>scale 155 /=20
101<BR>add&nbsp;&nbsp; 194 / 131<BR>triad 194 / 130</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>In both cases, wstream figures are significantly =
lower. Why do=20
you think it is so?</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Regards,</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>--<BR>&quot;S'arreter sur =
l'autoroute, c'est=20
courrir un danger mortel. L'apparente securite donne par la bande =
d'arret=20
d'urgence est illusoire&quot;.</FONT></DIV>
<DIV><FONT color=3D#000000 size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT color=3D#000000 size=3D2>Armand Hirt / 021 624 32=20
41</FONT></DIV></BODY></HTML>

------=_NextPart_000_0010_01BF21A2.64693BE0--


