SAS 9.4 has parallel-processing feature in data step and other procs. Here is an example in data step.
/* The following DATA step creates the input for the DS2 program. */
data in;
do i = 1 to 1e8; /*5e8*/
output;
end;
run;
proc means data=in sum;
var i;
run;
/* This is the beginning of the DS2 program. */
proc ds2;
thread sumer / overwrite = yes encrypt=SAS;
drop i;
dcl double s;
method run();
set in;
s + i;
end;
method term();
output;
end;
endthread;
run;
data ;
dcl double tot having format 16.0;
dcl double s having format 16.0;
dcl thread sumer s_inst;
method run();
set from s_inst threads=4;
tot + s;
end;
enddata;
run;
quit;
data _null_;
set in end=end;
s+i;
if end then put s= 16.;
run;
for more information one may look at,
http://support.sas.com/documentation/cdl/en/lrcon/67227/HTML/default/viewer.htm#n0czb9vxe72693n1lom0qmns6zlj.htm
http://support.sas.com/documentation/cdl/en/whatsnew/64788/HTML/default/viewer.htm#n14c8glgh3j7hxn1b1byjs3sqnvz.htm
http://blogs.sas.com/content/sgf/2013/10/02/parallel-processing-in-sas-when-and-how-to-use-it/
Parallel processing in SAS: when and how to use it