LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (January 2003, week 2)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Thu, 9 Jan 2003 04:32:07 +0000
Reply-To:     sashole@bellsouth.net
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Paul Dorfman <paul_dorfman@HOTMAIL.COM>
Subject:      Re: Hyperthreading?
Comments: To: amm5449@OSFMAIL.ISC.RIT.EDU
Content-Type: text/plain; format=flowed

Anna,

If I understand your HT explanation correctly, it is no different from the concurrent processing real computers (i.e. mainframes) have done since the sixties. The OS simply swaps multiple tasks in and out of the CPU according to its performance rules and/or priorities assigned to the tasks. In the early days, the real reason was to use a single processor for hundreds of concurrent tasks in such a manner that it would appear to all of them tha their tasks are executing continuously, while in reality, only one task can reside in the main storage and be being worked on at a given moment. MF processors having always been CICS, they have lent themselves - aided by the sophistication of the OS - to this kind of action. (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.)

Of course, nowadays looking for a 1-way MF box is futile. S/390 and z/OS are usually set up with quite a few processors, and a program called Workload Manager distributes the load evenly among the CPUs, not forgetting about the concurrency, either.

Finally, I have seen how SAS SMP works with V9. In fact, I can administer a test on this very machine I am using to write this stuff (it is equipped with 2 933MHz P-III). Here it is:

30 option msglevel = i ; 31 libname user "h:\" ; NOTE: Libref USER was successfully assigned as follows: Engine: V9 Physical Name: h:\ 32 data a ; 33 array nn (100) ; do _n_ = 1 to 100 ; nn (_n_) = _n_ ; end ; 34 array cc (100) ; do _n_ = 1 to 100 ; cc (_n_) = _n_ ; end ; 35 do _n_ = 1 to 1e6 ; 36 key1 = ranuni (1) ; 37 key2 = ranuni (1) ; 38 key3 = ranuni (1) ; 39 output ; 40 end ; 41 run ;

NOTE: The data set USER.A has 1000000 observations and 203 variables. NOTE: DATA statement used (Total process time): real time 44.71 seconds cpu time 20.98 seconds

42 option threads ; 43 proc sort data = a out = b ; 44 by key: ; 45 run ;

NOTE: SAS threaded sort was used. NOTE: There were 1000000 observations read from the data set USER.A. NOTE: The data set USER.B has 1000000 observations and 203 variables. NOTE: PROCEDURE SORT used (Total process time): real time 3:10.32 cpu time 2:41.18

46 option nothreads ; 47 proc sort data = a out = b ; 48 by key: ; 49 run ;

NOTE: SAS sort was used. NOTE: There were 1000000 observations read from the data set USER.A. NOTE: The data set USER.B has 1000000 observations and 203 variables. NOTE: PROCEDURE SORT used (Total process time): real time 18:50.79 cpu time 1:27.92

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?

Kind regards, ------------------- Paul M. Dorfman Jacksonville, FL -------------------

P.S. What is "incredible large data sets" in your book? Just curios, have used to crunch a some obscenely massive data volumes myself.

>From: anna mcdonald <amm5449@OSFMAIL.ISC.RIT.EDU> >Reply-To: anna mcdonald <amm5449@OSFMAIL.ISC.RIT.EDU> >To: SAS-L@LISTSERV.UGA.EDU >Subject: Re: Hyperthreading? >Date: Wed, 8 Jan 2003 15:28:59 -0500 > >Magnus, > My main interest is the time and performance gain seen when processing >incredible large data sets, splitting these into threads to allow for in >unison processing should reduce the calculation time exponentially ( I >think this was shown in one of the white papers I posted). Have had to >walk away and grab some coffee while my data processed make me interested >on a personal level : ). Also I am working on my own little system and >multithreading is going to be a part of that as well. I think for small >data >sets or non cpu intensive calculations you are right, formatting can make >a world of difference, but for large data sets SMP and multi threading is >a big time saver. The interesting thing is how hyper threading will >be able to compare with SMP and provide these gains at a lower overall >cost. :) > >-anna- > > >On Wed, 8 Jan 2003, Magnus Mengelbier wrote: > > > Hello Anna > > > > I would say you have a nice little problem on your hand. Hyperthreading, > > symmetric processors, and the like can be interesting in its own way.... > > > > However, I would be a modestly rich man if I had a nickle for all the >times > > I have seen people pour time into picking up and trying tech issues like > > hyperthreading to make things run faster. The only gain I can see is to > > really look at structuring your data, input, and writing >process-efficient > > code on a very very slow system. As you pass that milestone, you can >have > > some serious fun running on huge servers. Maybe that is why I still keep >my > > Pentium 100MHz 16 Mb Linux system ... and get a serious kick when >running > > the same code on modest servers today. Had one tech support guy swear >that > > my code never ran ... just initialized and died. Good feeling when he > > looked at the output and log... need I say more. But then again, >efficiency > > is in the eye of the beholder. > > > > > > Magnus > > > > > > On Tue, 7 Jan 2003 11:38:03 -0500, anna mcdonald > > <amm5449@OSFMAIL.ISC.RIT.EDU> wrote: > > > > >Thomas, > > > Here's my best shot at outlining what HT is, HT occurs at 3 >levels, > > >one happens in the actual kernel code another happens in the cpu and >the > > >last in the application layer, hence for HT to work the kernel, cpu and > > >the user program must support it. As of right now iirc only the Intel > > >xeon and the new P4's support HT, I use Linux and the new thread >library > > >supports hyper threading, but I am not sure about other > > >kernels. Theoreticly HT is a way of reducing the latency involved in > > >processing threads, what happens is that the cpu is split into 2 >logical > > >processors much like an smp set up but without the extra cpu. Then > > >multiple threads can be processed at once using each logical cpu to >track > > >the members of each respective thread, this in theory should in some >cases > > >provide processing time reduction ( as a poor student I have not gotten >my > > >hands on a machine with a HT cpu so this is theory :)). The >requirements > > >for the user program is of course that is uses threads, in order to >take > > >absolute advantage the program should support multi threading, while > > >browsing the latest white papers I came across the announcement that >sas > > >was implementing multi threading in the majority of it's procedures, > > >specifically proc sort. While sas has had some multi threading > > >implementations the wide spread adaptation of it is to me very > > >exciting. Ideally I would love to get my hands on a beowulf cluster >and > > >go nuts with version 9 :). Multi threading just allows data and > > >instructions to be partitioned into multiple threads then they can be > > >processed in unison on a SMB or HT system. > > > > > >There is more info at > > >http://www.sas.com/rnd/base/topics/scalingfuture/scalingfuture.pdf > > >and http://www.sas.com/rnd/papers/sugi27/scalable_access.pdf > > > > > >Being a Linux SAS user this sort of thing really peaks my interest :) > > >anna > > > > > > > > >On Tue, 7 Jan 2003, Thomas Hauge wrote: > > > > > >> OK, I'm in the dark.....what *is* hyperthreading? > > >> > > >> > > >> > > >> Thomas Hauge > > >> Eddie Bauer Marketing > > >> > >

_________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus


Back to: Top of message | Previous page | Main SAS-L page