In reply to Andrew Ziem.

Andrew, in SAS 9.4, PROC DS2 can execute data processing code in parallel. You can find the documentation for threaded processing with PROC DS2 here:

http://support.sas.com/documentation/cdl/en/ds2ref/66009/HTML/default/viewer.htm#p0qykqw1fdra8dn1449vxg9ydfkk.htm

Here is a small example of starting 8 threads with "thousands of lines of code":

proc ds2;

/*
* Create thread program
* Start in N threads with SET FROM statement
*/
thread work_hard / overwrite=yes;
method run();
set bar;
/* thousands of lines of code */
end;
endthread;

/*
* Start thread program in 8 threads with SET FROM statement
*/
data foo;
dcl thread work_hard t;
method run();
set from t threads=8;
end;
enddata;

run; quit;