| Date: | Thu, 9 Jan 2003 14:52:40 -0500 |
| Reply-To: | Scott Chapal <scott.chapal@JONESCTR.ORG> |
| Sender: | "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU> |
| From: | Scott Chapal <scott.chapal@JONESCTR.ORG> |
| Organization: | J.W. Jones Ecological Research Center |
| Subject: | Re: Hyperthreading? |
| Content-Type: | text/plain; charset=us-ascii |
|---|
Paul,
paul_dorfman@HOTMAIL.COM (Paul Dorfman) writes:
> (My impression has been that this sort of thing has been available
> on some commercial Unices, too, but here I am not sure. Someone who
> knwos will surely chime in.)
This got me curious so I ran your test on a SUNFire 280R 2x~900Mhz,
4Gb, Solaris 9 :
NOTE: AUTOEXEC processing completed.
1 option cpucount = actual;
2 option msglevel = i ;
3 *libname user "h:\" ;
4 data a ;
5 array nn (100) ; do _n_ = 1 to 100 ; nn (_n_) = _n_ ; end ;
6 array cc (100) ; do _n_ = 1 to 100 ; cc (_n_) = _n_ ; end ;
7 do _n_ = 1 to 1e6 ;
8 key1 = ranuni (1) ;
9 key2 = ranuni (1) ;
10 key3 = ranuni (1) ;
11 output ;
12 end ;
13 run ;
NOTE: The data set WORK.A has 1000000 observations and 203 variables.
NOTE: DATA statement used (Total process time):
real time 47.82 seconds
cpu time 13.91 seconds
14
15 option threads ;
16 proc sort data = a out = b ;
17 by key: ;
18 run ;
NOTE: SAS threaded sort was used.
NOTE: There were 1000000 observations read from the data set WORK.A.
NOTE: The data set WORK.B has 1000000 observations and 203 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 1:33.51
cpu time 1:04.64
19
20 option nothreads ;
21 proc sort data = a out = b ;
22 by key: ;
23 run ;
NOTE: SAS sort was used.
NOTE: There were 1000000 observations read from the data set WORK.A.
NOTE: The data set WORK.B has 1000000 observations and 203 variables.
NOTE: PROCEDURE SORT used (Total process time):
real time 1:34.86
cpu time 54.98 seconds
> As you see, when SAS uses 2 CPUs in the SMP mode, it (logically) uses twice
> the CPU time, but how cares if the real time is 1/6 that of the non-threaded
> sort. Impressed?
In neither case on the Solaris server was the process CPU-bound. Also
as you can see, there is much less difference than on your system.
What is going on here?
Also, in your example the ratio of real:cpu is 15:1 for nothreads.
What causes that?
Interesting... thanks.
--
Scott Chapal
|