I have SAS 9.2/Enterprise 4.3 running on a windows (7 x64) machine with eight cores (+ Tesla C2075 GPU) and cannot get my program to run on more than one core at a time. The code runs nicely and produces great results, but is very slow. The code is below; any thoughts on getting it to run on more than one core would be greatly appreciated.
Thanks,
Mel
proc surveyselect DATA=data
noprint
seed=1
out=boot1
method=srs
samprate=.45
rep=250000;
run;
Proc reg data=boot1 outest=est1(drop=_:)noprint;
MODEL Total = x1 x2 …… xn
/ SELECTION= adjrsq cp start=7 stop=7 best=1;
by replicate;
run;
Proc means data=est1
N;
VAR x1 x2 …… xn;
output out=test1
N= ;
run;
quit;
What happens if you define:
OPTIONS THREADS;
Log shows multiple threads available, but no additional cores are used.
What about defining the CPUCOUNT?:
OPTIONS THREADS=YES CPUCOUNT=8;
Same results; shows the cores, but does not use them.
How slow is very slow?
You'll get that if you're running a SAS desktop license.
Do you have access to a SAS server license? Silly question I know as it is much more expensive.
With 8 cores and a desktop licence you could still run one surveyselect, but then split the resulting reps plus inference into 8 roughly equal parts and run all in paralell in batch, then append all tables after all batch SAS jobs have completed and analyse the boot stats in a 9th interactive session. What happens if you use another constant seed other than 1? (I always use my birthday in 8 digits, cos I think it's a lucky number. Hilarious ay?)
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Use this tutorial as a handy guide to weigh the pros and cons of these commonly used machine learning algorithms.
Find more tutorials on the SAS Users YouTube channel.