Hello - we have SAS 9.4 running on Linux as grid environment.
If I have multiple sas programs (test1.sas/test2.sas/test3.sas) that I want to run across multiple sas nodes (not just on one node) - what is best way to do that and what are the requirements from sas architecture or configuration stand point that I must have it in place?
please suggest - thanks.
I can put my different sas programs into one as a piece of codes, but i still wants to run those pieces of codes across sas worker nodes/servers (not only on one server) so that they can run in parallel as well.
So, if I run Unix script (test.sh) which has 3 sas program, all jobs runs on same sas node, I want to distribute across multiple nodes. Thanks.
sas "/codedir/test1.sas" -log "/logdir/test1.log" -set run 1
sas "/codedir/test1.sas" -log "/logdir/test2.log" -set run 2
sas "/codedir/test1.sas" -log "/logdir/test3.log" -set run 3
Submit your batch jobs using the SASGSUB command. This will distribute your jobs across the Grid according the policies you've set up.
Thanks nhvdwalt. So if I put all my three program into one sas job like below,
test.sas has,
%macro test;
%include /user-home-dir/test1.sas
%include /user-home-dir/test2.sas
%include /user-home-dir/test3.sas
%mend;
%test;
and if I submit using command -> sasgsub -gridsubmitpgm /user-home-dir/test.sas
this is still running on same node.
any additional parameters or settings required?
@LinusH is correct, it doesn't really make sense.
For splitting up SAS code, there are really three main scenarios:
1.) You have x number of SAS jobs that you can run in parallel e.g. my_job_1.sas, my_job_2.sas, my_job_3.sas. For this example I suggested the SASGSUB command since you can submit the three jobs to the Grid to run independently.
2.) You have a single SAS job e.g. my_job_1.sas, but WITHIN the job there are pieces of the code that you can run in parallel. This probably speaks more to your last example. In this case you would invoke grdsrv_enable(_all_,resource=SASApp) macro that will allow the pieces of SAS cdoe to be submitted to the Grid using SAS/Connect (rsubmit).
3.) A combination of 1.) and 2.)
Bottom line is, you have many tools in the Grid toolbox, but it really comes down to the design of the code and what you trying to achieve in terms of parallel processing/load management. This is your logical design. Once you have this defined , then it's easy to see what Grid tool you need. So it's not about 'Do I use 1, 2, or 3 ?' It's about what you are trying to achieve.
Hope it helps.....
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.