BookmarkSubscribeRSS Feed
dgower
Obsidian | Level 7

My preference is to do this interactively versus batch, but it's not necessary.  I simply want to submit:

data _null_;
slept= sleep(1*60);
run;

64 times all at once to confirm 64 jobs will run simultaneously.  I post this assuming that there's a more clever way than repeating the code 64x.

 

Thanks,

 

Dan

7 REPLIES 7
snoopy369
Barite | Level 11
How are you submitting this? Are you using SAS/CONNECT or a SAS GRID server or just running sas.exe 64 times?
dgower
Obsidian | Level 7

We have a GRID setup with 7 compute nodes.  The interface is SAS Studio 3.5.  Each host is setup to handle 32 jobs.  I'm increasing that to 64 and need a simple test to confirm 64 jobs will run.

snoopy369
Barite | Level 11
I wonder if you'd be better posting this in https://communities.sas.com/t5/Administration-and-Deployment/bd-p/sas_admin ? (Not sure, i'm not regular enough here to know how topics fall out among the communities.)
dgower
Obsidian | Level 7

I assumed this is more of a programming question than an admin task.  You may be right, though. 

Kurt_Bremser
Super User

First of all, your system admin should be able to tell you the maximum number of concurrent processes per user, if such a limit has been set; on the UNIX systems I know, that would need running some kind of workload manager, as the default is that there is no limit.

For all practical purposes, the technical limit of processes in UNIX systems is so large that other limitations come into effect (memory) before one runs out of space in the process table.

 

To simply check if a certain number of process can run in parallel, I'd write a shell script like that:

COUNT=0
while [[ COUNT -lt 64 ]]
do
  /usr/bin/sleep 10&
  COUNT=$(($COUNT + 1))
done
wait

save it to every node (don't forget to chmod u+x), and run it from SAS with

filename oscmd pipe '/path/script 2>&1';

data _null_;
infile oscmd;
input;
put _infile_;
run;

so you catch all output. The script should be lying dormant with all its children for 10 seconds and then return.

 

Keep in mind that this only checks the number-of-processes issue; depending on settings like MEMSIZE (and the type of steps run), SAS processes might hit other limits much earlier. Which also might cause a system to become (nearly) unresponsive.

Kurt_Bremser
Super User

PS running ulimit -u on the nodes should tell you the limit for concurrent processes, if such is set.

Also run ulimit -Hu to see if there is a difference between the soft and hard limits (hard limits are set by the superuser and cannot be changed).

dgower
Obsidian | Level 7

Thank you, Kurt.  All our SAS servers are Windows servers and I'm looking for testing SAS jobs, not processes.  You can establish a max jobs/queue or host within SAS GRID/LSF.  I'm increasing the max jobs or MXJ and need a test to prove that the change was effective.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 1017 views
  • 0 likes
  • 3 in conversation